]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
qualcommax: ipq60xx: add GL.iNet GL-AX1800/AXT1800 support 14950/head
authorChukun Pan <amadeus@jmu.edu.cn>
Wed, 20 Mar 2024 15:05:07 +0000 (23:05 +0800)
committerRobert Marko <robimarko@gmail.com>
Mon, 24 Mar 2025 09:16:00 +0000 (10:16 +0100)
Specifications:
  SoC:     Qualcomm IPQ6000
  RAM:     512 MiB
  Flash:   128 MiB NAND
  ETH:     Qualcomm QCA8075
  WLAN1:   2.4GHz 802.11b/g/n/ax 2x2
  WLAN2:   5GHz 802.11a/n/ac/ax 2x2
  Button:  Reset, Switch
  USB:     1x 3.0
  SD slot: 1 in GL-AXT1800

Install via stock firmware:
  Upload factory.bin in stock firmware's upgrade page,
  do not preserve settings.

Install via uboot web failsafe:
  Push the reset button for 5 seconds, then use broswer
  to access http://192.168.1.1, and upload factory.ubi.

Afterwards upgrade can use sysupgrade image.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/14950
Signed-off-by: Robert Marko <robimarko@gmail.com>
package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq60xx
package/firmware/ipq-wifi/Makefile
target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6000-gl-ax1800.dts [new file with mode: 0644]
target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6000-gl-axt1800.dts [new file with mode: 0644]
target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6000-glinet.dtsi [new file with mode: 0644]
target/linux/qualcommax/image/ipq60xx.mk
target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network
target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata
target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh

index 2dc60bebe114e21e0f7476f7bb858f21bb574545..aa01e040ea074481004dfde22c56fa09c087ac6a 100644 (file)
@@ -19,13 +19,15 @@ case "$board" in
 cambiumnetworks,xe3-4)
        ubootenv_add_mtd "0:APPSBLENV" "0x0" "0x10000" "0x10000"
        ;;
-linksys,mr7350)
-       ubootenv_add_mtd "u_env" "0x0" "0x40000" "0x20000"
-       ;;
+glinet,gl-ax1800|\
+glinet,gl-axt1800|\
 netgear,wax214|\
 tplink,eap610-outdoor)
        ubootenv_add_mtd "0:appsblenv" "0x0" "0x40000" "0x20000"
        ;;
+linksys,mr7350)
+       ubootenv_add_mtd "u_env" "0x0" "0x40000" "0x20000"
+       ;;
 yuncore,fap650)
        ubootenv_add_mtd "0:appsblenv" "0x0" "0x10000" "0x10000"
        ;;
index 88c99da070de84a15bb289c7fda74f7eed6292ce..b9009cf53282c1d16807ba2ba308a89e66bf21f1 100644 (file)
@@ -38,6 +38,8 @@ ALLWIFIBOARDS:= \
        dynalink_dl-wrx36 \
        edgecore_eap102 \
        edimax_cax1800 \
+       glinet_gl-ax1800 \
+       glinet_gl-axt1800 \
        linksys_homewrk \
        linksys_mr5500 \
        linksys_mr7350 \
@@ -181,6 +183,8 @@ $(eval $(call generate-ipq-wifi-package,compex_wpq873,Compex WPQ-873))
 $(eval $(call generate-ipq-wifi-package,dynalink_dl-wrx36,Dynalink DL-WRX36))
 $(eval $(call generate-ipq-wifi-package,edgecore_eap102,Edgecore EAP102))
 $(eval $(call generate-ipq-wifi-package,edimax_cax1800,Edimax CAX1800))
+$(eval $(call generate-ipq-wifi-package,glinet_gl-ax1800,GL.iNet GL-AX1800))
+$(eval $(call generate-ipq-wifi-package,glinet_gl-axt1800,GL.iNet GL-AXT1800))
 $(eval $(call generate-ipq-wifi-package,linksys_homewrk,Linksys HomeWRK))
 $(eval $(call generate-ipq-wifi-package,linksys_mr5500,Linksys MR5500))
 $(eval $(call generate-ipq-wifi-package,linksys_mr7350,Linksys MR7350))
diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6000-gl-ax1800.dts b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6000-gl-ax1800.dts
new file mode 100644 (file)
index 0000000..cd6e749
--- /dev/null
@@ -0,0 +1,70 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+
+#include "ipq6000-glinet.dtsi"
+
+/ {
+       model = "GL.iNet GL-AX1800";
+       compatible = "glinet,gl-ax1800", "qcom,ipq6018";
+
+       aliases {
+               label-mac-device = &dp1;
+       };
+};
+
+&partitions {
+       partition@a00000 {
+               label = "rootfs";
+               reg = <0x0a00000 0x7300000>;
+       };
+};
+
+&switch {
+       switch_lan_bmp = <(ESS_PORT2 | ESS_PORT3 | ESS_PORT4 | ESS_PORT5)>;
+       switch_wan_bmp = <ESS_PORT1>;
+};
+
+&dp1 {
+       status = "okay";
+       phy-handle = <&qca8075_0>;
+       label = "wan";
+       nvmem-cells = <&macaddr_wan>;
+       nvmem-cell-names = "mac-address";
+};
+
+&dp2 {
+       status = "okay";
+       phy-handle = <&qca8075_1>;
+       label = "lan1";
+       nvmem-cells = <&macaddr_lan>;
+       nvmem-cell-names = "mac-address";
+};
+
+&dp3 {
+       status = "okay";
+       phy-handle = <&qca8075_2>;
+       label = "lan2";
+       nvmem-cells = <&macaddr_lan>;
+       nvmem-cell-names = "mac-address";
+};
+
+&dp4 {
+       status = "okay";
+       phy-handle = <&qca8075_3>;
+       label = "lan3";
+       nvmem-cells = <&macaddr_lan>;
+       nvmem-cell-names = "mac-address";
+};
+
+&dp5 {
+       status = "okay";
+       phy-handle = <&qca8075_4>;
+       label = "lan4";
+       nvmem-cells = <&macaddr_lan>;
+       nvmem-cell-names = "mac-address";
+};
+
+&wifi {
+       qcom,ath11k-calibration-variant = "GL-iNet-GL-AX1800";
+};
diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6000-gl-axt1800.dts b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6000-gl-axt1800.dts
new file mode 100644 (file)
index 0000000..767b15e
--- /dev/null
@@ -0,0 +1,169 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+
+#include "ipq6000-glinet.dtsi"
+
+/ {
+       model = "GL.iNet GL-AXT1800";
+       compatible = "glinet,gl-axt1800", "qcom,ipq6018";
+
+       aliases {
+               label-mac-device = &dp1;
+       };
+
+       vcc_sd: regulator-vcc-sd {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_sd";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               gpios = <&tlmm 66 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       vcc_fan: regulator-vcc-fan {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_fan";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&tlmm 29 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-boot-on;
+       };
+
+       fan: pwm-fan {
+               compatible = "pwm-fan";
+               pwms = <&pwm 1 40000 0>;
+               fan-supply = <&vcc_fan>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <31 IRQ_TYPE_EDGE_RISING>;
+               cooling-levels = <36 128 192 255>;
+               #cooling-cells = <2>;
+       };
+
+       thermal-zones {
+               cpu-thermal {
+                       trips {
+                               cpu_trip_high: active-high {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "active";
+                               };
+
+                               cpu_trip_med: active-med {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "active";
+                               };
+
+                               cpu_trip_low: active-low {
+                                       temperature = <50000>;
+                                       hysteresis = <2000>;
+                                       type = "active";
+                               };
+                       };
+
+                       cooling-maps {
+                               cpu-active-high {
+                                       cooling-device = <&fan 3 3>;
+                                       trip = <&cpu_trip_high>;
+                               };
+
+                               cpu-active-med {
+                                       cooling-device = <&fan 2 2>;
+                                       trip = <&cpu_trip_med>;
+                               };
+
+                               cpu-active-low {
+                                       cooling-device = <&fan 1 1>;
+                                       trip = <&cpu_trip_low>;
+                               };
+                       };
+               };
+       };
+};
+
+&tlmm {
+       pwm_pins: pwm-pins {
+               pwm {
+                       pins = "gpio30";
+                       function = "pwm13";
+                       drive-strength = <8>;
+               };
+       };
+
+       sd_pins: sd-pins {
+               sd {
+                       pins = "gpio62";
+                       function = "sd_card";
+                       bias-pull-up;
+               };
+               ldo {
+                       pins = "gpio66";
+                       function = "gpio";
+                       bias-pull-up;
+               };
+       };
+};
+
+&partitions {
+       partition@a00000 {
+               label = "rootfs";
+               reg = <0x0a00000 0x7280000>;
+       };
+
+       partition@7c80000 {
+               label = "log";
+               reg = <0x7c80000 0x0080000>;
+       };
+};
+
+&pwm {
+       pinctrl-0 = <&pwm_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&sdhc {
+       mmc-ddr-1_8v;
+       bus-width = <4>;
+       cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
+       pinctrl-0 = <&sd_pins>;
+       pinctrl-names = "default";
+       vqmmc-supply = <&vcc_sd>;
+       status = "okay";
+};
+
+&switch {
+       switch_lan_bmp = <(ESS_PORT2 | ESS_PORT3)>;
+       switch_wan_bmp = <ESS_PORT1>;
+};
+
+&dp1 {
+       status = "okay";
+       phy-handle = <&qca8075_0>;
+       label = "wan";
+       nvmem-cells = <&macaddr_wan>;
+       nvmem-cell-names = "mac-address";
+};
+
+&dp2 {
+       status = "okay";
+       phy-handle = <&qca8075_1>;
+       label = "lan2";
+       nvmem-cells = <&macaddr_lan>;
+       nvmem-cell-names = "mac-address";
+};
+
+&dp3 {
+       status = "okay";
+       phy-handle = <&qca8075_2>;
+       label = "lan1";
+       nvmem-cells = <&macaddr_lan>;
+       nvmem-cell-names = "mac-address";
+};
+
+&wifi {
+       qcom,ath11k-calibration-variant = "GL-iNet-GL-AXT1800";
+};
diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6000-glinet.dtsi b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6000-glinet.dtsi
new file mode 100644 (file)
index 0000000..fb6706a
--- /dev/null
@@ -0,0 +1,316 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ipq6018-512m.dtsi"
+#include "ipq6018-ess.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       aliases {
+               led-boot = &led_run;
+               led-failsafe = &led_run;
+               led-running = &led_run;
+               led-upgrade = &led_run;
+               serial0 = &blsp1_uart3;
+               serial1 = &blsp1_uart4;
+               serial2 = &blsp1_uart5;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+               bootargs-append = " root=/dev/ubiblock0_1";
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               switch {
+                       label = "switch";
+                       linux,code = <BTN_0>;
+                       linux,input-type = <EV_SW>;
+                       gpios = <&tlmm 9 GPIO_ACTIVE_LOW>;
+               };
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_run: run {
+                       label = "blue:run";
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
+               };
+
+               system {
+                       label = "white:system";
+                       color = <LED_COLOR_ID_WHITE>;
+                       gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       reg_usb_vbus: regulator-usb-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&tlmm 0 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-boot-on;
+       };
+};
+
+&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;
+               };
+       };
+
+       tluart_pins: tluart-pins {
+               mux {
+                       pins = "gpio75", "gpio76";
+                       function = "blsp3_uart";
+                       drive-strength = <8>;
+                       bias-disable;
+               };
+       };
+
+       hsuart_pins: hsuart-pins {
+               mux {
+                       pins = "gpio57", "gpio58";
+                       function = "blsp4_uart";
+                       drive-strength = <8>;
+                       bias-disable;
+               };
+       };
+};
+
+&blsp1_uart3 {
+       pinctrl-0 = <&serial_3_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&blsp1_uart4 {
+       pinctrl-0 = <&tluart_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&blsp1_uart5 {
+       pinctrl-0 = <&hsuart_pins>;
+       pinctrl-names = "default";
+       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>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partitions: partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "0:sbl1";
+                               reg = <0x0000000 0x0180000>;
+                               read-only;
+                       };
+
+                       partition@180000 {
+                               label = "0:mibib";
+                               reg = <0x0180000 0x0100000>;
+                               read-only;
+                       };
+
+                       partition@280000 {
+                               label = "0:qsee";
+                               reg = <0x0280000 0x0380000>;
+                               read-only;
+                       };
+
+                       partition@600000 {
+                               label = "0:devcfg";
+                               reg = <0x0600000 0x0080000>;
+                               read-only;
+                       };
+
+                       partition@680000 {
+                               label = "0:rpm";
+                               reg = <0x0680000 0x0080000>;
+                               read-only;
+                       };
+
+                       partition@700000 {
+                               label = "0:cdt";
+                               reg = <0x0700000 0x0080000>;
+                               read-only;
+                       };
+
+                       partition@780000 {
+                               label = "0:appsblenv";
+                               reg = <0x0780000 0x0080000>;
+                       };
+
+                       partition@800000 {
+                               label = "0:appsbl";
+                               reg = <0x0800000 0x0180000>;
+                               read-only;
+                       };
+
+                       partition@980000 {
+                               label = "0:art";
+                               reg = <0x0980000 0x0080000>;
+                               read-only;
+
+                               nvmem-layout {
+                                       compatible = "fixed-layout";
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       macaddr_wan: macaddr@0 {
+                                               reg = <0x0 0x6>;
+                                       };
+
+                                       macaddr_lan: macaddr@6 {
+                                               reg = <0x6 0x6>;
+                                       };
+                               };
+                       };
+
+                       /* rootfs defined in variant dts */
+
+                       partition@7d00000 {
+                               label = "0:ethphyfw";
+                               reg = <0x7d00000 0x0080000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&qusb_phy_0 {
+       vdd-supply = <&reg_usb_vbus>;
+       status = "okay";
+};
+
+&ssphy_0 {
+       status = "okay";
+};
+
+&usb3 {
+       status = "okay";
+};
+
+&rpm {
+       status = "disabled";
+};
+
+&mdio {
+       status = "okay";
+
+       pinctrl-0 = <&mdio_pins>;
+       pinctrl-names = "default";
+       reset-gpios = <&tlmm 74 GPIO_ACTIVE_LOW>;
+
+       ethernet-phy-package@0 {
+               compatible = "qcom,qca8075-package";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0>;
+
+               qca8075_0: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+               };
+
+               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>;
+               };
+       };
+};
+
+&switch {
+       status = "okay";
+
+       switch_mac_mode = <MAC_MODE_PSGMII>;
+
+       qcom,port_phyinfo {
+               port@1 {
+                       port_id = <1>;
+                       phy_address = <0>;
+               };
+               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>;
+               };
+       };
+};
+
+&edma {
+       status = "okay";
+};
+
+&wifi {
+       status = "okay";
+
+       qcom,ath11k-fw-memory-mode = <1>;
+};
index c7e0be1181e49ac1feeb2c803c0d5c508a1e944f..e85204d796ccd0a3107222a4056f199c364d8caa 100644 (file)
@@ -24,6 +24,34 @@ define Device/cambiumnetworks_xe3-4
 endef
 TARGET_DEVICES += cambiumnetworks_xe3-4
 
