From 0f5c28b96b4e04332b6e9f31280c57b03c672cfd Mon Sep 17 00:00:00 2001 From: Andrew Smith Date: Mon, 21 Aug 2023 09:48:45 +0100 Subject: [PATCH] qualcommax: ipq807x support Netgear Orbi Pro SXK80 This commit adds support for Netgear Orbi Pro SXR80 and SXS80 (collectively known as SXK80) Specifications: --------------- * CPU: Qualcomm IPQ8074A Quad core Cortex-A53 * RAM: 1024MB * Storage: SPI-NAND 512 MiB (Winbond W29N04GZ) * Ethernet: 4x 1G RJ45 ports (QCA8075) 1x 2.5G RJ45 LAN/WAN (QCA8081) * WLAN: - 2.4 GHz: Qualcomm QCN5024 4x4 - 2x 5 GHz: Qualcomm QCN5054 4x4 (second radio high channels only) * LEDs: - Power: (Green and red) - Front: (Blue, green, red and white) * Buttons: - 1x Soft reset - 1x Sync/WPS * Power: 12V DC Jack Installation instructions (Telnet): ----------------------------------- *Note, this guide assumes SXR80, for SXS80 change the firmware file name as appropriate 1. Put firmware file openwrt-qualcommax-ipq807x-netgear_sxr80-initramfs-uImage.itb in root of TFTP server available at 192.168.1.10. 2. Enable telnet by going to http://[ip of device]/debug.htm and clicking on the tickbox 'Enable telnet' 3. Telnet into the device and login using the same username and password as the web interface: 4. Run the following command: `fw_setenv bootcmd 'env default -a; saveenv; reset'` 5. Reboot the router, once the web interface is available again re-enable telnet via http://[ip of device]/debug.htm and telnet into the device. 6. Run the following command: `fw_printenv` It should look similar to the below: ``` baudrate=115200 bootargs=console=ttyMSM0,115200n8 bootcmd=mii write 0x0 0x0 0x800; sleep 1; nmrp; bootdni; boot_DNI_secureboot bootdelay=2 ipaddr=192.168.1.1 netmask=255.255.255.0 serverip=192.168.1.10 soc_version_major=2 soc_version_minor=0 ``` **If you see the message:** `Warning: Bad CRC, using default environment` **DO NOT CONTINUE, YOU WILL BRICK YOUR DEVICE** 7. Run the following command: `fw_setenv originalboot 'mii write 0x0 0x0 0x800; sleep 1; nmrp; bootdni; boot_DNI_secureboot'` (This should match what's in the bootcmd variable displayed in step 6) 8. Run the following commands: ``` fw_setenv wrttftp 'mii write 0x0 0x0 0x800; sleep 1; nmrp; if tftpboot openwrt-qualcommax-ipq807x-netgear_sxr80-initramfs-uImage.itb; then bootm; fi; bootdni; boot_DNI_secureboot' fw_setenv wrtboot 'mii write 0x0 0x0 0x800; sleep 1; nmrp; nand read 0x40000000 0x1980000 0x06d00000; bootm 0x40000000' fw_setenv bootcmd 'run wrttftp' ``` 9. Ensure SXR/S device is attached via ethernet (LAN port) to the same ethernet segment as the TFTP server. 10. Reboot the device, it should reboot into OpenWrt and be available on 192.168.1.1 11. Once OpenWrt has booted, update the bootcmd using the following command: `fw_setenv bootcmd 'run wrtboot'` 12. Flash the sysupgrade image 13. It should boot into OpenWrt References to SXK80 GPL source: https://www.downloads.netgear.com/files/GPL/SXK80-V3.2.0.108_gpl_src.tar.bz2.zip Signed-off-by: Flole Systems Signed-off-by: Andrew Smith Link: https://github.com/openwrt/openwrt/pull/14939 Signed-off-by: Robert Marko --- .../uboot-envtools/files/qualcommax_ipq807x | 6 + package/firmware/ipq-wifi/Makefile | 2 + target/linux/qualcommax/config-6.6 | 2 + .../arm64/boot/dts/qcom/ipq8074-sxk80.dtsi | 541 ++++++++++++++++++ .../arm64/boot/dts/qcom/ipq8074-sxr80.dts | 11 + .../arm64/boot/dts/qcom/ipq8074-sxs80.dts | 11 + target/linux/qualcommax/image/ipq807x.mk | 27 + .../ipq807x/base-files/etc/board.d/02_network | 4 + .../etc/hotplug.d/firmware/11-ath11k-caldata | 2 + .../etc/hotplug.d/ieee80211/11_fix_wifi_mac | 7 + .../base-files/lib/upgrade/platform.sh | 2 + 11 files changed, 615 insertions(+) create mode 100644 target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq8074-sxk80.dtsi create mode 100644 target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq8074-sxr80.dts create mode 100644 target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq8074-sxs80.dts diff --git a/package/boot/uboot-envtools/files/qualcommax_ipq807x b/package/boot/uboot-envtools/files/qualcommax_ipq807x index 060871396b4e..4ae0de4e26be 100644 --- a/package/boot/uboot-envtools/files/qualcommax_ipq807x +++ b/package/boot/uboot-envtools/files/qualcommax_ipq807x @@ -37,6 +37,12 @@ linksys,mx8500) [ -n "$idx" ] && \ ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x40000" "0x20000" "2" ;; +netgear,sxr80|\ +netgear,sxs80) + idx="$(find_mtd_index 0:appsblenv)" + [ -n "$idx" ] && \ + ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x40000" "0x20000" + ;; redmi,ax6|\ xiaomi,ax3600|\ xiaomi,ax9000) diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index 2ffd2e014c7f..fc578115f34c 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -40,6 +40,7 @@ ALLWIFIBOARDS:= \ linksys_mx8500 \ netgear_lbr20 \ netgear_rax120v2 \ + netgear_sxk80 \ netgear_wax214 \ netgear_wax218 \ netgear_wax620 \ @@ -161,6 +162,7 @@ $(eval $(call generate-ipq-wifi-package,linksys_mx5300,Linksys MX5300)) $(eval $(call generate-ipq-wifi-package,linksys_mx8500,Linksys MX8500)) $(eval $(call generate-ipq-wifi-package,netgear_lbr20,Netgear LBR20)) $(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_wax620,Netgear WAX620)) diff --git a/target/linux/qualcommax/config-6.6 b/target/linux/qualcommax/config-6.6 index 71b54041c50e..1d05868cafd2 100644 --- a/target/linux/qualcommax/config-6.6 +++ b/target/linux/qualcommax/config-6.6 @@ -216,6 +216,7 @@ CONFIG_IRQ_FASTEOI_HIERARCHY_HANDLERS=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_IRQ_WORK=y # CONFIG_KPSS_XCC is not set +CONFIG_LEDS_TLC591XX=y CONFIG_LIBFDT=y CONFIG_LOCK_DEBUGGING_SUPPORT=y CONFIG_LOCK_SPIN_ON_OWNER=y @@ -441,6 +442,7 @@ CONFIG_RANDSTRUCT_NONE=y CONFIG_RAS=y CONFIG_RATIONAL=y CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y CONFIG_REGMAP_MMIO=y CONFIG_REGULATOR=y # CONFIG_REGULATOR_CPR3 is not set diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq8074-sxk80.dtsi b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq8074-sxk80.dtsi new file mode 100644 index 000000000000..7f8b81374911 --- /dev/null +++ b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq8074-sxk80.dtsi @@ -0,0 +1,541 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (c) 2021, Flole + * Copyright (c) 2023, Andrew Smith + */ + +/dts-v1/; + +#include "ipq8074.dtsi" +#include "ipq8074-ess.dtsi" +#include "ipq8074-hk-cpu.dtsi" +#include +#include +#include + +/ { + aliases { + serial0 = &blsp1_uart5; + led-boot = &led_front_blue; + led-failsafe = &led_front_red; + led-running = &led_front_green; + led-upgrade = &led_front_white; + label-mac-device = &dp2; + }; + + chosen { + stdout-path = "serial0:115200n8"; + bootargs-append = " ubi.mtd=rootfs root=/dev/ubiblock0_0"; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&tlmm 54 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + wps { + label = "wps"; + gpios = <&tlmm 57 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_front_blue: front-blue { + function = LED_FUNCTION_STATUS; + gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; + color = ; + }; + + led_front_green: front-green { + function = LED_FUNCTION_STATUS; + gpios = <&tlmm 29 GPIO_ACTIVE_LOW>; + color = ; + }; + + led_front_red: front-red { + function = LED_FUNCTION_STATUS; + gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; + color = ; + }; + + led_front_white: front-white { + function = LED_FUNCTION_STATUS; + gpios = <&tlmm 26 GPIO_ACTIVE_LOW>; + color = ; + }; + + led_power_green: power-green { + function = LED_FUNCTION_POWER; + gpios = <&tlmm 21 GPIO_ACTIVE_LOW>; + color = ; + default-state = "on"; + }; + + led_power_red: power-red { + function = LED_FUNCTION_POWER; + gpios = <&tlmm 22 GPIO_ACTIVE_LOW>; + color = ; + panic-indicator; + }; + }; +}; + +&tlmm { + mdio_pins: mdio-pins { + mdc { + pins = "gpio68"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + + mdio { + pins = "gpio69"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + leds_pins: leds_pinmux { + led_power_green { + pins = "gpio21"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_power_red { + pins = "gpio22"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_white { + pins = "gpio26"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_green { + pins = "gpio29"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_red { + pins = "gpio31"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_blue { + pins = "gpio33"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; +}; + +&blsp1_uart5 { + status = "okay"; +}; + +&blsp1_i2c2 { + pinctrl-0 = <&i2c_0_pins>; + pinctrl-names = "default"; + + status = "okay"; + + tlc59208f@27 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "ti,tlc59108"; + reg = <0x27>; + + led@0 { + label = "rgb:led0"; + reg = <0>; + linux,default-trigger = "default-off"; + }; + + led@1 { + label = "rgb:led1"; + reg = <1>; + linux,default-trigger = "default-off"; + }; + + led@2 { + label = "rgb:led2"; + reg = <2>; + linux,default-trigger = "default-off"; + }; + + led@3 { + label = "rgb:led3"; + reg = <3>; + linux,default-trigger = "default-off"; + }; + }; +}; + +&prng { + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&crypto { + status = "okay"; +}; + +&qpic_bam { + status = "okay"; +}; + +&qpic_nand { + status = "okay"; + + /* + * Bootloader will find the NAND DT node by the compatible and + * then "fixup" it by adding the partitions from the SMEM table + * using the legacy bindings thus making it impossible for us + * to change the partition table or utilize NVMEM for calibration. + * So add a dummy partitions node that bootloader will populate + * and set it as disabled so the kernel ignores it instead of + * printing warnings due to the broken way bootloader adds the + * partitions. + */ + partitions { + status = "disabled"; + }; + + nand@0 { + reg = <0>; + nand-ecc-strength = <4>; + nand-ecc-step-size = <512>; + nand-bus-width = <8>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "0:sbl1"; + reg = <0x00 0x100000>; + read-only; + }; + + partition@100000 { + label = "0:mibib"; + reg = <0x100000 0x100000>; + read-only; + }; + + partition@200000 { + label = "0:bootconfig"; + reg = <0x200000 0x80000>; + read-only; + }; + + partition@280000 { + label = "0:bootconfig_1"; + reg = <0x280000 0x80000>; + read-only; + }; + + partition@300000 { + label = "0:qsee"; + reg = <0x300000 0x300000>; + read-only; + }; + + partition@600000 { + label = "0:qsee_1"; + reg = <0x600000 0x300000>; + read-only; + }; + + partition@900000 { + label = "0:devcfg"; + reg = <0x900000 0x80000>; + read-only; + }; + + partition@980000 { + label = "0:devcfg_1"; + reg = <0x980000 0x80000>; + read-only; + }; + + partition@a00000 { + label = "0:apdp"; + reg = <0xa00000 0x80000>; + read-only; + }; + + partition@a80000 { + label = "0:apdp_1"; + reg = <0xa80000 0x80000>; + read-only; + }; + + partition@b00000 { + label = "0:rpm"; + reg = <0xb00000 0x80000>; + read-only; + }; + + partition@b80000 { + label = "0:rpm_1"; + reg = <0xb80000 0x80000>; + read-only; + }; + + partition@c00000 { + label = "0:cdt"; + reg = <0xc00000 0x80000>; + read-only; + }; + + partition@c80000 { + label = "0:cdt_1"; + reg = <0xc80000 0x80000>; + read-only; + }; + + partition@d00000 { + label = "0:appsblenv"; + reg = <0xd00000 0x80000>; + }; + + partition@d80000 { + label = "0:appsbl"; + reg = <0xd80000 0x100000>; + read-only; + }; + + partition@e80000 { + label = "0:appsbl_1"; + reg = <0xe80000 0x100000>; + read-only; + }; + + partition@f80000 { + label = "0:art"; + reg = <0xf80000 0x80000>; + read-only; + }; + + partition@1000000 { + label = "0:art.bak"; + reg = <0x1000000 0x80000>; + read-only; + }; + + partition@1080000 { + label = "config"; + reg = <0x1080000 0x100000>; + }; + + partition@1180000 { + label = "boarddata1"; + reg = <0x1180000 0x100000>; + + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_boarddata1_0: macaddr@0 { + reg = <0x0 0x6>; + }; + + macaddr_boarddata1_6: macaddr@6 { + reg = <0x6 0x6>; + }; + }; + }; + + partition@1280000 { + label = "boarddata2"; + reg = <0x1280000 0x100000>; + }; + + partition@1380000 { + label = "pot"; + reg = <0x1380000 0x100000>; + read-only; + }; + + partition@1480000 { + label = "dnidata"; + reg = <0x1480000 0x500000>; + read-only; + }; + + partition@1980000 { + label = "kernel"; + reg = <0x1980000 0x620000>; + }; + + partition@1fa0000 { + label = "rootfs"; + reg = <0x1fa0000 0x66e0000>; + }; + + partition@8680000 { + label = "kernel2"; + reg = <0x8680000 0x620000>; + read-only; + }; + + partition@8ca0000 { + label = "rootfs2"; + reg = <0x8ca0000 0x66e0000>; + read-only; + }; + }; + }; +}; + +&mdio { + status = "okay"; + + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>; + + ethernet-phy-package@0 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0>; + + compatible = "qcom,qca8075-package"; + + qca8075_1: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + }; + + qca8075_2: ethernet-phy@2 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <2>; + }; + + qca8075_3: ethernet-phy@3 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <3>; + }; + + qca8075_4: ethernet-phy@4 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <4>; + }; + }; + + qca8081_28: ethernet-phy@28 { + compatible = "ethernet-phy-id004d.d101"; + reg = <28>; + reset-deassert-us = <10000>; + reset-gpios = <&tlmm 25 GPIO_ACTIVE_LOW>; + }; +}; + +&switch { + status = "okay"; + + switch_lan_bmp = <(ESS_PORT2 | ESS_PORT3 | ESS_PORT4 | ESS_PORT5)>; /* lan port bitmap */ + switch_wan_bmp = ; /* wan port bitmap */ + switch_mac_mode = ; /* mac mode for uniphy instance0*/ + switch_mac_mode2 = ; /* mac mode for uniphy instance2*/ + + qcom,port_phyinfo { + port@2 { + port_id = <2>; + phy_address = <1>; + }; + port@3 { + port_id = <3>; + phy_address = <2>; + }; + port@4 { + port_id = <4>; + phy_address = <3>; + }; + port@5 { + port_id = <5>; + phy_address = <4>; + }; + port@6 { + port_id = <6>; + phy_address = <28>; + port_mac_sel = "QGMAC_PORT"; + }; + }; +}; + +&edma { + status = "okay"; +}; + +&dp2 { + status = "okay"; + phy-handle = <&qca8075_1>; + label = "lan2"; + nvmem-cells = <&macaddr_boarddata1_0>; + nvmem-cell-names = "mac-address"; +}; + +&dp3 { + status = "okay"; + phy-handle = <&qca8075_2>; + label = "lan3"; + nvmem-cells = <&macaddr_boarddata1_0>; + nvmem-cell-names = "mac-address"; +}; + +&dp4 { + status = "okay"; + phy-handle = <&qca8075_3>; + label = "lan4"; + nvmem-cells = <&macaddr_boarddata1_0>; + nvmem-cell-names = "mac-address"; +}; + +&dp5 { + status = "okay"; + phy-handle = <&qca8075_4>; + label = "lan5"; + nvmem-cells = <&macaddr_boarddata1_0>; + nvmem-cell-names = "mac-address"; +}; + +&dp6 { + status = "okay"; + phy-handle = <&qca8081_28>; + label = "wan"; + nvmem-cells = <&macaddr_boarddata1_6>; + nvmem-cell-names = "mac-address"; +}; + +&wifi { + status = "okay"; + + qcom,ath11k-calibration-variant = "Netgear-SXK80"; +}; diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq8074-sxr80.dts b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq8074-sxr80.dts new file mode 100644 index 000000000000..d90e75da30b0 --- /dev/null +++ b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq8074-sxr80.dts @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2021, Flole */ + +/dts-v1/; + +#include "ipq8074-sxk80.dtsi" + +/ { + model = "Netgear SXR80"; + compatible = "netgear,sxr80", "qcom,ipq8074"; +}; diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq8074-sxs80.dts b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq8074-sxs80.dts new file mode 100644 index 000000000000..0d7240cf07ae --- /dev/null +++ b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq8074-sxs80.dts @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2021, Flole */ + +/dts-v1/; + +#include "ipq8074-sxk80.dtsi" + +/ { + model = "Netgear SXS80"; + compatible = "netgear,sxs80", "qcom,ipq8074"; +}; diff --git a/target/linux/qualcommax/image/ipq807x.mk b/target/linux/qualcommax/image/ipq807x.mk index 007c73555e22..b305c9dbaaa2 100644 --- a/target/linux/qualcommax/image/ipq807x.mk +++ b/target/linux/qualcommax/image/ipq807x.mk @@ -172,6 +172,33 @@ define Device/netgear_rax120v2 endef TARGET_DEVICES += netgear_rax120v2 +define Device/netgear_sxk80 + $(call Device/FitImage) + $(call Device/UbiFit) + DEVICE_PACKAGES += ipq-wifi-netgear_sxk80 + DEVICE_VENDOR := Netgear + BLOCKSIZE := 128k + PAGESIZE := 2048 + DEVICE_DTS_CONFIG := config@hk01 + SOC := ipq8074 + KERNEL_SIZE := 6272k + NETGEAR_HW_ID := 29766265+0+512+1024+4x4+4x4+4x4 +endef + +define Device/netgear_sxr80 + $(call Device/netgear_sxk80) + DEVICE_MODEL := SXR80 + NETGEAR_BOARD_ID := SXR80 +endef +TARGET_DEVICES += netgear_sxr80 + +define Device/netgear_sxs80 + $(call Device/netgear_sxk80) + DEVICE_MODEL := SXS80 + NETGEAR_BOARD_ID := SXS80 +endef +TARGET_DEVICES += netgear_sxs80 + define Device/netgear_wax218 $(call Device/FitImage) $(call Device/UbiFit) diff --git a/target/linux/qualcommax/ipq807x/base-files/etc/board.d/02_network b/target/linux/qualcommax/ipq807x/base-files/etc/board.d/02_network index 380588bbab14..0bf224f380e8 100644 --- a/target/linux/qualcommax/ipq807x/base-files/etc/board.d/02_network +++ b/target/linux/qualcommax/ipq807x/base-files/etc/board.d/02_network @@ -43,6 +43,10 @@ ipq807x_setup_interfaces() netgear,rax120v2) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 lan5" "wan" ;; + netgear,sxr80|\ + netgear,sxs80) + ucidef_set_interfaces_lan_wan "lan2 lan3 lan4 lan5" "wan" + ;; netgear,wax218|\ netgear,wax620) ucidef_set_interface_lan "lan" "dhcp" diff --git a/target/linux/qualcommax/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata b/target/linux/qualcommax/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata index 018e8288590b..a116d884e2b5 100644 --- a/target/linux/qualcommax/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata +++ b/target/linux/qualcommax/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata @@ -17,6 +17,8 @@ case "$FIRMWARE" in edgecore,eap102|\ edimax,cax1800|\ linksys,mx5300|\ + netgear,sxr80|\ + netgear,sxs80|\ netgear,wax218|\ netgear,wax620|\ netgear,wax630|\ diff --git a/target/linux/qualcommax/ipq807x/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/qualcommax/ipq807x/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac index 17284a0d9ea8..9552536ade6d 100644 --- a/target/linux/qualcommax/ipq807x/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac +++ b/target/linux/qualcommax/ipq807x/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac @@ -23,6 +23,13 @@ case "$board" in [ "$PHYNBR" = "0" ] && macaddr_add $(get_mac_label) 2 > /sys${DEVPATH}/macaddress [ "$PHYNBR" = "1" ] && macaddr_add $(get_mac_label) 3 > /sys${DEVPATH}/macaddress ;; + netgear,sxr80|\ + netgear,sxs80) + [ "$PHYNBR" = "0" ] && mtd_get_mac_binary boarddata1 0x0c > /sys${DEVPATH}/macaddress + #boarddata1 doesn't have a MAC for the 2G interface + [ "$PHYNBR" = "1" ] && macaddr_setbit_la $(get_mac_label) > /sys${DEVPATH}/macaddress + [ "$PHYNBR" = "2" ] && mtd_get_mac_binary boarddata1 0x12 > /sys${DEVPATH}/macaddress + ;; zbtlink,zbt-z800ax) [ "$PHYNBR" = "0" ] && macaddr_add $(get_mac_label) -1 > /sys${DEVPATH}/macaddress [ "$PHYNBR" = "1" ] && macaddr_add $(get_mac_label) -2 > /sys${DEVPATH}/macaddress diff --git a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh index b99657fb4ccb..200833421365 100644 --- a/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh +++ b/target/linux/qualcommax/ipq807x/base-files/lib/upgrade/platform.sh @@ -49,6 +49,8 @@ platform_do_upgrade() { dynalink,dl-wrx36|\ edimax,cax1800|\ netgear,rax120v2|\ + netgear,sxr80|\ + netgear,sxs80|\ netgear,wax218|\ netgear,wax620|\ netgear,wax630|\ -- 2.30.2