ipq806x: Add support for Netgear Nighthawk Pro Gaming XR450
authorAndrzej Mialkowski <andrzej.mialkowski@gmail.com>
Fri, 19 May 2023 11:09:54 +0000 (04:09 -0700)
committerChristian Marangi <ansuelsmth@gmail.com>
Thu, 25 May 2023 21:53:00 +0000 (23:53 +0200)
Motivation:
 Firmware with platform ID "XR450" required for easy installation.

Manufacturer pages:
 Product page: https://www.netgear.com/support/product/xr450
 Product Data Sheet: https://www.netgear.com/images/datasheet/networking/wifirouter/XR450.pdf
 Current firmware: https://www.downloads.netgear.com/files/GDC/XR450/XR450-V2.3.2.134.zip

Specifications:
Almost identical to Netgear XR500(https://openwrt.org/toh/hwdata/netgear/netgear_xr500)

Differences:
Platform ID: XR450, utilized for firmware validation
WLAN 2.4GHz: b/g/n Supports QAM64 (XR500 QAM256)

SoC: Qualcomm Atheros IPQ8065
RAM: 512 MB
Storage: 256 MiB
Wireless: Qualcomm Atheros QCA9984
Switch: Qualcomm Atheros AR8337 rev. 2
Ethernet: 5x 1000/100/10
USB: 2x 3.0

Install via WEB GUI (recommended):
1. Navigate within GUI to firmware update section
2. Select openwrt-ipq806x-netgear_xr450-squashfs-factory.img
3. Dismiss downgrade warning

Install via TFTP recovery (same as XR500/R7800):

1. Configure host PC to use static address 192.168.1.10 https://openwrt.org/toh/netgear/r7800#prerequisites_for_tftp_flashing
2. Flash openwrt-ipq806x-netgear_xr450-squashfs-factory.img using procedure https://openwrt.org/toh/netgear/r7800#tftp_flashing_process

Revert to stock firmware
1. Download current manufacturer firmware, decompress zip file to obtain img file
2. Use TFTP recovery method flash img file (currently XR450-V2.3.2.134.img)
ipq806x: add support to netgear_xr450

Signed-off-by: Andrzej Mialkowski <andrzej.mialkowski@gmail.com>
target/linux/ipq806x/base-files/etc/board.d/01_leds
target/linux/ipq806x/base-files/etc/board.d/02_network
target/linux/ipq806x/base-files/lib/upgrade/platform.sh
target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8065-xr450.dts [new file with mode: 0644]
target/linux/ipq806x/image/generic.mk

index 82ca270dd6b1159f2df512548148fda0a3ad5705..d4d40bd646324137947a7a605f1c4f4cdea39fac 100644 (file)
@@ -37,6 +37,7 @@ netgear,d7800 |\
 netgear,r7500 |\
 netgear,r7500v2 |\
 netgear,r7800 |\
+netgear,xr450 |\
 netgear,xr500)
        ucidef_set_led_usbport "usb1" "USB 1" "white:usb1" "usb1-port1" "usb2-port1"
        ucidef_set_led_usbport "usb2" "USB 2" "white:usb2" "usb3-port1" "usb4-port1"
index 8dd52452b17395d02b6c3e4b207acba4ebea2a57..70812a1013c9c3b1e6e0706dfbb841c35546c661 100644 (file)
@@ -59,6 +59,7 @@ nec,wg2600hp3)
                "2:lan" "3:lan" "4:lan" "5:lan" "0@eth1" "1:wan" "6@eth0"
        ;;
 netgear,r7800 |\
+netgear,xr450 |\
 netgear,xr500 |\
 tplink,c2600 |\
 tplink,vr2600v)
index 5ec4f513bd33db2a43bab264ae4855123bb2358d..108b0b763077a3aad3324764431568bbfac6e868 100644 (file)
@@ -17,6 +17,7 @@ platform_do_upgrade() {
        netgear,r7500 |\
        netgear,r7500v2 |\
        netgear,r7800 |\
+       netgear,xr450 |\
        netgear,xr500 |\
        nokia,ac400i |\
        qcom,ipq8064-ap148 |\
diff --git a/target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8065-xr450.dts b/target/linux/ipq806x/files-5.15/arch/arm/boot/dts/qcom-ipq8065-xr450.dts
new file mode 100644 (file)
index 0000000..4353aec
--- /dev/null
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qcom-ipq8065-nighthawk.dtsi"
+
+/ {
+       model = "Netgear Nighthawk XR450";
+       compatible = "netgear,xr450", "qcom,ipq8065", "qcom,ipq8064";
+
+};
+
+&leds {
+       usb1 {
+               label = "white:usb1";
+               gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>;
+       };
+
+       usb2 {
+               label = "white:usb2";
+               gpios = <&qcom_pinmux 26 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&partitions {
+       partition@1880000 {
+               label = "ubi";
+               reg = <0x1880000 0xce00000>;
+       };
+
+       partition@e680000 {
+               label = "reserve";
+               reg = <0xe680000 0x0780000>;
+               read-only;
+       };
+};
+
+&wifi0 {
+       nvmem-cells = <&macaddr_art_c>, <&precal_art_1000>;
+       nvmem-cell-names = "mac-address", "pre-calibration";
+};
+
+&wifi1 {
+       nvmem-cells = <&macaddr_art_0>, <&precal_art_5000>;
+       nvmem-cell-names = "mac-address", "pre-calibration";
+};
+
+&art {
+       macaddr_art_c: macaddr@c {
+               reg = <0xc 0x6>;
+       };
+};
index b83999dd00ed6c3a33b3003b6f4de2a21f451aa6..7ed2b8084733e0b6775739b9489329d81cc62bb3 100644 (file)
@@ -320,6 +320,20 @@ define Device/netgear_r7800
 endef
 TARGET_DEVICES += netgear_r7800
 
+define Device/netgear_xr450
+       $(call Device/DniImage)
+       DEVICE_VENDOR := NETGEAR
+       DEVICE_MODEL := Nighthawk XR450
+       SOC := qcom-ipq8065
+       KERNEL_SIZE := 4096k
+       NETGEAR_BOARD_ID := XR450
+       NETGEAR_HW_ID := 29764958+0+256+512+4x4+4x4+cascade
+       BLOCKSIZE := 128k
+       PAGESIZE := 2048
+       DEVICE_PACKAGES := ath10k-firmware-qca9984-ct kmod-ramoops
+endef
+TARGET_DEVICES += netgear_xr450
+
 define Device/netgear_xr500
        $(call Device/DniImage)
        DEVICE_VENDOR := NETGEAR