+define Device/glinet_gl-common
+       $(call Device/FitImage)
+       $(call Device/UbiFit)
+       DEVICE_VENDOR := GL.iNet
+       BLOCKSIZE := 128k
+       PAGESIZE := 2048
+       DEVICE_DTS_CONFIG := config@cp03-c1
+       SOC := ipq6000
+       IMAGES += factory.bin
+       IMAGE/factory.bin := append-ubi | append-gl-metadata
+endef
+
+define Device/glinet_gl-ax1800
+       $(call Device/glinet_gl-common)
+       DEVICE_MODEL := GL-AX1800
+       DEVICE_PACKAGES := ipq-wifi-glinet_gl-ax1800
+       SUPPORTED_DEVICES += glinet,ax1800
+endef
+TARGET_DEVICES += glinet_gl-ax1800
+
+define Device/glinet_gl-axt1800
+       $(call Device/glinet_gl-common)
+       DEVICE_MODEL := GL-AXT1800
+       DEVICE_PACKAGES := ipq-wifi-glinet_gl-axt1800 kmod-hwmon-pwmfan
+       SUPPORTED_DEVICES += glinet,axt1800
+endef
+TARGET_DEVICES += glinet_gl-axt1800
+
 define Device/linksys_mr7350
        $(call Device/FitImage)
        DEVICE_VENDOR := Linksys
