[openwrt/openwrt] ath79: add support for NEC Aterm WG600HP

LEDE Commits lede-commits at lists.infradead.org
Sun Jul 28 09:48:42 PDT 2024


hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ba723a3f6c1a8d3c39d85cd57eae2daa8c896b15

commit ba723a3f6c1a8d3c39d85cd57eae2daa8c896b15
Author: INAGAKI Hiroshi <musashino.open at gmail.com>
AuthorDate: Thu Apr 25 01:08:41 2024 +0900

    ath79: add support for NEC Aterm WG600HP
    
    NEC Aterm WG600HP is a 2.4/5 GHz band 11n (Wi-Fi 4) router, based on
    AR9344.
    
    Specification:
    
    - SoC             : Atheros AR9344
    - RAM             : DDR2 128 MiB (2x Hynix H5PS5162GFR-S6C)
    - Flash           : SPI-NOR 8 MiB (Macronix MX25L6406EMI-12G)
    - WLAN            : 2.4/5 GHz 2T2R
      - 2.4 GHz       : Atheros AR9344 (SoC)
      - 5 GHz         : Atheros AR9382
    - Ethernet        : 5x 10/100/1000 Mbps
      - switch        : Atheros AR8327
    - LEDs/Keys (GPIO): 10x/4x
      - note          : all LEDs are controlled by ath9k chip (AR9382)
    - UART            : through-hole on PCB
      - assignment    : 3.3V, GND, NC, TX, RX from tri-angle marking
      - settings      : 9600n8
    - USB             : 1x USB 2.0 Type-A
      - hub (internal): NEC uPD720114
    - Power           : 12 VDC, 1.5 A (Max. 16 W)
    - Stock OS        : NetBSD based
    
    Flash instruction using initramfs-factory.bin image (StockFW WebUI):
    
    1. Boot WG600HP with router mode normally
    2. Access to the WebUI ("http://aterm.me/" or "http://192.168.0.1/") on
       the device and open firmware update page ("ファームウェア更新")
    3. Select the OpenWrt initramfs-factory.bin image and click update
       ("更新") button
    4. After updating, the device will be rebooted and booted with OpenWrt
       initramfs image
    5. On the initramfs image, upload (or download) uboot.bin and
       sysupgrade.bin image to the device
    6. Replace the bootloader with a uboot.bin image
    
       mtd write <uboot.bin image> bootloader
    
    7. Perform sysupgrade with a sysupgrade.bin image
    
       sysupgrade <sysupgrade image>
    
    8. Wait ~120 seconds to complete flashing
    
    Flash instruction using initramfs-factory.bin image (bootloader CLI):
    
     1. Connect and open serial console
     2. Power on WG600HP and interrupt bootloader by ESC key
     3. Login to the bootloader CLI with a password "chiron"
     4. Start TFTP server by "tftpd" command
     5. Upload initramfs-factory.bin via tftp from your computer
    
       example (Windows): tftp -i 192.168.0.1 PUT initramfs-factory.bin
    
     6. Boot initramfs image by "boot" command
     7. On the initramfs image, back up the stock bootloader and firmware if
       needed
     8. Upload (or download) uboot.bin and sysupgrade.bin image to the device
     9. Replace the bootloader with a uboot.bin image
    10. Perform sysupgrade with a sysupgrade.bin image
    11. Wait ~120 seconds to complete flashing
    
    Notes:
    
    - All LEDs are connected to the GPIO controller on the ath9k chip
      (AR9382) and controlled by it. Those LEDs are probed after probing of
      ath9k chip, so they cannot be handled as status LEDs of OpenWrt while
      booting.
    
    - A reset pin of the internal USB hub is connected to the GPIO
      controller of the ath9k chip, like LEDs above. That hub will be
      detected after probing of the ath9k chip.
    
    - The stock bootloader requires an unknown filesystem on firmware area
      in the flash. Booting of OpenWrt from that filesystem cannot be
      handled, so the bootloader needs to be replaced to mainline U-Boot
      before OpenWrt installation.
    
    MAC Addresses:
    
    LAN    : A4:12:42:xx:xx:A0 (config,  0x6 (hex))
    WAN    : A4:12:42:xx:xx:A1 (config,  0xc (hex))
    2.4 GHz: A4:12:42:xx:xx:A2 (config,  0x0 (hex) / art, 0x1002 (hex))
    5 GHz  : A4:12:42:xx:xx:A3 (config, 0x12 (hex) / art, 0x5002 (hex))
    
    Signed-off-by: INAGAKI Hiroshi <musashino.open at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/15432
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/ath79/dts/ar9344_nec_wg600hp.dts            | 16 ++++++++++++++++
 target/linux/ath79/image/lzma-loader/src/board.c         |  3 ++-
 target/linux/ath79/image/tiny.mk                         | 10 ++++++++++
 .../linux/ath79/tiny/base-files/etc/board.d/02_network   |  2 ++
 .../linux/ath79/tiny/base-files/lib/upgrade/platform.sh  |  1 +
 5 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/target/linux/ath79/dts/ar9344_nec_wg600hp.dts b/target/linux/ath79/dts/ar9344_nec_wg600hp.dts
