From 1ed503613d6f71c8927b1647b900126031d058d2 Mon Sep 17 00:00:00 2001 From: YenLin Pan Date: Wed, 2 Jul 2025 15:17:06 +0800 Subject: [PATCH] qca-wifi-7: Add Zyxel NWA50BE model Signed-off-by: YenLin Pan --- feeds/qca-wifi-7/ath12k-wifi/Makefile | 14 + .../ath12k-wifi/board-2-nwa50be-IPQ5332.json | 20 + .../ath12k-wifi/board-2-nwa50be-QCN6432.json | 20 + .../ath12k-wifi/board-2.bin.nwa50be.IPQ5332 | Bin 0 -> 89292 bytes .../ath12k-wifi/board-2.bin.nwa50be.QCN6432 | Bin 0 -> 194764 bytes feeds/qca-wifi-7/ath12k-wifi/generate.sh | 3 + .../ath12k-wifi/nwa50be-IPQ5332.bin | Bin 0 -> 63488 bytes .../ath12k-wifi/nwa50be-QCN6432.bin | Bin 0 -> 168960 bytes .../ipq53xx/base-files/etc/board.d/02_network | 13 +- .../etc/hotplug.d/firmware/10-ath12k-caldata | 8 +- .../base-files/lib/upgrade/platform.sh | 3 +- .../ipq53xx/dts/ipq5332-zyxel-nwa50be.dts | 956 ++++++++++++++++++ feeds/qca-wifi-7/ipq53xx/image/ipq53xx.mk | 16 + .../ath12k/0001-thermal-thermal-setting.patch | 74 ++ .../qca-ssdk-qca/files-zyxel_nwa50be/qca-ssdk | 315 ++++++ ...01-pinctrl-make-the-switch-LED-works.patch | 47 + profiles/zyxel_nwa50be.yml | 16 + 17 files changed, 1501 insertions(+), 4 deletions(-) create mode 100644 feeds/qca-wifi-7/ath12k-wifi/board-2-nwa50be-IPQ5332.json create mode 100644 feeds/qca-wifi-7/ath12k-wifi/board-2-nwa50be-QCN6432.json create mode 100644 feeds/qca-wifi-7/ath12k-wifi/board-2.bin.nwa50be.IPQ5332 create mode 100644 feeds/qca-wifi-7/ath12k-wifi/board-2.bin.nwa50be.QCN6432 create mode 100755 feeds/qca-wifi-7/ath12k-wifi/nwa50be-IPQ5332.bin create mode 100755 feeds/qca-wifi-7/ath12k-wifi/nwa50be-QCN6432.bin create mode 100755 feeds/qca-wifi-7/ipq53xx/dts/ipq5332-zyxel-nwa50be.dts create mode 100644 feeds/qca-wifi-7/mac80211/patches-zyxel_nwa50be/ath12k/0001-thermal-thermal-setting.patch create mode 100755 feeds/qca-wifi-7/qca-ssdk-qca/files-zyxel_nwa50be/qca-ssdk create mode 100644 feeds/qca-wifi-7/qca-ssdk-qca/patches-zyxel_nwa50be/0001-pinctrl-make-the-switch-LED-works.patch create mode 100644 profiles/zyxel_nwa50be.yml diff --git a/feeds/qca-wifi-7/ath12k-wifi/Makefile b/feeds/qca-wifi-7/ath12k-wifi/Makefile index d82328905..4e2e67314 100755 --- a/feeds/qca-wifi-7/ath12k-wifi/Makefile +++ b/feeds/qca-wifi-7/ath12k-wifi/Makefile @@ -93,6 +93,11 @@ $(call Package/ath12k-wifi-default) TITLE:=board-2.bin for NWA130BE endef +define Package/ath12k-wifi-zyxel-nwa50be +$(call Package/ath12k-wifi-default) + TITLE:=board-2.bin for NWA50BE +endef + define Package/ath12k-wifi-cig-wf672 $(call Package/ath12k-wifi-default) TITLE:=board-2.bin for WF672 @@ -191,6 +196,14 @@ define Package/ath12k-wifi-zyxel-nwa130be/install $(INSTALL_DATA) ./board-2.bin.nwa130be.IPQ5332 $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin endef +define Package/ath12k-wifi-zyxel-nwa50be/install + $(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN6432/hw1.0/ + $(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/ + $(INSTALL_DATA) ./board-2.bin.nwa50be.QCN6432 $(1)/lib/firmware/ath12k/QCN6432/hw1.0/board-2.bin + $(INSTALL_DATA) ./board-2.bin.nwa50be.IPQ5332 $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin + $(INSTALL_DATA) ./ipq5332_qcn6432.regdb $(1)/lib/firmware/ath12k/QCN6432/hw1.0/regdb.bin +endef + define Package/ath12k-wifi-cig-wf672/install $(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/ $(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/ @@ -210,4 +223,5 @@ $(eval $(call BuildPackage,ath12k-wifi-cig-wf189h)) $(eval $(call BuildPackage,ath12k-wifi-sercomm-ap72tip)) $(eval $(call BuildPackage,ath12k-wifi-sercomm-ap72tip-v4)) $(eval $(call BuildPackage,ath12k-wifi-zyxel-nwa130be)) +$(eval $(call BuildPackage,ath12k-wifi-zyxel-nwa50be)) $(eval $(call BuildPackage,ath12k-wifi-cig-wf672)) diff --git a/feeds/qca-wifi-7/ath12k-wifi/board-2-nwa50be-IPQ5332.json b/feeds/qca-wifi-7/ath12k-wifi/board-2-nwa50be-IPQ5332.json new file mode 100644 index 000000000..f95cc56ba --- /dev/null +++ b/feeds/qca-wifi-7/ath12k-wifi/board-2-nwa50be-IPQ5332.json @@ -0,0 +1,20 @@ +[ + { + "board": [ + { + "names": [ + "bus=ahb,qmi-chip-id=0,qmi-board-id=18" + ], + "data": "nwa50be-IPQ5332.bin" + } + ], + "regdb": [ + { + "names": [ + "bus=ahb,qmi-chip-id=0,qmi-board-id=18" + ], + "data": "ipq5332.regdb" + } + ] + } +] diff --git a/feeds/qca-wifi-7/ath12k-wifi/board-2-nwa50be-QCN6432.json b/feeds/qca-wifi-7/ath12k-wifi/board-2-nwa50be-QCN6432.json new file mode 100644 index 000000000..b8666d8ca --- /dev/null +++ b/feeds/qca-wifi-7/ath12k-wifi/board-2-nwa50be-QCN6432.json @@ -0,0 +1,20 @@ +[ + { + "board": [ + { + "names": [ + "bus=ahb,qmi-chip-id=0,qmi-board-id=112" + ], + "data": "nwa50be-QCN6432.bin" + } + ], + "regdb": [ + { + "names": [ + "bus=ahb,qmi-chip-id=0,qmi-board-id=112" + ], + "data": "ipq5332_qcn6432.regdb" + } + ] + } +] diff --git a/feeds/qca-wifi-7/ath12k-wifi/board-2.bin.nwa50be.IPQ5332 b/feeds/qca-wifi-7/ath12k-wifi/board-2.bin.nwa50be.IPQ5332 new file mode 100644 index 0000000000000000000000000000000000000000..66d85a9ef9ead1d35a5ffacec9d1052407828076 GIT binary patch literal 89292 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 S@zrztZ(a16Z#C5(T=xG24V&oz literal 0 HcmV?d00001 diff --git a/feeds/qca-wifi-7/ath12k-wifi/board-2.bin.nwa50be.QCN6432 b/feeds/qca-wifi-7/ath12k-wifi/board-2.bin.nwa50be.QCN6432 new file mode 100644 index 0000000000000000000000000000000000000000..df71b07ec13d5874e731fd83a56b13f4f52c3beb GIT binary patch literal 194764 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 JTYZ1o{{TVq1yTS2 literal 0 HcmV?d00001 diff --git a/feeds/qca-wifi-7/ath12k-wifi/generate.sh b/feeds/qca-wifi-7/ath12k-wifi/generate.sh index 7a89d4ab9..2176ddf84 100755 --- a/feeds/qca-wifi-7/ath12k-wifi/generate.sh +++ b/feeds/qca-wifi-7/ath12k-wifi/generate.sh @@ -18,3 +18,6 @@ $encoder -c board-2-ap72tip-v4-QCN92XX.json -o board-2.bin.ap72tip-v4.QCN92XX $encoder -c board-2-nwa130be-IPQ5332.json -o board-2.bin.nwa130be.IPQ5332 $encoder -c board-2-nwa130be-QCN92XX.json -o board-2.bin.nwa130be.QCN92XX + +$encoder -c board-2-nwa50be-IPQ5332.json -o board-2.bin.nwa50be.IPQ5332 +$encoder -c board-2-nwa50be-QCN6432.json -o board-2.bin.nwa50be.QCN6432 diff --git a/feeds/qca-wifi-7/ath12k-wifi/nwa50be-IPQ5332.bin b/feeds/qca-wifi-7/ath12k-wifi/nwa50be-IPQ5332.bin new file mode 100755 index 0000000000000000000000000000000000000000..a73deff5798413e977d19d786cc32d48755111d3 GIT binary patch literal 63488 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 literal 0 HcmV?d00001 diff --git a/feeds/qca-wifi-7/ipq53xx/base-files/etc/board.d/02_network b/feeds/qca-wifi-7/ipq53xx/base-files/etc/board.d/02_network index 19ea35e20..2d56985c8 100755 --- a/feeds/qca-wifi-7/ipq53xx/base-files/etc/board.d/02_network +++ b/feeds/qca-wifi-7/ipq53xx/base-files/etc/board.d/02_network @@ -20,7 +20,8 @@ ipq53xx_setup_interfaces() ;; sonicfi,rap7110c-341x|\ sonicfi,rap750e-h|\ - sonicfi,rap750e-s) + sonicfi,rap750e-s|\ + zyxel,nwa50be) ucidef_set_interfaces_lan_wan "" "eth0" ;; cig,wf189w) @@ -127,6 +128,16 @@ qcom_setup_macs() ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 3) ucidef_set_wireless_macaddr_base 6g $(macaddr_add "$wan_mac" 4) ;; + zyxel,nwa50be) + wan_mac=$(cat /proc/cmdline) + wan_mac="${wan_mac##*hwaddr=}" + wan_mac="${wan_mac%% *}" + wan_mac="$(echo ${wan_mac} | sed 's/\(..\)/\1:/g;s/:$//')" + ucidef_set_network_device_mac eth0 $wan_mac + ucidef_set_label_macaddr $wan_mac + ucidef_set_wireless_macaddr_base 2g $(macaddr_add "$wan_mac" 1) + ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 2) + ;; *) wan_mac=$(cat /sys/class/net/eth1/address) lan_mac=$(macaddr_add "$wan_mac" 1) diff --git a/feeds/qca-wifi-7/ipq53xx/base-files/etc/hotplug.d/firmware/10-ath12k-caldata b/feeds/qca-wifi-7/ipq53xx/base-files/etc/hotplug.d/firmware/10-ath12k-caldata index f8c9dc194..d54d0d8cc 100755 --- a/feeds/qca-wifi-7/ipq53xx/base-files/etc/hotplug.d/firmware/10-ath12k-caldata +++ b/feeds/qca-wifi-7/ipq53xx/base-files/etc/hotplug.d/firmware/10-ath12k-caldata @@ -67,8 +67,9 @@ ath12k/IPQ5332/hw1.0/caldata.bin) emplus,wap7635|\ sercomm,ap72tip-v4|\ sercomm,ap72tip|\ - zyxel,nwa130be) - caldata_extract "0:ART" 0x1000 0x20000 + zyxel,nwa130be|\ + zyxel,nwa50be) + caldata_extract "0:ART" 0x1000 0x20000 ;; cig,wf672) cig_ipq5322_cal @@ -124,6 +125,9 @@ ath12k/QCN6432/hw1.0/cal-ahb-soc@0:wifi2@c0000000.bin) cig,wf189w) caldata_extract "0:ART" 0x58800 0x20000 ;; + zyxel,nwa50be) + caldata_extract "0:ART" 0x58800 0x2d000 + ;; esac ;; ath12k/IPQ5332/hw1.0/board-2.bin) diff --git a/feeds/qca-wifi-7/ipq53xx/base-files/lib/upgrade/platform.sh b/feeds/qca-wifi-7/ipq53xx/base-files/lib/upgrade/platform.sh index 7d144f938..e86828dc5 100755 --- a/feeds/qca-wifi-7/ipq53xx/base-files/lib/upgrade/platform.sh +++ b/feeds/qca-wifi-7/ipq53xx/base-files/lib/upgrade/platform.sh @@ -174,7 +174,8 @@ platform_do_upgrade() { sonicfi_dualimage_check nand_upgrade_tar "$1" ;; - zyxel,nwa130be) + zyxel,nwa130be|\ + zyxel,nwa50be) nand_upgrade_tar "$1" ;; esac diff --git a/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-zyxel-nwa50be.dts b/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-zyxel-nwa50be.dts new file mode 100755 index 000000000..a47a55948 --- /dev/null +++ b/feeds/qca-wifi-7/ipq53xx/dts/ipq5332-zyxel-nwa50be.dts @@ -0,0 +1,956 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) +/* + * IPQ5332 RDP442 board device tree source + * + * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. + * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/dts-v1/; + +#include "ipq5332.dtsi" +#include +#include +#include +#include "ipq5332-default-memory.dtsi" + + +/ { + model = "Qualcomm Technologies, Inc. IPQ5332/RDP442/AP-MI01.3"; + compatible = "zyxel,nwa50be", "qcom,ipq5332-ap-mi01.3", "qcom,ipq5332-rdp442", "qcom,ipq5332"; + +#ifdef __IPQ_MEM_PROFILE_512_MB__ + + /* 512M Layout for IPQ5332 + QCN6432 + QCN6432 + * +==========+==============+========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +---------+--------------+-------------------------+ + * | Q6 | | | + * | code/ | 0x4A900000 | 25MB | + * | data | | | + * +---------+--------------+-------------------------+ + * | IPQ5332 | | | + * | data | 0x4C200000 | 17MB | + * +---------+--------------+-------------------------+ + * | IPQ5332 | | | + * | M3 Dump | 0x4D300000 | 1MB | + * +---------+--------------+-------------------------+ + * | IPQ5332 | | | + * | QDSS | 0x4D400000 | 1MB | + * +---------+--------------+-------------------------+ + * | IPQ5332 | | | + * | CALDB | 0x4D500000 | 3MB | + * +---------+--------------+-------------------------+ + * |QCN6432_1| | | + * | data | 0x4D800000 | 16MB | + * +---------+--------------+-------------------------+ + * |QCN6432_1| | | + * | M3 Dump | 0x4E800000 | 1MB | + * +---------+--------------+-------------------------+ + * |QCN6432_1| | | + * | QDSS | 0x4E900000 | 1MB | + * +---------+--------------+-------------------------+ + * |QCN6432_1| | | + * | CALDB | 0x4EA00000 | 5MB | + * +---------+--------------+-------------------------+ + * |QCN6432_2| | | + * | data | 0x4EF00000 | 16MB | + * +---------+--------------+-------------------------+ + * |QCN6432_2| | | + * | M3 Dump | 0x4FF00000 | 1MB | + * +---------+--------------+-------------------------+ + * |QCN6432_2| | | + * | QDSS | 0x50000000 | 1MB | + * +---------+--------------+-------------------------+ + * |QCN6432_2| | | + * | CALDB | 0x50100000 | 5MB | + * +---------+--------------+-------------------------+ + * | | | | + * | MLO | 0x50600000 | 12MB | + * +==================================================+ + * | | + * | | + * | | + * | Rest of memory for Linux | + * | | + * | | + * | | + * +==================================================+ + */ + + reserved-memory { + + /delete-node/ m3_dump@4cc00000; + /delete-node/ q6_etr_dump@1; + /delete-node/ mlo_global_mem_0@0x4db00000; + /delete-node/ wcnss@4a900000; + /delete-node/ q6_caldb_region@4ce00000; + + q6_mem_regions: q6_mem_regions@4A900000 { + reg = <0x0 0x4a900000 0x0 0x5D00000>; + no-map; + }; + + q6_code_data: q6_code_data@4A900000 { + reg = <0x0 0x4a900000 0x0 0x1900000>; + no-map; + }; + + q6_ipq5332_data: q6_ipq5332_data@4C200000 { + reg = <0x0 0x4C200000 0x0 0x1100000>; + no-map; + }; + + m3_dump: m3_dump@4D300000 { + reg = <0x0 0x4D300000 0x0 0x100000>; + no-map; + }; + + q6_etr_region: q6_etr_dump@4D400000 { + reg = <0x0 0x4D400000 0x0 0x100000>; + no-map; + }; + + q6_ipq5332_caldb: q6_ipq5332_caldb@4D500000 { + reg = <0x0 0x4D500000 0x0 0x300000>; + no-map; + }; + + q6_qcn6432_data_1: q6_qcn6432_data_1@4D800000 { + reg = <0x0 0x4D800000 0x0 0x1000000>; + no-map; + }; + + m3_dump_qcn6432_1: m3_dump_qcn6432_1@4E800000 { + reg = <0x0 0x4E800000 0x0 0x100000>; + no-map; + }; + + q6_qcn6432_etr_1: q6_qcn6432_etr_1@4E900000 { + reg = <0x0 0x4E900000 0x0 0x100000>; + no-map; + }; + + q6_qcn6432_caldb_1: q6_qcn6432_caldb_1@4EA00000 { + reg = <0x0 0x4EA00000 0x0 0x500000>; + no-map; + }; + + q6_qcn6432_data_2: q6_qcn6432_data_2@4EF00000 { + reg = <0x0 0x4EF00000 0x0 0x1000000>; + no-map; + }; + + m3_dump_qcn6432_2: m3_dump_qcn6432_2@4FF00000 { + reg = <0x0 0x4FF00000 0x0 0x100000>; + no-map; + }; + + q6_qcn6432_etr_2: q6_qcn6432_etr_2@50000000 { + reg = <0x0 0x50000000 0x0 0x100000>; + no-map; + }; + + q6_qcn6432_caldb_2: q6_qcn6432_caldb_2@50100000 { + reg = <0x0 0x50100000 0x0 0x500000>; + no-map; + }; + + mlo_global_mem0: mlo_global_mem_0@50600000 { + reg = <0x0 0x50600000 0x0 0xC00000>; + no-map; + }; + }; +#else + + /* 1G Layout for IPQ5332 + QCN6432 + QCN6432 + * +==========+==============+========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +---------+--------------+-------------------------+ + * | Q6 | | | + * | code/ | 0x4A900000 | 25MB | + * | data | | | + * +---------+--------------+-------------------------+ + * | IPQ5332 | | | + * | data | 0x4C200000 | 21MB | + * +---------+--------------+-------------------------+ + * | IPQ5332 | | | + * | M3 Dump | 0x4D700000 | 1MB | + * +---------+--------------+-------------------------+ + * | IPQ5332 | | | + * | QDSS | 0x4D800000 | 1MB | + * +---------+--------------+-------------------------+ + * | IPQ5332 | | | + * | CALDB | 0x4D900000 | 5MB | + * +---------+--------------+-------------------------+ + * |QCN6432_1| | | + * | data | 0x4DE00000 | 21MB | + * +---------+--------------+-------------------------+ + * |QCN6432_1| | | + * | M3 Dump | 0x4F300000 | 1MB | + * +---------+--------------+-------------------------+ + * |QCN6432_1| | | + * | QDSS | 0x4F400000 | 1MB | + * +---------+--------------+-------------------------+ + * |QCN6432_1| | | + * | CALDB | 0x4F500000 | 5MB | + * +---------+--------------+-------------------------+ + * |QCN6432_2| | | + * | data | 0x4FA00000 | 21MB | + * +---------+--------------+-------------------------+ + * |QCN6432_2| | | + * | M3 Dump | 0x50F00000 | 1MB | + * +---------+--------------+-------------------------+ + * |QCN6432_2| | | + * | QDSS | 0x51000000 | 1MB | + * +---------+--------------+-------------------------+ + * |QCN6432_2| | | + * | CALDB | 0x51100000 | 5MB | + * +---------+--------------+-------------------------+ + * | | | | + * | MLO | 0x51600000 | 12MB | + * +==================================================+ + * | | + * | | + * | | + * | Rest of memory for Linux | + * | | + * | | + * | | + * +==================================================+ + */ + reserved-memory { + + /delete-node/ m3_dump@4cc00000; + /delete-node/ q6_etr_dump@1; + /delete-node/ mlo_global_mem_0@0x4db00000; + /delete-node/ wcnss@4a900000; + /delete-node/ q6_caldb_region@4ce00000; + + ramoops@49c00000 { + compatible = "ramoops"; + reg = <0x0 0x49c00000 0x0 0x100000>; + record-size = <0x20000>; + console-size = <0x20000>; + pmsg-size = <0x20000>; + }; + + q6_mem_regions: q6_mem_regions@4A900000 { + no-map; + reg = <0x0 0x4a900000 0x0 0x6D00000>; + }; + + q6_code_data: q6_code_data@4A900000 { + no-map; + reg = <0x0 0x4a900000 0x0 0x1900000>; + }; + + q6_ipq5332_data: q6_ipq5332_data@4C200000 { + no-map; + reg = <0x0 0x4C200000 0x0 0x1500000>; + }; + + m3_dump: m3_dump@4D700000 { + no-map; + reg = <0x0 0x4D700000 0x0 0x100000>; + }; + + q6_etr_region: q6_etr_dump@4D800000 { + no-map; + reg = <0x0 0x4D800000 0x0 0x100000>; + }; + + q6_ipq5332_caldb: q6_ipq5332_caldb@4D900000 { + no-map; + reg = <0x0 0x4D900000 0x0 0x500000>; + }; + + q6_qcn6432_data_1: q6_qcn6432_data_1@4DE00000 { + no-map; + reg = <0x0 0x4DE00000 0x0 0x1500000>; + }; + + m3_dump_qcn6432_1: m3_dump_qcn6432_1@4F300000 { + no-map; + reg = <0x0 0x4F300000 0x0 0x100000>; + }; + + q6_qcn6432_etr_1: q6_qcn6432_etr_1@4F400000 { + no-map; + reg = <0x0 0x4F400000 0x0 0x100000>; + }; + + q6_qcn6432_caldb_1: q6_qcn6432_caldb_1@4F500000 { + no-map; + reg = <0x0 0x4F500000 0x0 0x500000>; + }; + + q6_qcn6432_data_2: q6_qcn6432_data_2@4FA00000 { + no-map; + reg = <0x0 0x4FA00000 0x0 0x1500000>; + }; + + m3_dump_qcn6432_2: m3_dump_qcn6432_2@50F00000 { + no-map; + reg = <0x0 0x50F00000 0x0 0x100000>; + }; + + q6_qcn6432_etr_2: q6_qcn6432_etr_2@51000000 { + no-map; + reg = <0x0 0x51000000 0x0 0x100000>; + }; + + q6_qcn6432_caldb_2: q6_qcn6432_caldb_2@51100000 { + no-map; + reg = <0x0 0x51100000 0x0 0x500000>; + }; + + mlo_global_mem0: mlo_global_mem_0@51600000 { + no-map; + reg = <0x0 0x51600000 0x0 0xC00000>; + }; + }; +#endif + + aliases { + serial0 = &blsp1_uart0; + serial1 = &blsp1_uart1; + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + }; + + chosen { + stdout-path = "serial0"; + }; + + soc@0 { + mdio:mdio@90000 { + pinctrl-0 = <&mdio1_pins>; + pinctrl-names = "default"; + /*gpio22 is for wan napa, gpio51 for lan napa*/ + phy-reset-gpio = <&tlmm 51 GPIO_ACTIVE_LOW>; + status = "okay"; + + phy2: ethernet-phy@2 { + reg = <28>; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&led_pins>; + pinctrl-names = "default"; + led_blue{ + label = "led_blue"; + gpio = <&tlmm 22 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "led_blue"; + default-state = "off"; + }; + led_green { + label = "led_green"; + gpio = <&tlmm 45 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "led_green"; + default-state = "on"; + }; + led_white { + label = "led_white"; + gpio = <&tlmm 43 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "led_white"; + default-state = "off"; + }; + led_red { + label = "led_red"; + gpio = <&tlmm 44 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "led_red"; + default-state = "off"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + status = "okay"; + + button@1 { + label = "reset"; + linux,code = ; + gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + ess-instance { + ess-switch@3a000000 { + switch_cpu_bmp = <0x1>; /* cpu port bitmap */ + switch_lan_bmp = <0x4>; /* lan port bitmap */ + switch_wan_bmp = <0x0>; /* wan port bitmap */ + switch_mac_mode = <0xf>; /* mac mode for uniphy instance0*/ + switch_mac_mode1 = <0xc>; /* mac mode for uniphy instance1*/ + switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ + qcom,port_phyinfo { + port@0 { + port_id = <2>; + phy_address = <28>; + }; + }; + qcom,port_ledinfo { + port@0 { + port = <2>; + led_source@0 { + source = <0>; + mode = "normal"; + speed = "2500M"; + active = "high"; + blink_en = "enable"; + }; + led_source@1 { + source = <1>; + mode = "normal"; + speed = "10M", "100M","1000M"; + active = "high"; + blink_en = "enable"; + }; + }; + }; + }; + }; + + dp1 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <2>; + reg = <0x3a504000 0x4000>; + qcom,mactype = <1>; + local-mac-address = [000000000000]; + mdio-bus = <&mdio>; + qcom,phy-mdio-addr = <28>; + qcom,link-poll = <1>; + phy-mode = "sgmii"; + }; + + nss-macsec0 { + compatible = "qcom,nss-macsec"; + phy_addr = <28>; + mdiobus = <&mdio>; + }; + + /* EDMA host driver configuration for the board */ + edma@3ab00000 { + qcom,txdesc-ring-start = <4>; /* Tx desc ring start ID */ + qcom,txdesc-rings = <12>; /* Total number of Tx desc rings to be provisioned */ + qcom,mht-txdesc-rings = <8>; /* Extra Tx desc rings to be provisioned for MHT SW ports */ + qcom,txcmpl-ring-start = <4>; /* Tx complete ring start ID */ + qcom,txcmpl-rings = <12>; /* Total number of Tx complete rings to be provisioned */ + qcom,mht-txcmpl-rings = <8>; /* Extra Tx complete rings to be provisioned for mht sw ports. */ + qcom,rxfill-ring-start = <4>; /* Rx fill ring start ID */ + qcom,rxfill-rings = <4>; /* Total number of Rx fill rings to be provisioned */ + qcom,rxdesc-ring-start = <12>; /* Rx desc ring start ID */ + qcom,rxdesc-rings = <4>; /* Total number of Rx desc rings to be provisioned */ + qcom,rx-page-mode = <0>; /* Rx fill ring page mode */ + qcom,tx-map-priority-level = <1>; /* Tx priority level per port */ + qcom,rx-map-priority-level = <1>; /* Rx priority level per core */ + qcom,ppeds-num = <2>; /* Number of PPEDS nodes */ + /* PPE-DS node format: */ + qcom,ppeds-map = <1 1 1 1 32 8>, /* PPEDS Node#0 ring and queue map */ + <2 2 2 2 40 8>; /* PPEDS Node#1 ring and queue map */ + qcom,txdesc-map = <8 9 10 11>, /* Port0 per-core Tx ring map */ + <12 13 14 15>, /* MHT-Port1 per-core Tx ring map */ + <4 5 6 7>, /* MHT-Port2 per-core Tx ring map/packets from vp*/ + <16 17 18 19>, /* MHT-Port3 per-core Tx ring map */ + <20 21 22 23>; /* MHT-Port4 per-core Tx ring map */ + qcom,txdesc-fc-grp-map = <1 2 3 4 5>; /* Per GMAC flow control group map */ + qcom,rxfill-map = <4 5 6 7>; /* Per-core Rx fill ring map */ + qcom,rxdesc-map = <12 13 14 15>; /* Per-core Rx desc ring map */ + qcom,rx-queue-start = <0>; /* Rx queue start */ + qcom,rx-ring-queue-map = <0 8 16 24>, /* Priority 0 queues per-core Rx ring map */ + <1 9 17 25>, /* Priority 1 queues per-core Rx ring map */ + <2 10 18 26>, /* Priority 2 queues per-core Rx ring map */ + <3 11 19 27>, /* Priority 3 queues per-core Rx ring map */ + <4 12 20 28>, /* Priority 4 queues per-core Rx ring map */ + <5 13 21 29>, /* Priority 5 queues per-core Rx ring map */ + <6 14 22 30>, /* Priority 6 queues per-core Rx ring map */ + <7 15 23 31>; /* Priority 7 queues per-core Rx ring map */ + interrupts = <0 163 4>, /* Tx complete ring id #4 IRQ info */ + <0 164 4>, /* Tx complete ring id #5 IRQ info */ + <0 165 4>, /* Tx complete ring id #6 IRQ info */ + <0 166 4>, /* Tx complete ring id #7 IRQ info */ + <0 167 4>, /* Tx complete ring id #8 IRQ info */ + <0 168 4>, /* Tx complete ring id #9 IRQ info */ + <0 169 4>, /* Tx complete ring id #10 IRQ info */ + <0 170 4>, /* Tx complete ring id #11 IRQ info */ + <0 171 4>, /* Tx complete ring id #12 IRQ info */ + <0 172 4>, /* Tx complete ring id #13 IRQ info */ + <0 173 4>, /* Tx complete ring id #14 IRQ info */ + <0 174 4>, /* Tx complete ring id #15 IRQ info */ + <0 139 4>, /* Rx desc ring id #12 IRQ info */ + <0 140 4>, /* Rx desc ring id #13 IRQ info */ + <0 141 4>, /* Rx desc ring id #14 IRQ info */ + <0 142 4>, /* Rx desc ring id #15 IRQ info */ + <0 191 4>, /* Misc error IRQ info */ + <0 160 4>, /* PPEDS Node #1(TxComp ring id #1) TxComplete IRQ info */ + <0 128 4>, /* PPEDS Node #1(Rx Desc ring id #1) Rx Desc IRQ info */ + <0 152 4>, /* PPEDS Node #1(RxFill Desc ring id #1) Rx Fill IRQ info */ + <0 161 4>, /* PPEDS Node #2(TxComp ring id #2) TxComplete IRQ info */ + <0 129 4>, /* PPEDS Node #2(Rx Desc ring id #2) Rx Desc IRQ info */ + <0 153 4>, /* PPEDS Node #2(RxFill Desc ring id #2) Rx Fill IRQ info */ + <0 175 4>, /* MHT port Tx complete ring id #16 IRQ info */ + <0 176 4>, /* MHT port Tx complete ring id #17 IRQ info */ + <0 177 4>, /* MHT port Tx complete ring id #18 IRQ info */ + <0 178 4>, /* MHT port Tx complete ring id #19 IRQ info */ + <0 179 4>, /* MHT port Tx complete ring id #20 IRQ info */ + <0 180 4>, /* MHT port Tx complete ring id #21 IRQ info */ + <0 181 4>, /* MHT port Tx complete ring id #22 IRQ info */ + <0 182 4>; /* MHT port Tx complete ring id #23 IRQ info */ + }; + + wsi: wsi { + id = <0>; + num_chip = <2>; + chip_info = <0 1 1>, + <1 1 0>; + }; + + q6v5_wcss: remoteproc@d100000 { + boot-args = <0x1 0x4 0x3 0x0 0x26 0x2>, + <0x1 0x4 0x4 0x1 0x2f 0x2>; + memory-region = <&q6_mem_regions>; + + /delete-node/ remoteproc_pd1; + /delete-node/ remoteproc_pd2; + /delete-node/ remoteproc_pd3; + + q6_wcss_pd4: remoteproc_pd4 { + compatible = "qcom,ipq5332-mpd-upd-text"; + firmware = "IPQ5332/q6_fw4.mdt"; + + q6_wcss_pd1: remoteproc_pd1 { + compatible = "qcom,ipq5332-wcss-ahb-mpd"; + firmware = "IPQ5332/q6_fw1.mdt"; + m3_firmware = "IPQ5332/iu_fw.mdt"; + interrupts-extended = <&wcss_smp2p_in 8 0>, + <&wcss_smp2p_in 9 0>, + <&wcss_smp2p_in 12 0>, + <&wcss_smp2p_in 11 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 8>, + <&wcss_smp2p_out 9>, + <&wcss_smp2p_out 10>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + memory-region = <&q6_ipq5332_data>, + <&m3_dump>, + <&q6_etr_region>, + <&q6_ipq5332_caldb>; + }; + + q6_wcss_pd2: remoteproc_pd2 { + compatible = "qcom,ipq5332-wcss-pcie-mpd"; + firmware = "IPQ5332/q6_fw2.mdt"; + m3_firmware = "qcn6432/iu_fw.mdt"; + interrupts-extended = <&wcss_smp2p_in 16 0>, + <&wcss_smp2p_in 17 0>, + <&wcss_smp2p_in 20 0>, + <&wcss_smp2p_in 19 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 16>, + <&wcss_smp2p_out 17>, + <&wcss_smp2p_out 18>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + memory-region = <&q6_qcn6432_data_1>, + <&m3_dump_qcn6432_1>, + <&q6_qcn6432_etr_1>, + <&q6_qcn6432_caldb_1>; + status = "okay"; + }; + + q6_wcss_pd3: remoteproc_pd3 { + compatible = "qcom,ipq5332-wcss-pcie-mpd"; + firmware = "IPQ5332/q6_fw3.mdt"; + interrupts-extended = <&wcss_smp2p_in 24 0>, + <&wcss_smp2p_in 25 0>, + <&wcss_smp2p_in 28 0>, + <&wcss_smp2p_in 27 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 24>, + <&wcss_smp2p_out 25>, + <&wcss_smp2p_out 26>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + memory-region = <&q6_qcn6432_data_2>, + <&m3_dump_qcn6432_2>, + <&q6_qcn6432_etr_2>, + <&q6_qcn6432_caldb_2>; + status = "okay"; + }; + }; + }; + }; +}; + +&blsp1_uart0 { + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&blsp1_uart1 { + pinctrl-0 = <&serial_1_pins>; + pinctrl-names = "default"; + status = "disabled"; +}; + +&blsp1_i2c1 { + clock-frequency = <400000>; + pinctrl-0 = <&i2c_1_pins>; + pinctrl-names = "default"; + status = "disabled"; +}; + +&blsp1_spi0 { + pinctrl-0 = <&spi_0_data_clk_pins &spi_0_cs_pins>; + pinctrl-names = "default"; + status = "okay"; + + flash@0 { + compatible = "n25q128a11", "micron,n25q128a11", "jedec,spi-nor"; + reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + spi-max-frequency = <50000000>; + }; +}; + +&sdhc { + bus-width = <4>; + max-frequency = <192000000>; + mmc-ddr-1_8v; + mmc-hs200-1_8v; + non-removable; + pinctrl-0 = <&sdc_default_state>; + pinctrl-names = "default"; + status = "disabled"; +}; + +&sleep_clk { + clock-frequency = <32000>; +}; + +&xo { + clock-frequency = <24000000>; +}; + +&qpic_bam { + status = "okay"; +}; + +&qpic_nand { + pinctrl-0 = <&qspi_default_state>; + pinctrl-names = "default"; + status = "okay"; + + nandcs@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + + nand-ecc-strength = <8>; + nand-ecc-step-size = <512>; + nand-bus-width = <8>; + }; +}; + +/* PINCTRL */ + +&tlmm { + + led_pins: led_pins { + board_info { + pins = "gpio2", "gpio3"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + input-enable; + }; + + apd_dc_in { + pins = "gpio24"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; //Adapter un-plug + input-enable; + }; + + poe_status { + pins = "gpio34"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; //AF + input-enable; + }; + + /* To MR pin */ + rst_mb { + pins = "gpio29"; + function = "gpio"; + drive-strength = <8>; + output-high; + }; + + led_blue { + pins = "gpio22"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_green { + pins = "gpio45"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_white { + pins = "gpio43"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_red { + pins = "gpio44"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + qspi_default_state: qspi-default-state { + qspi_clock { + pins = "gpio13"; + function = "qspi_clk"; + drive-strength = <8>; + bias-pull-down; + }; + + qspi_cs { + pins = "gpio12"; + function = "qspi_cs"; + drive-strength = <8>; + bias-pull-up; + }; + + qspi_data { + pins = "gpio8", "gpio9", "gpio10", "gpio11"; + function = "qspi_data"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + serial_1_pins: serial1-pinmux { + pins = "gpio33", "gpio34", "gpio35", "gpio36"; + function = "blsp1_uart2"; + drive-strength = <8>; + bias-pull-up; + }; + + i2c_1_pins: i2c-1-state { + pins = "gpio29", "gpio30"; + function = "blsp1_i2c0"; + drive-strength = <8>; + bias-pull-up; + }; + + button_pins: button-state { + pins = "gpio35"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + + pwm_pins: pwm-state { + pins = "gpio46"; + function = "pwm0"; + drive-strength = <8>; + }; + + sdc_default_state: sdc-default-state { + clk-pins { + pins = "gpio13"; + function = "sdc_clk"; + drive-strength = <8>; + bias-disable; + }; + + cmd-pins { + pins = "gpio12"; + function = "sdc_cmd"; + drive-strength = <8>; + bias-pull-up; + }; + + data-pins { + pins = "gpio8", "gpio9", "gpio10", "gpio11"; + function = "sdc_data"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + spi_0_data_clk_pins: spi-0-data-clk-state { + pins = "gpio14", "gpio15", "gpio16"; + function = "blsp0_spi"; + drive-strength = <2>; + bias-pull-down; + }; + + spi_0_cs_pins: spi-0-cs-state { + pins = "gpio17"; + function = "blsp0_spi"; + drive-strength = <2>; + bias-pull-up; + }; + + mdio1_pins: mdio1-state { + mux_0 { + pins = "gpio27"; + function = "mdc1"; + drive-strength = <2>; + bias-pull-up; + }; + mux_1 { + pins = "gpio28"; + function = "mdio1"; + drive-strength = <2>; + bias-pull-up; + }; + }; +}; + +&license_manager { + status = "okay"; +}; + +&usb3 { + qcom,select-utmi-as-pipe-clk; + status = "okay"; + + dwc3@8a00000 { + /delete-property/ #phy-cells; + /delete-property/ phys; + /delete-property/ phy-names; + }; +}; + +&pwm { + pinctrl-0 = <&pwm_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&hs_m31phy_0 { + status = "okay"; +}; + +&wifi0 { + qcom,multipd_arch; + qcom,rproc = <&q6_wcss_pd1>; + qcom,rproc_rpd = <&q6v5_wcss>; + qcom,userpd-subsys-name = "q6v5_wcss_userpd1"; + qcom,bdf-addr = <0x4C200000 0x4C200000 0x4C200000 0x0 0x0 0x0>; + qcom,caldb-addr = <0x4D900000 0x4D500000 0x0 0x0 0x0 0x0>; +#ifdef __IPQ_MEM_PROFILE_512_MB__ + qcom,tgt-mem-mode = <1>; + qcom,caldb-size = <0x300000>; +#else + qcom,tgt-mem-mode = <0>; + qcom,caldb-size = <0x500000>; +#endif + qcom,board_id = <0x12>; +#if defined(__CNSS2__) + mem-region = <&q6_ipq5332_data>; +#else + memory-region = <&q6_ipq5332_data>; +#endif + qcom,wsi = <&wsi>; + qcom,wsi_index = <0>; + status = "okay"; +}; + +&wifi1 { + qcom,multipd_arch; + qcom,rproc = <&q6_wcss_pd2>; + qcom,rproc_rpd = <&q6v5_wcss>; + qcom,userpd-subsys-name = "q6v5_wcss_userpd2"; + qcom,bdf-addr = <0x4DE00000 0x4D800000 0x0 0x0 0x0 0x0>; + qcom,caldb-addr = <0x4F500000 0x4EA00000 0x0 0x0 0x0 0x0>; + qcom,umac-irq-reset-addr = <0x20000884>; + qcom,caldb-size = <0x500000>; +#ifdef __IPQ_MEM_PROFILE_512_MB__ + qcom,tgt-mem-mode = <1>; +#else + qcom,tgt-mem-mode = <0>; +#endif + qcom,board_id = <0x060>; +#if defined(__CNSS2__) + mem-region = <&q6_qcn6432_data_1>; +#else + memory-region = <&q6_qcn6432_data_1>; +#endif + qcom,wsi = <&wsi>; + qcom,wsi_index = <1>; + status = "disabled"; + interrupts = ; + interrupt-names = "umac_reset"; +}; + +&wifi2 { + qcom,multipd_arch; + qcom,rproc = <&q6_wcss_pd3>; + qcom,rproc_rpd = <&q6v5_wcss>; + qcom,userpd-subsys-name = "q6v5_wcss_userpd3"; + qcom,bdf-addr = <0x4FA00000 0x4EF00000 0x4FA00000 0x0 0x0 0x0>; + qcom,caldb-addr = <0x51100000 0x50100000 0x51100000 0x0 0x0 0x0>; + qcom,umac-irq-reset-addr = <0x18000884>; + qcom,caldb-size = <0x500000>; +#ifdef __IPQ_MEM_PROFILE_512_MB__ + qcom,tgt-mem-mode = <1>; +#else + qcom,tgt-mem-mode = <0>; +#endif + qcom,board_id = <0x070>; +#if defined(__CNSS2__) + mem-region = <&q6_qcn6432_data_2>; +#else + memory-region = <&q6_qcn6432_data_2>; +#endif + qcom,wsi = <&wsi>; + qcom,wsi_index = <1>; + qcom,wide_band = <1>; + status = "okay"; + interrupts = ; + interrupt-names = "umac_reset"; +}; diff --git a/feeds/qca-wifi-7/ipq53xx/image/ipq53xx.mk b/feeds/qca-wifi-7/ipq53xx/image/ipq53xx.mk index 94444b713..51c6ae544 100755 --- a/feeds/qca-wifi-7/ipq53xx/image/ipq53xx.mk +++ b/feeds/qca-wifi-7/ipq53xx/image/ipq53xx.mk @@ -162,6 +162,22 @@ define Device/zyxel_nwa130be endef TARGET_DEVICES += zyxel_nwa130be + +define Device/zyxel_nwa50be + DEVICE_TITLE := Zyxel NWA50BE + DEVICE_DTS := ipq5332-zyxel-nwa50be + DEVICE_DTS_DIR := ../dts + DEVICE_DTS_CONFIG := config@mi01.3 + IMAGES := sysupgrade.tar nand-factory.bin nand-factory.ubi + BLOCKSIZE := 128k + PAGESIZE := 2048 + IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata + IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand + IMAGE/nand-factory.ubi := append-ubi + DEVICE_PACKAGES := ath12k-wifi-zyxel-nwa50be ath12k-firmware-ipq5332-peb-peb -ath12k-firmware-qcn92xx +endef +TARGET_DEVICES += zyxel_nwa50be + define Device/cig_wf672 DEVICE_TITLE := CIG WF672 DEVICE_DTS := ipq5332-cig-wf672 diff --git a/feeds/qca-wifi-7/mac80211/patches-zyxel_nwa50be/ath12k/0001-thermal-thermal-setting.patch b/feeds/qca-wifi-7/mac80211/patches-zyxel_nwa50be/ath12k/0001-thermal-thermal-setting.patch new file mode 100644 index 000000000..818f4be9a --- /dev/null +++ b/feeds/qca-wifi-7/mac80211/patches-zyxel_nwa50be/ath12k/0001-thermal-thermal-setting.patch @@ -0,0 +1,74 @@ +From 357da3320f8bcad056b905fb85cad3a29c343d31 Mon Sep 17 00:00:00 2001 +From: YenLin Pan +Date: Tue, 12 Aug 2025 15:41:39 +0800 +Subject: [PATCH] thermal: thermal setting + +lo0 -100 -hi0 105 -off0 0 +lo1 95 -hi1 110 -off1 20 +lo2 100 -hi2 115 -off2 60 +lo3 105 -hi3 119 -off3 98 + +Signed-off-by: YenLin Pan +--- + drivers/net/wireless/ath/ath12k/thermal.h | 34 +++++++++++------------ + 1 file changed, 17 insertions(+), 17 deletions(-) + +diff --git a/drivers/net/wireless/ath/ath12k/thermal.h b/drivers/net/wireless/ath/ath12k/thermal.h +index 5c91906..e81f9a4 100644 +--- a/drivers/net/wireless/ath/ath12k/thermal.h ++++ b/drivers/net/wireless/ath/ath12k/thermal.h +@@ -13,34 +13,34 @@ + + /* Below temperatures are in celsius */ + #define ATH12K_THERMAL_LVL0_TEMP_LOW_MARK -100 +-#define ATH12K_THERMAL_LVL0_TEMP_HIGH_MARK 100 ++#define ATH12K_THERMAL_LVL0_TEMP_HIGH_MARK 105 + #define ATH12K_THERMAL_LVL1_TEMP_LOW_MARK 95 +-#define ATH12K_THERMAL_LVL1_TEMP_HIGH_MARK 105 ++#define ATH12K_THERMAL_LVL1_TEMP_HIGH_MARK 110 + #define ATH12K_THERMAL_LVL2_TEMP_LOW_MARK 100 +-#define ATH12K_THERMAL_LVL2_TEMP_HIGH_MARK 110 ++#define ATH12K_THERMAL_LVL2_TEMP_HIGH_MARK 115 + #define ATH12K_THERMAL_LVL3_TEMP_LOW_MARK 105 +-#define ATH12K_THERMAL_LVL3_TEMP_HIGH_MARK 120 ++#define ATH12K_THERMAL_LVL3_TEMP_HIGH_MARK 119 + + #define ATH12K_THERMAL_LVL0_V2_TEMP_LOW_MARK -100 +-#define ATH12K_THERMAL_LVL0_V2_TEMP_HIGH_MARK 95 +-#define ATH12K_THERMAL_LVL1_V2_TEMP_LOW_MARK 90 +-#define ATH12K_THERMAL_LVL1_V2_TEMP_HIGH_MARK 100 +-#define ATH12K_THERMAL_LVL2_V2_TEMP_LOW_MARK 95 +-#define ATH12K_THERMAL_LVL2_V2_TEMP_HIGH_MARK 105 +-#define ATH12K_THERMAL_LVL3_V2_TEMP_LOW_MARK 100 +-#define ATH12K_THERMAL_LVL3_V2_TEMP_HIGH_MARK 110 ++#define ATH12K_THERMAL_LVL0_V2_TEMP_HIGH_MARK 105 ++#define ATH12K_THERMAL_LVL1_V2_TEMP_LOW_MARK 95 ++#define ATH12K_THERMAL_LVL1_V2_TEMP_HIGH_MARK 110 ++#define ATH12K_THERMAL_LVL2_V2_TEMP_LOW_MARK 100 ++#define ATH12K_THERMAL_LVL2_V2_TEMP_HIGH_MARK 115 ++#define ATH12K_THERMAL_LVL3_V2_TEMP_LOW_MARK 105 ++#define ATH12K_THERMAL_LVL3_V2_TEMP_HIGH_MARK 119 + #define ATH12K_THERMAL_LVL4_V2_TEMP_LOW_MARK 105 + #define ATH12K_THERMAL_LVL4_V2_TEMP_HIGH_MARK 120 + + #define ATH12K_THERMAL_LVL0_DUTY_CYCLE 0 +-#define ATH12K_THERMAL_LVL1_DUTY_CYCLE 50 +-#define ATH12K_THERMAL_LVL2_DUTY_CYCLE 90 +-#define ATH12K_THERMAL_LVL3_DUTY_CYCLE 100 ++#define ATH12K_THERMAL_LVL1_DUTY_CYCLE 20 ++#define ATH12K_THERMAL_LVL2_DUTY_CYCLE 60 ++#define ATH12K_THERMAL_LVL3_DUTY_CYCLE 98 + + #define ATH12K_THERMAL_LVL0_V2_DUTY_CYCLE ATH12K_THERMAL_LVL0_DUTY_CYCLE +-#define ATH12K_THERMAL_LVL1_V2_DUTY_CYCLE ATH12K_THERMAL_LVL0_DUTY_CYCLE +-#define ATH12K_THERMAL_LVL2_V2_DUTY_CYCLE ATH12K_THERMAL_LVL1_DUTY_CYCLE +-#define ATH12K_THERMAL_LVL3_V2_DUTY_CYCLE ATH12K_THERMAL_LVL2_DUTY_CYCLE ++#define ATH12K_THERMAL_LVL1_V2_DUTY_CYCLE ATH12K_THERMAL_LVL1_DUTY_CYCLE ++#define ATH12K_THERMAL_LVL2_V2_DUTY_CYCLE ATH12K_THERMAL_LVL2_DUTY_CYCLE ++#define ATH12K_THERMAL_LVL3_V2_DUTY_CYCLE ATH12K_THERMAL_LVL3_DUTY_CYCLE + #define ATH12K_THERMAL_LVL4_V2_DUTY_CYCLE ATH12K_THERMAL_LVL3_DUTY_CYCLE + + #define THERMAL_CONFIG_POUT0 0 +-- +2.34.1 + diff --git a/feeds/qca-wifi-7/qca-ssdk-qca/files-zyxel_nwa50be/qca-ssdk b/feeds/qca-wifi-7/qca-ssdk-qca/files-zyxel_nwa50be/qca-ssdk new file mode 100755 index 000000000..7e4cfa52c --- /dev/null +++ b/feeds/qca-wifi-7/qca-ssdk-qca/files-zyxel_nwa50be/qca-ssdk @@ -0,0 +1,315 @@ +#!/bin/sh /etc/rc.common +# Copyright (c) 2018, 2021, The Linux Foundation. All rights reserved. +# Copyright (c) 2022-2024, Qualcomm Innovation Center, Inc. All rights reserved. +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# + +START=16 + +#!/bin/sh +ruletype="ip4 ip6" +side="wan lan" +qwan="1 3 2 0 5 7 6 4" +qlan="0 1 2 3 4 5 6 7" + +function create_war_acl_rules(){ + for lw in $side + do + #echo $lw + if [ "$lw" == "wan" ];then + listid=254 + queue=$qwan + portmap=0x20 + else + listid=255 + queue=$qlan + portmap=0x1e + fi + #echo $queue + #echo "creating list $listid" + ssdk_sh acl list create $listid 255 + ruleid=0 + for rt in $ruletype + do + for qid in $queue + do + cmd="ssdk_sh acl rule add $listid $ruleid 1 n 0 0" + #echo $cmd + if [ "$rt" == "ip4" ];then + cmd="$cmd ip4 n n n n n n n n n n n n n n n n n n n n n n n n n n n n n" + #echo $cmd + else + cmd="$cmd ip6 n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n" + #echo $cmd + fi + if [ $ruleid -le 3 ];then + #non-zero dscp + cmd="$cmd y 0x0 0xff" + elif [ $ruleid -le 7 ];then + #zero dscp + cmd="$cmd n" + elif [ $ruleid -le 11 ];then + #non-zero dscp + cmd="$cmd y 0x0 0xff" + else + #zero dscp + cmd="$cmd n" + fi + p=$((ruleid/2)) + cmd="$cmd y mask $((ruleid%2)) 0x1 y mask $((p%2)) 0x1 n n n n n n n n n n n n n n n y n n n n n n n y $qid n n 0 0 n n n n n n n n n n n n n n n n n n n n 0" + #echo $cmd + $cmd + ruleid=`expr $ruleid + 1` + done + done + ssdk_sh acl list bind $listid 0 1 $portmap + done +} + +function create_war_cosmap(){ + ssdk_sh cosmap pri2q set 0 0 + ssdk_sh cosmap pri2q set 1 0 + ssdk_sh cosmap pri2q set 2 0 + ssdk_sh cosmap pri2q set 3 0 + ssdk_sh cosmap pri2q set 4 1 + ssdk_sh cosmap pri2q set 5 1 + ssdk_sh cosmap pri2q set 6 1 + ssdk_sh cosmap pri2q set 7 1 + ssdk_sh cosmap pri2ehq set 0 0 + ssdk_sh cosmap pri2ehq set 1 0 + ssdk_sh cosmap pri2ehq set 2 0 + ssdk_sh cosmap pri2ehq set 3 0 + ssdk_sh cosmap pri2ehq set 4 1 + ssdk_sh cosmap pri2ehq set 5 1 + ssdk_sh cosmap pri2ehq set 6 1 + ssdk_sh cosmap pri2ehq set 7 1 +} + +function create_acl_byp_egstp_rules(){ + chip_ver=$1 + cmd="ssdk_sh servcode config set 1 n 0 0xfffefc7f 0xffbdff 0 0 0 0 0 0" + if [ "$chip_ver" == "0x2000" ] || [ "$chip_ver" = "0x2001" ] || [ "$chip_ver" = "0x2100" ]; then + cmd="$cmd 0" + fi + #echo $cmd + $cmd + + ssdk_sh acl list create 56 48 + #action bypass eg stp check + action="y n n n n n n n n n n 0 0 n n n n n n n n n n n n n y n n n n n n n n n n n n y n n n n n n n n n n n n n n n n n n" + if [ "$chip_ver" == "0x2000" ]; then + action="$action n n 0" + elif [ "$chip_ver" = "0x2001" ] || [ "$chip_ver" = "0x2100" ]; then + action="$action n n n 0" + else + action="$action 0" + fi + + for ruleid in $( seq 0 2 ) + do + if [ "$ruleid" == "0" ];then + cmd="ssdk_sh acl rule add 56 0 1 n 0 0 mac n n n n n y 01-80-c2-00-00-00 ff-ff-ff-ff-ff-ff n n n n n n n n n n n n n n n n n n n n n n n" + elif [ "$ruleid" == "1" ];then + cmd="ssdk_sh acl rule add 56 1 1 n 0 0 mac n n n n n n n yes 0x8809 0xffff n n n n n n n n n n n n n n n n n n n n n" + else + cmd="ssdk_sh acl rule add 56 2 1 n 0 0 mac n n n n n n n yes 0x888e 0xffff n n n n n n n n n n n n n n n n n n n n n" + fi + if [ "$chip_ver" == "0x2000" ] || [ "$chip_ver" = "0x2001" ] || [ "$chip_ver" = "0x2100" ]; then + cmd="$cmd n $action" + else + cmd="$cmd $action" + fi + #echo $cmd + $cmd + done + ssdk_sh acl list bind 56 0 2 1 +} + +function delete_war_acl_rules(){ + for lw in $side + do + #echo $lw + if [ "$lw" == "wan" ];then + listid=254 + queue=$qwan + portmap=0x20 + else + listid=255 + queue=$qlan + portmap=0x1e + fi + ssdk_sh acl list unbind $listid 0 1 $portmap + for rt in $ruletype + do + for qid in $queue + do + cmd="ssdk_sh acl rule del $listid 0 1" + echo $cmd + $cmd + done + done + #echo "deleting list $listid" + ssdk_sh acl list destroy $listid + done +} + +function delete_war_cosmap(){ + ssdk_sh cosmap pri2q set 0 0 + ssdk_sh cosmap pri2q set 1 0 + ssdk_sh cosmap pri2q set 2 1 + ssdk_sh cosmap pri2q set 3 1 + ssdk_sh cosmap pri2q set 4 2 + ssdk_sh cosmap pri2q set 5 2 + ssdk_sh cosmap pri2q set 6 3 + ssdk_sh cosmap pri2q set 7 3 + ssdk_sh cosmap pri2ehq set 0 1 + ssdk_sh cosmap pri2ehq set 1 0 + ssdk_sh cosmap pri2ehq set 2 2 + ssdk_sh cosmap pri2ehq set 3 2 + ssdk_sh cosmap pri2ehq set 4 3 + ssdk_sh cosmap pri2ehq set 5 3 + ssdk_sh cosmap pri2ehq set 6 4 + ssdk_sh cosmap pri2ehq set 7 5 +} + +function delete_acl_byp_egstp_rules(){ + chip_ver=$1 + cmd="ssdk_sh servcode config set 1 n 0 0xfffefcff 0xffbfff 0 0 0 0 0 0" + if [ "$chip_ver" == "0x2000" ] || [ "$chip_ver" = "0x2001" ] || [ "$chip_ver" = "0x2100" ]; then + cmd="$cmd 0" + fi + #echo $cmd + $cmd + ssdk_sh acl list unbind 56 0 2 1 + ssdk_sh acl rule del 56 0 1 + ssdk_sh acl rule del 56 1 1 + ssdk_sh acl rule del 56 2 1 + ssdk_sh acl list destroy 56 +} + +function edma_war_config_add(){ + create_war_cosmap + ssdk_sh acl status set enable + create_war_acl_rules +} + +function edma_war_config_del(){ + delete_war_acl_rules + delete_war_cosmap +} + +function ipq50xx_serdes_monitor () { + #if qca808x phy exist, need to monitor the serdes to avoid the effect for WIFI + port_id=2 + old_linkstatus="DISABLE" + phy_id_info=`ssdk_sh port phyid get $port_id | grep Org | awk -F '!' '{print $2}'` + if [ "$phy_id_info" = "[Org ID]:0x004d[Rev ID]:0xd101" ]; then + ssdk_sh debug phy set 29 0xb 0x300d + ssdk_sh debug uniphy set 0 0x7ac 0x300d 4 + + while true + do + cur_linkstatus=`ssdk_sh port linkstatus get $port_id | grep Status | awk -F ':' '{print $2}'` + #when qca808x phy link status is from down to up, serdes tx would be enabled + if [ "$cur_linkstatus" = "ENABLE" ] && [ "$old_linkstatus" = "DISABLE" ]; then + ssdk_sh debug phy set 29 0xb 0xb00d + ssdk_sh debug uniphy set 0 0x7ac 0xb00d 4 + fi + #when qca808x phy link status is from up to down, serdes tx would be disabled + if [ "$cur_linkstatus" = "DISABLE" ] && [ "$old_linkstatus" = "ENABLE" ]; then + ssdk_sh debug phy set 29 0xb 0x300d + ssdk_sh debug uniphy set 0 0x7ac 0x300d 4 + fi + old_linkstatus=$cur_linkstatus + done + fi +} + +function ipq53xx_phy_amplitude_set () { + #PHY (8081->5321): Full amplitude (bit[7:5]=000), half swing (bit[4]=1) + #for qca808x phy sgmii, set half amplitude with src_half_swing register + port_id=2 + phy_addr=0x1d + phy_id_info=`ssdk_sh port phyid get $port_id | grep Org | awk -F '!' '{print $2}'` + if [ "$phy_id_info" = "[Org ID]:0x004d[Rev ID]:0xd101" ]; then + ssdk_sh debug phy set $phy_addr 0x40010087 0x208a + #Set the Reg0x67 bits[7:5]=3’b000 and bit4=1’b1 + ampl_val=$(ssdk_sh debug phy get $phy_addr 0x40010067 | grep SSDK | grep -oE '0x[0-9a-fA-F]+' | sed 's/\(0x..\)./\11/') + ssdk_sh debug phy set $phy_addr 0x40010067 $ampl_val + fi +} + +function ipq53xx_uniphy_amplitude_set () { + #UniPhy (5321->8081): Custom amplitude (bit[8:4]=21) = 0xb15d + #for ipq53xx sgmii, set half amplitude with tx_emp_lvl/margin_index and tx_margin + ssdk_sh debug uniphy set 1 0x7ac 0xb15d 4 + ssdk_sh debug uniphy set 1 0x24 0 4 +} + +ssdk_dependency() { + counter=0 + [ -e /lib/modules/$(uname -r)/qca-ssdk.ko ] && [ ! -d /sys/module/qca_ssdk ] && { + insmod qca-ssdk.ko + } + while [ ! -d /sys/ssdk ] && [ "$counter" -le 5 ] + do + sleep 1 + counter=$((counter+1)) + done +} + +start() { + ssdk_dependency + chip_ver=`ssdk_sh debug reg get 0 4 | grep Data | tr -d 'SSDK Init OK![Data]:'` + #The following commands should be uncommented to enable EDMA WAR + if [ "$chip_ver" = "0x1401" ]; then + #edma_war_config_add + echo '' + fi + #The following commands should be uncommented to add acl egress stp bypass rules + if [ "$chip_ver" = "0x1500" ] || [ "$chip_ver" = "0x1501" ] || [ "$chip_ver" = "0x2000" ] || [ "$chip_ver" = "0x2001" ] || [ "$chip_ver" = "0x2100" ]; then + #create_acl_byp_egstp_rules $chip_ver + echo '' + fi + #The following commands should be uncommented to enable WAR for ipq50xx + chip_type_info=`cat tmp/sysinfo/model` + result=$(echo $chip_type_info | grep "IPQ5018") + if [ "$result" != "" ]; then + #ipq50xx_serdes_monitor & + #ipq50xx_uniphy_amplitude_set + #ipq50xx_phy_amplitude_set + echo '' + fi + if [ "$chip_ver" = "0x2001" ]; then + ipq53xx_uniphy_amplitude_set + ipq53xx_phy_amplitude_set + echo '' + fi + echo starting +} + +stop() { + chip_ver=`ssdk_sh debug reg get 0 4 | grep Data | tr -d 'SSDK Init OK![Data]:'` + #The following commands should be uncommented to disable EDMA WAR + if [ "$chip_ver" = "0x1401" ]; then + #edma_war_config_del + echo '' + fi + #The following commands should be uncommented to delete acl egress stp bypass rules + if [ "$chip_ver" = "0x1500" ] || [ "$chip_ver" = "0x1501" ] || [ "$chip_ver" = "0x2000" ] || [ "$chip_ver" = "0x2001" ] || [ "$chip_ver" = "0x2100" ]; then + #delete_acl_byp_egstp_rules $chip_ver + echo '' + fi + echo stoping +} diff --git a/feeds/qca-wifi-7/qca-ssdk-qca/patches-zyxel_nwa50be/0001-pinctrl-make-the-switch-LED-works.patch b/feeds/qca-wifi-7/qca-ssdk-qca/patches-zyxel_nwa50be/0001-pinctrl-make-the-switch-LED-works.patch new file mode 100644 index 000000000..0fd4afc5b --- /dev/null +++ b/feeds/qca-wifi-7/qca-ssdk-qca/patches-zyxel_nwa50be/0001-pinctrl-make-the-switch-LED-works.patch @@ -0,0 +1,47 @@ +From 7fa9e9b683f1c573c58a14755347988919bc7d06 Mon Sep 17 00:00:00 2001 +From: YenLin Pan +Date: Wed, 14 May 2025 13:47:06 +0800 +Subject: [PATCH] pinctrl: make the switch LED works + +Enable switch LED pin definition for LED0/LED1/LED2 control + +Signed-off-by: YenLin Pan +--- + src/init/ssdk_mht_pinctrl.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/init/ssdk_mht_pinctrl.c b/src/init/ssdk_mht_pinctrl.c +index 2debe59..1ae0002 100755 +--- a/src/init/ssdk_mht_pinctrl.c ++++ b/src/init/ssdk_mht_pinctrl.c +@@ -33,11 +33,17 @@ static struct mht_pinctrl_setting mht_pin_settings[] = { + /*PINs default MUX Setting*/ + MHT_PIN_SETTING_MUX(0, MHT_PIN_FUNC_INTN_WOL), + MHT_PIN_SETTING_MUX(1, MHT_PIN_FUNC_INTN), +-#if 0 ++#if 1 + MHT_PIN_SETTING_MUX(2, MHT_PIN_FUNC_P0_LED_0), + MHT_PIN_SETTING_MUX(3, MHT_PIN_FUNC_P1_LED_0), + MHT_PIN_SETTING_MUX(4, MHT_PIN_FUNC_P2_LED_0), + MHT_PIN_SETTING_MUX(5, MHT_PIN_FUNC_P3_LED_0), ++ MHT_PIN_SETTING_MUX(6, MHT_PIN_FUNC_P0_LED_2), ++ MHT_PIN_SETTING_MUX(7, MHT_PIN_FUNC_P1_LED_2), ++ MHT_PIN_SETTING_MUX(8, MHT_PIN_FUNC_P2_LED_2), ++ MHT_PIN_SETTING_MUX(9, MHT_PIN_FUNC_P3_LED_2), ++#endif ++#if 0 + MHT_PIN_SETTING_MUX(6, MHT_PIN_FUNC_PPS_IN), + MHT_PIN_SETTING_MUX(7, MHT_PIN_FUNC_TOD_IN), + MHT_PIN_SETTING_MUX(8, MHT_PIN_FUNC_RTC_REFCLK_IN), +@@ -49,7 +55,7 @@ static struct mht_pinctrl_setting mht_pin_settings[] = { + MHT_PIN_SETTING_MUX(13, MHT_PIN_FUNC_P0_TOD_OUT), + MHT_PIN_SETTING_MUX(14, MHT_PIN_FUNC_P0_CLK125_TDI), + MHT_PIN_SETTING_MUX(15, MHT_PIN_FUNC_P0_SYNC_CLKO_PTP), +-#if 0 ++#if 1 + MHT_PIN_SETTING_MUX(16, MHT_PIN_FUNC_P0_LED_1), + MHT_PIN_SETTING_MUX(17, MHT_PIN_FUNC_P1_LED_1), + MHT_PIN_SETTING_MUX(18, MHT_PIN_FUNC_P2_LED_1), +-- +2.34.1 + diff --git a/profiles/zyxel_nwa50be.yml b/profiles/zyxel_nwa50be.yml new file mode 100644 index 000000000..4cf5eb461 --- /dev/null +++ b/profiles/zyxel_nwa50be.yml @@ -0,0 +1,16 @@ +--- +profile: zyxel_nwa50be +target: ipq53xx +subtarget: generic +description: Build image for the zyxel nwa50be +image: bin/targets/ipq53xx/generic/openwrt-ipq53xx-zyxel_nwa50be-squashfs-sysupgrade.tar +feeds: + - name: qca + path: ../../feeds/qca-wifi-7 +packages: + - ipq53xx + - qca-ssdk-shell +include: + - ucentral-ap +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=0