index 44c0ba7049e1f01861dea164172400f829db9686..34f8c95e8fe84cbbbde95b65e599a28d32090213 100644 (file)
@@ -11,12 +11,18 @@ ipq60xx_setup_interfaces()
        local board="$1"
 
        case "$board" in
-       8devices,mango-dvk)
+       8devices,mango-dvk|\
+       glinet,gl-axt1800)
                ucidef_set_interfaces_lan_wan "lan1 lan2" "wan"
                ;;
        cambiumnetworks,xe3-4)
                ucidef_set_interface_lan "lan1 lan2" "dhcp"
                ;;
+       glinet,gl-ax1800|\
+       linksys,mr7350|\
+       yuncore,fap650)
+               ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
+               ;;
        netgear,wax214)
                ucidef_set_interfaces_lan_wan "lan"
                ;;
@@ -26,10 +32,6 @@ ipq60xx_setup_interfaces()
        tplink,eap610-outdoor)
                ucidef_set_interface_lan "lan" "dhcp"
                ;;
-       linksys,mr7350|\
-       yuncore,fap650)
-               ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
-               ;;
        *)
                echo "Unsupported hardware. Network interfaces not initialized"
                ;;
index cf3e400586b7151071bfda24f8d793504dbc5594..061d2ad2ea3c23d2563a1522d8e18fe33a36e96f 100644 (file)
@@ -15,6 +15,14 @@ case "$FIRMWARE" in
        cambiumnetworks,xe3-4)
                caldata_extract "0:ART" 0x1000 0x10000
                ;;