new file mode 100644
index 0000000000..e586dce7ca
--- /dev/null
+++ b/target/linux/ath79/dts/ar9344_nec_wg600hp.dts
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar9344_nec_aterm.dtsi"
+
+/ {
+	compatible = "nec,wg600hp", "qca,ar9344";
+	model = "NEC Aterm WG600HP";
+};
+
+&partitions {
+	partition at 40000 {
+		compatible = "denx,uimage";
+		label = "firmware";
+		reg = <0x040000 0x7c0000>;
+	};
+};
diff --git a/target/linux/ath79/image/lzma-loader/src/board.c b/target/linux/ath79/image/lzma-loader/src/board.c
index c38dc14558..0d92f3174b 100644
--- a/target/linux/ath79/image/lzma-loader/src/board.c
+++ b/target/linux/ath79/image/lzma-loader/src/board.c
@@ -213,7 +213,8 @@ static inline void huawei_ap_init(void)
 static inline void huawei_ap_init(void) {}
 #endif
 
-#if defined(CONFIG_BOARD_NEC_WR8750N) || \
+#if defined(CONFIG_BOARD_NEC_WG600HP) || \
+    defined(CONFIG_BOARD_NEC_WR8750N) || \
     defined(CONFIG_BOARD_NEC_WR9500N)
 
 #define AR934X_PLL_SWITCH_CLK_CTRL_REG			0x24
diff --git a/target/linux/ath79/image/tiny.mk b/target/linux/ath79/image/tiny.mk
index d80ffa9400..53111119d8 100644
--- a/target/linux/ath79/image/tiny.mk
+++ b/target/linux/ath79/image/tiny.mk
@@ -121,6 +121,16 @@ define Device/engenius_enh202-v1
 endef
 TARGET_DEVICES += engenius_enh202-v1
 
+define Device/nec_wg600hp
+  DEVICE_MODEL := Aterm WG600HP
+  SOC := ar9344
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := 7936k
+  NEC_FW_TYPE := H044
+  $(Device/nec-netbsd-aterm)
+endef
+TARGET_DEVICES += nec_wg600hp
+
 define Device/nec_wr8750n
   SOC := ar9344
   DEVICE_MODEL := Aterm WR8750N
diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/02_network b/target/linux/ath79/tiny/base-files/etc/board.d/02_network
index e11c37453e..a204e820ca 100644
--- a/target/linux/ath79/tiny/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/tiny/base-files/etc/board.d/02_network
@@ -69,6 +69,7 @@ ath79_setup_interfaces()
 		ucidef_add_switch "switch0" \
 			"0 at eth1" "4:lan:1"
 		;;
+	nec,wg600hp|\
 	nec,wr8750n|\
 	nec,wr9500n|\
 	tplink,tl-wr941n-v7-cn)
@@ -154,6 +155,7 @@ ath79_setup_macs()
 	ubnt,picostation-m)
 		label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
 		;;
+	nec,wg600hp|\
 	nec,wr8750n|\
 	nec,wr9500n)
 		wan_mac=$(mtd_get_mac_binary config 0xc)
diff --git a/target/linux/ath79/tiny/base-files/lib/upgrade/platform.sh b/target/linux/ath79/tiny/base-files/lib/upgrade/platform.sh
index 19ddd29a1d..8fc0efcfbd 100644
--- a/target/linux/ath79/tiny/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ath79/tiny/base-files/lib/upgrade/platform.sh
@@ -12,6 +12,7 @@ platform_check_image() {
 	local board=$(board_name)
 
 	case "$board" in
+	nec,wg600hp|\
 	nec,wr8750n|\
 	nec,wr9500n)
 		local uboot_mtd=$(find_mtd_part "bootloader")




More information about the lede-commits mailing list