From 02d3aa72bb72af1a9405bc3fef977e48d20157a5 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Fri, 4 Apr 2025 11:04:01 +0200 Subject: [PATCH 1/5] at91: add USB kmods only for subtargets that support USB Currently, kmod-usb-ohci,kmod-at91-udc and kmod-usb-gadget-eth are included as the default packages for all at91 subtargets. However, this is breaking image builder as kmod-at91-udc is not being built on sama7 since it depends on USB_SUPPORT and sama7 does not have USB support enabled in the kernel as its not supported upstream so its not even selectable in the config. So, move to include these as default packages only for sama5 and sama9x as both of those have USB support enabled. Fixes: #18407 Link: https://github.com/openwrt/openwrt/pull/18413 Signed-off-by: Robert Marko --- target/linux/at91/Makefile | 2 -- target/linux/at91/sam9x/target.mk | 2 ++ target/linux/at91/sama5/target.mk | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/target/linux/at91/Makefile b/target/linux/at91/Makefile index 8fd4a01834..752ac4c398 100644 --- a/target/linux/at91/Makefile +++ b/target/linux/at91/Makefile @@ -16,6 +16,4 @@ include $(INCLUDE_DIR)/target.mk KERNELNAME:=zImage dtbs -DEFAULT_PACKAGES += kmod-usb-ohci kmod-at91-udc kmod-usb-gadget-eth - $(eval $(call BuildTarget)) diff --git a/target/linux/at91/sam9x/target.mk b/target/linux/at91/sam9x/target.mk index f6da7c003c..70f4a2e7e3 100644 --- a/target/linux/at91/sam9x/target.mk +++ b/target/linux/at91/sam9x/target.mk @@ -1,6 +1,8 @@ BOARDNAME:= SAM9X Boards (ARMv5) CPU_TYPE:=arm926ej-s +DEFAULT_PACKAGES += kmod-usb-ohci kmod-at91-udc kmod-usb-gadget-eth + define Target/Description Build generic firmware for Microchip AT91 SAM9x platforms using the ARMv5 instruction set. diff --git a/target/linux/at91/sama5/target.mk b/target/linux/at91/sama5/target.mk index 35df05b70d..c2c3464e49 100644 --- a/target/linux/at91/sama5/target.mk +++ b/target/linux/at91/sama5/target.mk @@ -2,7 +2,7 @@ BOARDNAME:=SAMA5 boards(Cortex-A5) CPU_TYPE:=cortex-a5 CPU_SUBTYPE:=vfpv4 FEATURES+=fpu -DEFAULT_PACKAGES += kmod-usb2 +DEFAULT_PACKAGES += kmod-usb2 kmod-usb-ohci kmod-at91-udc kmod-usb-gadget-eth define Target/Description Build generic firmware for Microchip(Atmel AT91) SAMA5D2, From 40851dae6ace7449937ea6fc819b81af6c147a35 Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Wed, 2 Apr 2025 08:03:20 +0800 Subject: [PATCH 2/5] ath79: dts: disable redundant built-in watchdog The built-in watchdog is redundant when the device has an external GPIO based hardware watchdog. And there is a conflict that both of them will attempt to register the same device entry in sysfs. This resulted in the built-in watchdog being unable to be activated. This patch explicitly disables the built-in watchdog for devices that use GPIO watchdog to fix the error: [ 1.779206] ath79-wdt 18060008.wdt: unable to register misc device, err=-16 [ 1.786355] ath79-wdt: probe of 18060008.wdt failed with error -16 Signed-off-by: Shiji Yang Link: https://github.com/openwrt/openwrt/pull/18395 Signed-off-by: Robert Marko --- target/linux/ath79/dts/ar7240_openmesh_om2p-v1.dts | 4 ++++ target/linux/ath79/dts/ar9330_openmesh_om2p.dtsi | 4 ++++ target/linux/ath79/dts/ar9341_openmesh_om2p-hs.dtsi | 4 ++++ target/linux/ath79/dts/ar9344_alfa-network_n5q.dts | 4 ++++ target/linux/ath79/dts/ar9344_openmesh_mr600-v2.dts | 4 ++++ target/linux/ath79/dts/ar9344_openmesh_om5p-an.dts | 4 ++++ target/linux/ath79/dts/ar9344_openmesh_om5p.dts | 4 ++++ target/linux/ath79/dts/ar9344_zbtlink_zbt-wd323.dts | 8 ++++---- target/linux/ath79/dts/qca9531_8dev_carambola3.dts | 4 ---- target/linux/ath79/dts/qca9531_8dev_lima.dts | 4 ---- target/linux/ath79/dts/qca9531_alfa-network_r36a.dtsi | 4 ++++ target/linux/ath79/dts/qca9531_comfast_cf-e560ac.dts | 4 ++++ target/linux/ath79/dts/qca9531_comfast_cf-ew71-v2.dts | 4 ++++ target/linux/ath79/dts/qca9531_comfast_cf-ew72.dts | 4 ++++ target/linux/ath79/dts/qca9531_engenius_ews511ap.dts | 2 +- target/linux/ath79/dts/qca9533_openmesh_om2p-v4.dtsi | 4 ++++ target/linux/ath79/dts/qca9533_plasmacloud_pa300.dtsi | 4 ++++ target/linux/ath79/dts/qca9558_comfast_cf-e380ac-v2.dts | 2 +- target/linux/ath79/dts/qca9558_comfast_cf-wr650ac.dtsi | 4 ++++ target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi | 4 ++++ .../ath79/dts/qca9558_librerouter_librerouter-v1.dts | 4 ++++ target/linux/ath79/dts/qca9558_openmesh_a60.dtsi | 4 ++++ target/linux/ath79/dts/qca9558_openmesh_mr.dtsi | 4 ++++ target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v1.dts | 4 ++++ target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v2.dts | 4 ++++ target/linux/ath79/dts/qca9563_comfast_cf-e375ac.dts | 4 ++++ 26 files changed, 90 insertions(+), 14 deletions(-) diff --git a/target/linux/ath79/dts/ar7240_openmesh_om2p-v1.dts b/target/linux/ath79/dts/ar7240_openmesh_om2p-v1.dts index 28b764069e..71664094f3 100644 --- a/target/linux/ath79/dts/ar7240_openmesh_om2p-v1.dts +++ b/target/linux/ath79/dts/ar7240_openmesh_om2p-v1.dts @@ -177,3 +177,7 @@ gpio-controller; }; }; + +&wdt { + status = "disabled"; +}; diff --git a/target/linux/ath79/dts/ar9330_openmesh_om2p.dtsi b/target/linux/ath79/dts/ar9330_openmesh_om2p.dtsi index 51a2c8b2af..1a02a8dec5 100644 --- a/target/linux/ath79/dts/ar9330_openmesh_om2p.dtsi +++ b/target/linux/ath79/dts/ar9330_openmesh_om2p.dtsi @@ -163,6 +163,10 @@ nvmem-cell-names = "mac-address"; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/ar9341_openmesh_om2p-hs.dtsi b/target/linux/ath79/dts/ar9341_openmesh_om2p-hs.dtsi index 885e8bb420..7675702802 100644 --- a/target/linux/ath79/dts/ar9341_openmesh_om2p-hs.dtsi +++ b/target/linux/ath79/dts/ar9341_openmesh_om2p-hs.dtsi @@ -173,6 +173,10 @@ nvmem-cell-names = "mac-address"; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/ar9344_alfa-network_n5q.dts b/target/linux/ath79/dts/ar9344_alfa-network_n5q.dts index 8dfcd2ee3a..18cd8db4aa 100644 --- a/target/linux/ath79/dts/ar9344_alfa-network_n5q.dts +++ b/target/linux/ath79/dts/ar9344_alfa-network_n5q.dts @@ -166,6 +166,10 @@ }; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/ar9344_openmesh_mr600-v2.dts b/target/linux/ath79/dts/ar9344_openmesh_mr600-v2.dts index b6bec0a438..de7acdbca9 100644 --- a/target/linux/ath79/dts/ar9344_openmesh_mr600-v2.dts +++ b/target/linux/ath79/dts/ar9344_openmesh_mr600-v2.dts @@ -73,3 +73,7 @@ always-running; }; }; + +&wdt { + status = "disabled"; +}; diff --git a/target/linux/ath79/dts/ar9344_openmesh_om5p-an.dts b/target/linux/ath79/dts/ar9344_openmesh_om5p-an.dts index d15acfc7ca..24ce6eead6 100644 --- a/target/linux/ath79/dts/ar9344_openmesh_om5p-an.dts +++ b/target/linux/ath79/dts/ar9344_openmesh_om5p-an.dts @@ -218,6 +218,10 @@ nvmem-cell-names = "mac-address"; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/ar9344_openmesh_om5p.dts b/target/linux/ath79/dts/ar9344_openmesh_om5p.dts index d1ce727489..7b08d6a5e6 100644 --- a/target/linux/ath79/dts/ar9344_openmesh_om5p.dts +++ b/target/linux/ath79/dts/ar9344_openmesh_om5p.dts @@ -178,6 +178,10 @@ nvmem-cell-names = "mac-address"; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/ar9344_zbtlink_zbt-wd323.dts b/target/linux/ath79/dts/ar9344_zbtlink_zbt-wd323.dts index b0002e455f..60de383008 100644 --- a/target/linux/ath79/dts/ar9344_zbtlink_zbt-wd323.dts +++ b/target/linux/ath79/dts/ar9344_zbtlink_zbt-wd323.dts @@ -62,6 +62,9 @@ watchdog { compatible = "linux,wdt-gpio"; + + pinctrl-names = "default"; + pinctrl-0 = <&enable_gpio21>; gpios = <&gpio 21 GPIO_ACTIVE_HIGH>; hw_algo = "toggle"; hw_margin_ms = <30000>; @@ -70,10 +73,7 @@ }; &wdt { - status = "okay"; - - pinctrl-names = "default"; - pinctrl-0 = <&enable_gpio21>; + status = "disabled"; }; &gpio { diff --git a/target/linux/ath79/dts/qca9531_8dev_carambola3.dts b/target/linux/ath79/dts/qca9531_8dev_carambola3.dts index a740999af6..f34c9e744e 100644 --- a/target/linux/ath79/dts/qca9531_8dev_carambola3.dts +++ b/target/linux/ath79/dts/qca9531_8dev_carambola3.dts @@ -41,10 +41,6 @@ status = "okay"; }; -&wdt { - status = "okay"; -}; - &spi { status = "okay"; diff --git a/target/linux/ath79/dts/qca9531_8dev_lima.dts b/target/linux/ath79/dts/qca9531_8dev_lima.dts index 22d80a7d6f..3ab2272f21 100644 --- a/target/linux/ath79/dts/qca9531_8dev_lima.dts +++ b/target/linux/ath79/dts/qca9531_8dev_lima.dts @@ -32,10 +32,6 @@ status = "okay"; }; -&wdt { - status = "okay"; -}; - &spi { status = "okay"; diff --git a/target/linux/ath79/dts/qca9531_alfa-network_r36a.dtsi b/target/linux/ath79/dts/qca9531_alfa-network_r36a.dtsi index 48f2eff86a..f07e711829 100644 --- a/target/linux/ath79/dts/qca9531_alfa-network_r36a.dtsi +++ b/target/linux/ath79/dts/qca9531_alfa-network_r36a.dtsi @@ -121,6 +121,10 @@ status = "okay"; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-e560ac.dts b/target/linux/ath79/dts/qca9531_comfast_cf-e560ac.dts index 19256aa10d..ca44106ba0 100644 --- a/target/linux/ath79/dts/qca9531_comfast_cf-e560ac.dts +++ b/target/linux/ath79/dts/qca9531_comfast_cf-e560ac.dts @@ -182,6 +182,10 @@ nvmem-cell-names = "mac-address"; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-ew71-v2.dts b/target/linux/ath79/dts/qca9531_comfast_cf-ew71-v2.dts index 2277646500..c5a96c6613 100644 --- a/target/linux/ath79/dts/qca9531_comfast_cf-ew71-v2.dts +++ b/target/linux/ath79/dts/qca9531_comfast_cf-ew71-v2.dts @@ -138,6 +138,10 @@ nvmem-cell-names = "mac-address"; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-ew72.dts b/target/linux/ath79/dts/qca9531_comfast_cf-ew72.dts index e5eac04138..b5dcab0b02 100644 --- a/target/linux/ath79/dts/qca9531_comfast_cf-ew72.dts +++ b/target/linux/ath79/dts/qca9531_comfast_cf-ew72.dts @@ -149,6 +149,10 @@ nvmem-cell-names = "mac-address"; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/qca9531_engenius_ews511ap.dts b/target/linux/ath79/dts/qca9531_engenius_ews511ap.dts index 5a88731e66..6e9df06918 100644 --- a/target/linux/ath79/dts/qca9531_engenius_ews511ap.dts +++ b/target/linux/ath79/dts/qca9531_engenius_ews511ap.dts @@ -75,7 +75,7 @@ }; &wdt { - status = "okay"; + status = "disabled"; }; &rst { diff --git a/target/linux/ath79/dts/qca9533_openmesh_om2p-v4.dtsi b/target/linux/ath79/dts/qca9533_openmesh_om2p-v4.dtsi index bd43ccad79..28737c9e96 100644 --- a/target/linux/ath79/dts/qca9533_openmesh_om2p-v4.dtsi +++ b/target/linux/ath79/dts/qca9533_openmesh_om2p-v4.dtsi @@ -170,6 +170,10 @@ nvmem-cell-names = "mac-address"; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/qca9533_plasmacloud_pa300.dtsi b/target/linux/ath79/dts/qca9533_plasmacloud_pa300.dtsi index 07edeed806..4ff8ae2f61 100644 --- a/target/linux/ath79/dts/qca9533_plasmacloud_pa300.dtsi +++ b/target/linux/ath79/dts/qca9533_plasmacloud_pa300.dtsi @@ -148,6 +148,10 @@ nvmem-cell-names = "mac-address"; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/qca9558_comfast_cf-e380ac-v2.dts b/target/linux/ath79/dts/qca9558_comfast_cf-e380ac-v2.dts index afe97df6d4..79b5e4e6ea 100644 --- a/target/linux/ath79/dts/qca9558_comfast_cf-e380ac-v2.dts +++ b/target/linux/ath79/dts/qca9558_comfast_cf-e380ac-v2.dts @@ -149,7 +149,7 @@ }; &wdt { - status = "okay"; + status = "disabled"; }; &wmac { diff --git a/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac.dtsi b/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac.dtsi index 7bcadb2ada..4143ca9270 100644 --- a/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac.dtsi +++ b/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac.dtsi @@ -104,6 +104,10 @@ }; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; }; diff --git a/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi b/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi index 63d4a75e61..b189b8ff14 100644 --- a/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi +++ b/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi @@ -137,6 +137,10 @@ }; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/qca9558_librerouter_librerouter-v1.dts b/target/linux/ath79/dts/qca9558_librerouter_librerouter-v1.dts index a8c1e75d8d..e1936ef2ee 100644 --- a/target/linux/ath79/dts/qca9558_librerouter_librerouter-v1.dts +++ b/target/linux/ath79/dts/qca9558_librerouter_librerouter-v1.dts @@ -210,6 +210,10 @@ }; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/qca9558_openmesh_a60.dtsi b/target/linux/ath79/dts/qca9558_openmesh_a60.dtsi index 8cd27e01cc..650250dee6 100644 --- a/target/linux/ath79/dts/qca9558_openmesh_a60.dtsi +++ b/target/linux/ath79/dts/qca9558_openmesh_a60.dtsi @@ -194,6 +194,10 @@ phy-handle = <&phy2>; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/qca9558_openmesh_mr.dtsi b/target/linux/ath79/dts/qca9558_openmesh_mr.dtsi index d4087d511f..48b8fe8190 100644 --- a/target/linux/ath79/dts/qca9558_openmesh_mr.dtsi +++ b/target/linux/ath79/dts/qca9558_openmesh_mr.dtsi @@ -175,6 +175,10 @@ }; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v1.dts b/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v1.dts index 838aa1f0b8..0dcbbad796 100644 --- a/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v1.dts +++ b/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v1.dts @@ -213,6 +213,10 @@ phy-handle = <&phy2>; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v2.dts b/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v2.dts index 9c5b70a606..9983222af9 100644 --- a/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v2.dts +++ b/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v2.dts @@ -252,6 +252,10 @@ phy-handle = <&phy1>; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; diff --git a/target/linux/ath79/dts/qca9563_comfast_cf-e375ac.dts b/target/linux/ath79/dts/qca9563_comfast_cf-e375ac.dts index 9fca52bf33..c0f563bae6 100644 --- a/target/linux/ath79/dts/qca9563_comfast_cf-e375ac.dts +++ b/target/linux/ath79/dts/qca9563_comfast_cf-e375ac.dts @@ -157,6 +157,10 @@ phy-handle = <&phy0>; }; +&wdt { + status = "disabled"; +}; + &wmac { status = "okay"; From a0c1c9df9746c559bcc855b5dc01c492658d8e73 Mon Sep 17 00:00:00 2001 From: Erik Servili Date: Wed, 2 Apr 2025 23:01:16 +0200 Subject: [PATCH 3/5] qualcommax: ipq60xx: add support for Netgear WAX610 and WAX610Y Netgear WAX610 / WAX610Y is a 802.11ax AP claiming AX1800 support. Specifications: --------------- * CPU: Qualcomm IPQ6018 Quad core Cortex-A53 * RAM: 512MB * Storage: Winbond W29N01HZBINF 128MB NAND * Ethernet: * 2.5GbE RJ45 port with PoE input * WLAN: * 2.4GHz/5GHz * LEDs: * Power: Dual-color LED (Green / Orange), Single-color LED (Blue) * Ethernet: Dual-color LED (Green / Orange) * 2.4Ghz WiFi: 2x Single-color LED (Blue, Green) * 5Ghz WiFi: 2x Single-color LED (Blue, Green) * Buttons: * 1x Reset * UART: 4-pin populated header * Pinout 1 - VCC, 2 - GND, 3 - TX, 4 - RX Installation: ============= Web UI method ------------- Set up the device using the stock web UI in local management mode. Download the ui-factory.tar image. * Enter the Management tab * Select Maintenance->Upgrade->Firmware Upgrade * Ensure the "Upgrade Options" field has "Local" selected * Click "Browse File" and select the image * Click "Upgrade" (NOT "Upgrade Now") at the bottom of the page The device will install the image but reboot back into the vendor firmware. Return the to Firmware Upgrade page as above and select "Boot up Backup Firmware". The device should reboot into OpenWRT. TFTP method ----------- To flash via tftp, first place the initramfs image on the TFTP server. setenv serverip setenv ipaddr tftpboot netgear_wax610-initramfs-uImage.itb bootm This should boot OpenWRT. Once booted, flash the sysupgrade.bin image using either luci or the command line. Signed-off-by: Erik Servili Link: https://github.com/openwrt/openwrt/pull/18377 Signed-off-by: Robert Marko --- .../uboot-envtools/files/qualcommax_ipq60xx | 2 + package/firmware/ipq-wifi/Makefile | 12 +- .../boot/dts/qcom/ipq6010-wax610-base.dtsi | 206 ++++++++++++++++++ .../arm64/boot/dts/qcom/ipq6010-wax610.dts | 14 ++ .../arm64/boot/dts/qcom/ipq6010-wax610y.dts | 14 ++ target/linux/qualcommax/image/ipq60xx.mk | 36 +++ .../ipq60xx/base-files/etc/board.d/02_network | 2 + .../etc/hotplug.d/firmware/11-ath11k-caldata | 8 + .../ipq60xx/base-files/etc/init.d/bootcount | 4 + .../base-files/lib/upgrade/platform.sh | 2 + 10 files changed, 296 insertions(+), 4 deletions(-) create mode 100644 target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6010-wax610-base.dtsi create mode 100644 target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6010-wax610.dts create mode 100644 target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6010-wax610y.dts diff --git a/package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq60xx b/package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq60xx index ba6d9ff1fa..02926424ab 100644 --- a/package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq60xx +++ b/package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq60xx @@ -26,6 +26,8 @@ linksys,mr7500) ubootenv_add_mtd "u_env" "0x0" "0x40000" "0x20000" ;; netgear,wax214|\ +netgear,wax610|\ +netgear,wax610y|\ tplink,eap610-outdoor) ubootenv_add_mtd "0:appsblenv" "0x0" "0x40000" "0x20000" ;; diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index 107f5ffed2..31f2364b06 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -6,9 +6,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware/qca-wireless.git -PKG_SOURCE_DATE:=2025-02-17 -PKG_SOURCE_VERSION:=dd3577ec9f2d9d3ef5e35602d3fe731cb259ff39 -PKG_MIRROR_HASH:=0da921982b33a831dd19e570974a22ad2b1f3324397b1203a8a38d7d044b073a +PKG_SOURCE_DATE:=2025-04-01 +PKG_SOURCE_VERSION:=c220fac7fdb35628ba53ff53ed36cf883a401161 +PKG_MIRROR_HASH:=26338b4f165eb2e90273cd61ed26715b99e496ccf738167e22ff9213ca42c973 PKG_FLAGS:=nonshared include $(INCLUDE_DIR)/package.mk @@ -56,6 +56,8 @@ ALLWIFIBOARDS:= \ netgear_sxk80 \ netgear_wax214 \ netgear_wax218 \ + netgear_wax610 \ + netgear_wax610y \ netgear_wax620 \ netgear_wax630 \ prpl_haze \ @@ -171,7 +173,7 @@ endef # 2. Add $(eval $(call generate-ipq-wifi-package,,)) # # Board files should follow this name structure: -# board-. +# board-. $(eval $(call generate-ipq-wifi-package,8devices_mango,8devices Mango)) $(eval $(call generate-ipq-wifi-package,aliyun_ap8220,Aliyun AP8220)) @@ -202,6 +204,8 @@ $(eval $(call generate-ipq-wifi-package,netgear_rax120v2,Netgear RAX120v2)) $(eval $(call generate-ipq-wifi-package,netgear_sxk80,Netgear SXK80)) $(eval $(call generate-ipq-wifi-package,netgear_wax214,Netgear WAX214)) $(eval $(call generate-ipq-wifi-package,netgear_wax218,Netgear WAX218)) +$(eval $(call generate-ipq-wifi-package,netgear_wax610,Netgear WAX610)) +$(eval $(call generate-ipq-wifi-package,netgear_wax610y,Netgear WAX610Y)) $(eval $(call generate-ipq-wifi-package,netgear_wax620,Netgear WAX620)) $(eval $(call generate-ipq-wifi-package,netgear_wax630,Netgear WAX630)) $(eval $(call generate-ipq-wifi-package,qihoo_360v6,Qihoo 360V6)) diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6010-wax610-base.dtsi b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6010-wax610-base.dtsi new file mode 100644 index 0000000000..4dcaa6e126 --- /dev/null +++ b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6010-wax610-base.dtsi @@ -0,0 +1,206 @@ +#include "ipq6018.dtsi" +#include "ipq6018-cp-cpu.dtsi" +#include "ipq6018-ess.dtsi" +#include +#include +#include + +/ { + aliases { + serial0 = &blsp1_uart3; + ethernet0 = &dp5; + label-mac-device = &dp5; + + led-boot = &led_system_blue; + led-failsafe = &led_system_orange; + led-running = &led_system_green; + led-upgrade = &led_system_blue; + }; + + chosen { + stdout-path = "serial0:115200n8"; + /* + * Netgear's U-Boot adds "ubi.mtd=rootfs root=mtd:ubi_rootfs" + * That fails to create a UBI block device, so add it here. + */ + bootargs-append = " root=/dev/ubiblock0_1"; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&tlmm 9 GPIO_ACTIVE_LOW>; + linux,code = ; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_system_orange: system-orange { + color = ; + function = LED_FUNCTION_POWER; + function-enumerator = <0>; + gpios = <&tlmm 25 GPIO_ACTIVE_HIGH>; + }; + + led_system_green: system-green { + color = ; + function = LED_FUNCTION_POWER; + function-enumerator = <1>; + gpios = <&tlmm 24 GPIO_ACTIVE_HIGH>; + }; + + led_system_blue: system-blue { + color = ; + function = LED_FUNCTION_POWER; + function-enumerator = <2>; + gpios = <&tlmm 29 GPIO_ACTIVE_HIGH>; + }; + + led_lan_g { + color = ; + function = LED_FUNCTION_LAN; + function-enumerator = <0>; + gpios = <&tlmm 30 GPIO_ACTIVE_HIGH>; + }; + + led_lan_o { + color = ; + function = LED_FUNCTION_LAN; + function-enumerator = <1>; + gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>; + }; + + led_2g_b { + color = ; + function = LED_FUNCTION_WLAN; + function-enumerator = <0>; + gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>; + }; + + led_2g_g { + color = ; + function = LED_FUNCTION_WLAN; + function-enumerator = <1>; + gpios = <&tlmm 33 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "phy0radio"; + }; + + led_5g_b { + color = ; + function = LED_FUNCTION_WLAN; + function-enumerator = <2>; + gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>; + }; + + led_5g_g { + color = ; + function = LED_FUNCTION_WLAN; + function-enumerator = <3>; + gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "phy1radio"; + }; + }; +}; + +&edma { + status = "okay"; +}; + +&switch { + status = "okay"; + + switch_lan_bmp = ; + switch_mac_mode1 = ; + + qcom,port_phyinfo { + port@5 { + port_id = <5>; + phy_address = <24>; + port_mac_sel = "QGMAC_PORT"; + }; + }; +}; + +&tlmm { + mdio_pins: mdio-pins { + mdc { + pins = "gpio64"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + + mdio { + pins = "gpio65"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + }; +}; + +&mdio { + status = "okay"; + + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 77 GPIO_ACTIVE_LOW>; + + qca8081_24: ethernet-phy@24 { + reg = <24>; + }; +}; + +&dp5 { + status = "okay"; + phy-handle = <&qca8081_24>; + label = "lan"; +}; + +&blsp1_uart3 { + pinctrl-0 = <&serial_3_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&prng { + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&crypto { + status = "okay"; +}; + +&qpic_bam { + status = "okay"; +}; + +&qpic_nand { + status = "okay"; + + nand@0 { + reg = <0>; + nand-ecc-strength = <4>; + nand-ecc-step-size = <512>; + nand-bus-width = <8>; + + partitions { + compatible = "qcom,smem-part"; + }; + }; +}; + +&wifi { + status = "okay"; + + qcom,m3-dump-addr = <0x50100000>; +}; diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6010-wax610.dts b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6010-wax610.dts new file mode 100644 index 0000000000..f8530b38e7 --- /dev/null +++ b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6010-wax610.dts @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: (GPL-2.0+) + +/dts-v1/; + +#include "ipq6010-wax610-base.dtsi" + +/ { + model = "Netgear WAX610"; + compatible = "netgear,wax610", "qcom,ipq6018"; +}; + +&wifi { + qcom,ath11k-calibration-variant = "Netgear-WAX610"; +}; diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6010-wax610y.dts b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6010-wax610y.dts new file mode 100644 index 0000000000..79d1ae403d --- /dev/null +++ b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6010-wax610y.dts @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: (GPL-2.0+) + +/dts-v1/; + +#include "ipq6010-wax610-base.dtsi" + +/ { + model = "Netgear WAX610Y"; + compatible = "netgear,wax610y", "qcom,ipq6018"; +}; + +&wifi { + qcom,ath11k-calibration-variant = "Netgear-WAX610Y"; +}; diff --git a/target/linux/qualcommax/image/ipq60xx.mk b/target/linux/qualcommax/image/ipq60xx.mk index 41e06c5384..8c77890966 100644 --- a/target/linux/qualcommax/image/ipq60xx.mk +++ b/target/linux/qualcommax/image/ipq60xx.mk @@ -1,5 +1,15 @@ DEVICE_VARS += TPLINK_SUPPORT_STRING +define Build/wax610-netgear-tar + mkdir $@.tmp + mv $@ $@.tmp/nand-ipq6018-apps.img + md5sum $@.tmp/nand-ipq6018-apps.img | cut -c 1-32 > $@.tmp/nand-ipq6018-apps.md5sum + echo "WAX610" > $@.tmp/metadata.txt + echo "WAX610-610Y_V99.9.9.9" > $@.tmp/version + tar -C $@.tmp/ -cf $@ . + rm -rf $@.tmp +endef + define Device/8devices_mango-dvk $(call Device/FitImageLzma) DEVICE_VENDOR := 8devices @@ -100,6 +110,32 @@ define Device/netgear_wax214 endef TARGET_DEVICES += netgear_wax214 +define Device/netgear_wax610-common + $(call Device/FitImage) + DEVICE_VENDOR := Netgear + BLOCKSIZE := 128k + PAGESIZE := 2048 + DEVICE_DTS_CONFIG := config@cp03-c1 + SOC := ipq6010 + KERNEL_IN_UBI := 1 + IMAGES += ui-factory.tar + IMAGE/ui-factory.tar := append-ubi | qsdk-ipq-factory-nand | pad-to 4096 | wax610-netgear-tar +endef + +define Device/netgear_wax610 + $(Device/netgear_wax610-common) + DEVICE_MODEL := WAX610 + DEVICE_PACKAGES := ipq-wifi-netgear_wax610 +endef +TARGET_DEVICES += netgear_wax610 + +define Device/netgear_wax610y + $(Device/netgear_wax610-common) + DEVICE_MODEL := WAX610Y + DEVICE_PACKAGES := ipq-wifi-netgear_wax610y +endef +TARGET_DEVICES += netgear_wax610y + define Device/qihoo_360v6 $(call Device/FitImage) $(call Device/UbiFit) diff --git a/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network b/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network index e45bc32fb4..f907a29ae0 100644 --- a/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network +++ b/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network @@ -30,6 +30,8 @@ ipq60xx_setup_interfaces() qihoo,360v6) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan" ;; + netgear,wax610|\ + netgear,wax610y|\ tplink,eap610-outdoor) ucidef_set_interface_lan "lan" "dhcp" ;; diff --git a/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata b/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata index 0d240cd4f7..ef8afd6bd4 100644 --- a/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata +++ b/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata @@ -35,6 +35,14 @@ case "$FIRMWARE" in netgear,wax214) caldata_extract "0:art" 0x1000 0x10000 ;; + netgear,wax610|\ + netgear,wax610y) + caldata_extract "0:art" 0x1000 0x10000 + label_mac=$(get_mac_label) + ath11k_patch_mac $(macaddr_add $label_mac -30) 1 + ath11k_patch_mac $(macaddr_add $label_mac 2) 0 + ath11k_set_macflag + ;; qihoo,360v6) caldata_extract "0:art" 0x1000 0x10000 label_mac=$(mtd_get_mac_ascii factory lanMac) diff --git a/target/linux/qualcommax/ipq60xx/base-files/etc/init.d/bootcount b/target/linux/qualcommax/ipq60xx/base-files/etc/init.d/bootcount index d2039eb054..5490e65380 100755 --- a/target/linux/qualcommax/ipq60xx/base-files/etc/init.d/bootcount +++ b/target/linux/qualcommax/ipq60xx/base-files/etc/init.d/bootcount @@ -11,5 +11,9 @@ boot() { yuncore,fap650) fw_setenv owrt_bootcount 0 ;; + netgear,wax610|\ + netgear,wax610y) + fw_setenv boot_count 0 + ;; esac } diff --git a/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh b/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh index 59e5ef7ca2..bc3603682d 100644 --- a/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh @@ -113,6 +113,8 @@ platform_do_upgrade() { glinet,gl-ax1800|\ glinet,gl-axt1800|\ netgear,wax214|\ + netgear,wax610|\ + netgear,wax610y|\ qihoo,360v6) nand_do_upgrade "$1" ;; From 4724331d7037e61527e7da7253cdaa4a90b1d302 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Fri, 4 Apr 2025 11:55:08 +0200 Subject: [PATCH 4/5] at91: put u-boot images into image staging directory Currently, building at91 subtargets via image builder will fail as the required built u-boot is not present in the image builder at all since its presumed to be in the binary directory which obviously does not exist yet. So, lets install the u-boot binary into image staging directory and use that instead. Link: https://github.com/openwrt/openwrt/pull/18414 Signed-off-by: Robert Marko --- package/boot/uboot-at91/Makefile | 5 +++++ target/linux/at91/image/sam9x.mk | 2 +- target/linux/at91/image/sama5.mk | 2 +- target/linux/at91/image/sama7.mk | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/package/boot/uboot-at91/Makefile b/package/boot/uboot-at91/Makefile index 81ea22ded6..67c9d8f365 100644 --- a/package/boot/uboot-at91/Makefile +++ b/package/boot/uboot-at91/Makefile @@ -179,4 +179,9 @@ define Build/Compile $(UBOOT_MAKE_FLAGS) endef +define Build/InstallDev + $(INSTALL_DIR) $(STAGING_DIR_IMAGE) + $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-$(UBOOT_IMAGE) +endef + $(eval $(call BuildPackage/U-Boot)) diff --git a/target/linux/at91/image/sam9x.mk b/target/linux/at91/image/sam9x.mk index d0722c5d30..009a41b303 100644 --- a/target/linux/at91/image/sam9x.mk +++ b/target/linux/at91/image/sam9x.mk @@ -16,7 +16,7 @@ define Build/at91-sdcard ::$(DEVICE_NAME)-fit.itb mcopy -i $@.boot \ - $(BIN_DIR)/u-boot-$(if $(findstring sam9x60,$@),$(DEVICE_DTS:at91-%=%),at91sam9x5ek)_mmc/u-boot.bin \ + $(STAGING_DIR_IMAGE)/$(if $(findstring sam9x60,$@),$(DEVICE_DTS:at91-%=%),at91sam9x5ek)_mmc-u-boot.bin \ ::u-boot.bin mcopy -i $@.boot \ diff --git a/target/linux/at91/image/sama5.mk b/target/linux/at91/image/sama5.mk index 7f4dd3316a..036cac4de9 100644 --- a/target/linux/at91/image/sama5.mk +++ b/target/linux/at91/image/sama5.mk @@ -16,7 +16,7 @@ define Build/at91-sdcard ::$(DEVICE_NAME)-fit.itb mcopy -i $@.boot \ - $(BIN_DIR)/u-boot-$(DEVICE_DTS:at91-%=%)_mmc/u-boot.bin \ + $(STAGING_DIR_IMAGE)/$(DEVICE_DTS:at91-%=%)_mmc-u-boot.bin \ ::u-boot.bin $(if $(findstring sama5d4-xplained,$@), \ diff --git a/target/linux/at91/image/sama7.mk b/target/linux/at91/image/sama7.mk index 8d6f67d80e..29043050ed 100644 --- a/target/linux/at91/image/sama7.mk +++ b/target/linux/at91/image/sama7.mk @@ -16,7 +16,7 @@ define Build/at91-sdcard ::$(DEVICE_NAME)-fit.itb mcopy -i $@.boot \ - $(BIN_DIR)/u-boot-$(DEVICE_DTS:at91-%=%)_mmc1/u-boot.bin \ + $(STAGING_DIR_IMAGE)/$(DEVICE_DTS:at91-%=%)_mmc1-u-boot.bin \ ::u-boot.bin mcopy -i $@.boot \ From a947be41b721a7c521d23981adaf06ebd1ef5dfe Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Fri, 4 Apr 2025 12:25:21 +0200 Subject: [PATCH 5/5] at91bootstrap: put at91bootstrap images into image staging directory Currently, building at91 subtargets via image builder will fail as the required built at91bootstrap is not present in the image builder at all since its presumed to be in the binary directory which obviously does not exist yet. So, lets install the at91bootstrap binary into image staging directory and use that instead Link: https://github.com/openwrt/openwrt/pull/18414 Signed-off-by: Robert Marko --- package/boot/at91bootstrap/Makefile | 5 +++++ target/linux/at91/image/sam9x.mk | 2 +- target/linux/at91/image/sama5.mk | 4 ++-- target/linux/at91/image/sama7.mk | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/package/boot/at91bootstrap/Makefile b/package/boot/at91bootstrap/Makefile index 456f9fa5ff..12b747c38d 100644 --- a/package/boot/at91bootstrap/Makefile +++ b/package/boot/at91bootstrap/Makefile @@ -201,4 +201,9 @@ define Build/Compile CROSS_COMPILE=$(TARGET_CROSS) endef +define Build/InstallDev + $(INSTALL_DIR) $(STAGING_DIR_IMAGE) + $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(BINARIES_DIR)/at91bootstrap.bin $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-at91bootstrap.bin +endef + $(eval $(call BuildPackage/AT91Bootstrap)) diff --git a/target/linux/at91/image/sam9x.mk b/target/linux/at91/image/sam9x.mk index 009a41b303..6f2ba19d9f 100644 --- a/target/linux/at91/image/sam9x.mk +++ b/target/linux/at91/image/sam9x.mk @@ -20,7 +20,7 @@ define Build/at91-sdcard ::u-boot.bin mcopy -i $@.boot \ - $(BIN_DIR)/at91bootstrap-$(if $(findstring sam9x60,$@),$(DEVICE_DTS:at91-%=%),at91sam9x5ek)sd_uboot/at91bootstrap.bin \ + $(STAGING_DIR_IMAGE)/$(if $(findstring sam9x60,$@),$(DEVICE_DTS:at91-%=%),at91sam9x5ek)sd_uboot-at91bootstrap.bin \ ::BOOT.bin $(CP) uboot-env.txt $@-uboot-env.txt diff --git a/target/linux/at91/image/sama5.mk b/target/linux/at91/image/sama5.mk index 036cac4de9..268af5999c 100644 --- a/target/linux/at91/image/sama5.mk +++ b/target/linux/at91/image/sama5.mk @@ -21,10 +21,10 @@ define Build/at91-sdcard $(if $(findstring sama5d4-xplained,$@), \ mcopy -i $@.boot \ - $(BIN_DIR)/at91bootstrap-$(DEVICE_DTS:at91-%=%)sd_uboot_secure/at91bootstrap.bin \ + $(STAGING_DIR_IMAGE)/$(DEVICE_DTS:at91-%=%)sd_uboot_secure-at91bootstrap.bin \ ::BOOT.bin, mcopy -i $@.boot \ - $(BIN_DIR)/at91bootstrap-$(DEVICE_DTS:at91-%=%)sd_uboot/at91bootstrap.bin \ + $(STAGING_DIR_IMAGE)/$(DEVICE_DTS:at91-%=%)sd_uboot-at91bootstrap.bin \ ::BOOT.bin) $(CP) uboot-env.txt $@-uboot-env.txt diff --git a/target/linux/at91/image/sama7.mk b/target/linux/at91/image/sama7.mk index 29043050ed..924d950e22 100644 --- a/target/linux/at91/image/sama7.mk +++ b/target/linux/at91/image/sama7.mk @@ -20,7 +20,7 @@ define Build/at91-sdcard ::u-boot.bin mcopy -i $@.boot \ - $(BIN_DIR)/at91bootstrap-$(DEVICE_DTS:at91-%=%)sd_uboot/at91bootstrap.bin \ + $(STAGING_DIR_IMAGE)/$(DEVICE_DTS:at91-%=%)sd_uboot-at91bootstrap.bin \ ::BOOT.bin $(CP) uboot-env.txt $@-uboot-env.txt