+       glinet,gl-ax1800|\
+       glinet,gl-axt1800)
+               caldata_extract "0:art" 0x1000 0x10000
+               label_mac=$(get_mac_label)
+               ath11k_patch_mac $(macaddr_add $label_mac 3) 0
+               ath11k_patch_mac $(macaddr_add $label_mac 2) 1
+               ath11k_set_macflag
+               ;;
        linksys,mr7350)
                caldata_extract "0:art" 0x1000 0x10000
                addr=$(mtd_get_mac_ascii devinfo hw_mac_addr)
index f9d446ff1f70f7b3e2a9b73958c069e3f92c6283..b9b0ed1ed7fd888a10f28a44355711d0622a9217 100644 (file)
@@ -110,6 +110,12 @@ platform_do_upgrade() {
                fw_setenv bootcount 0
                nand_do_upgrade "$1"
                ;;
+       glinet,gl-ax1800|\
+       glinet,gl-axt1800|\
+       netgear,wax214|\
+       qihoo,360v6)
+               nand_do_upgrade "$1"
+               ;;
        linksys,mr7350)
                boot_part="$(fw_printenv -n boot_part)"
                if [ "$boot_part" -eq "1" ]; then
@@ -124,10 +130,6 @@ platform_do_upgrade() {
                fw_setenv auto_recovery yes
                nand_do_upgrade "$1"
                ;;
-       netgear,wax214|\
-       qihoo,360v6)
-               nand_do_upgrade "$1"
-               ;;
        tplink,eap610-outdoor)
                tplink_do_upgrade "$1"
                ;;