Skip to content

Commit

Permalink
ath79: add support for NEC Aterm WG1800HP2
Browse files Browse the repository at this point in the history
NEC Aterm WG1800HP2 is a 2.4/5 GHz band 11ac (Wi-Fi 5) router, based on
QCA9558.

Specification:

- SoC              : Qualcomm Atheros QCA9558
- RAM              : DDR2 128 MiB (2x Nanya NT5TU32M16DG-AC)
- Flash            : SPI-NOR 16 MiB (Macronix MX25L12845EMI-10G)
- WLAN             : 2.4/5 GHz
  - 2.4 GHz        : 3T3R (Qualcomm Atheros QCA9558 (SoC))
  - 5 GHz          : 3T3R (Qualcomm Atheros QCA9880)
- Ethernet         : 5x 10/100/1000 Mbps
  - switch         : Atheros AR8327
- LEDs/Keys (GPIO) : 12x/5x
- 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. 17 W)
- Stock OS         : NetBSD based

Flash instruction using initramfs-factory.bin image (StockFW WebUI):

1. Boot WG1800HP2 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 WG1800HP2 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 TI TCA6416A (marking: PH416A) I2C
  Expander 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:44 (config, 0x6 (hex))
WAN    : A4:12:42:xx:xx:45 (config, 0xc (hex))
2.4 GHz: A4:12:42:xx:xx:46 (config, 0x0 (hex))
5 GHz  : A4:12:42:xx:xx:47 (config, 0x12 (hex))

Signed-off-by: INAGAKI Hiroshi <[email protected]>
Link: openwrt/openwrt#16297
Signed-off-by: Hauke Mehrtens <[email protected]>
  • Loading branch information
musashino205 authored and hauke committed Oct 19, 2024
1 parent de6fa88 commit cba4040
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 3 deletions.
12 changes: 12 additions & 0 deletions target/linux/ath79/dts/qca9558_nec_wg1800hp2.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

#include "qca9558_nec_aterm.dtsi"

/ {
compatible = "nec,wg1800hp2", "qca,qca9558";
model = "NEC Aterm WG1800HP2";
};

&eth0 {
pll-data = <0x96000000 0x00000101 0x00001616>;
};
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,7 @@ ath79_setup_interfaces()
belkin,f9k1115-v2|\
nec,wg1400hp|\
nec,wg1800hp|\
nec,wg1800hp2|\
tplink,archer-c5-v1|\
tplink,archer-c7-v1|\
tplink,archer-c7-v2|\
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ platform_check_image() {
platform_check_image_redboot_fis "$1"
;;
nec,wg1400hp|\
nec,wg1800hp)
nec,wg1800hp|\
nec,wg1800hp2)
local uboot_mtd=$(find_mtd_part "bootloader")

# check "U-Boot <year>.<month>" string in the "bootloader" partition
Expand Down
10 changes: 10 additions & 0 deletions target/linux/ath79/image/generic.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2081,6 +2081,16 @@ define Device/nec_wg1800hp
endef
TARGET_DEVICES += nec_wg1800hp

define Device/nec_wg1800hp2
SOC := qca9558
DEVICE_MODEL := Aterm WG1800HP2
IMAGE_SIZE := 16128k
NEC_FW_TYPE := H049
$(Device/nec-netbsd-aterm)
DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct
endef
TARGET_DEVICES += nec_wg1800hp2

define Device/nec_wg800hp
SOC := qca9563
DEVICE_VENDOR := NEC
Expand Down
7 changes: 5 additions & 2 deletions target/linux/ath79/image/lzma-loader/src/board.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ static inline void tlwr1043nd_init(void) {}

#if defined(CONFIG_BOARD_MERAKI_MR18) || \
defined(CONFIG_BOARD_NEC_WG1400HP) || \
defined(CONFIG_BOARD_NEC_WG1800HP)
defined(CONFIG_BOARD_NEC_WG1800HP) || \
defined(CONFIG_BOARD_NEC_WG1800HP2)

static int extract_qca955x_sgmii_res_cal(void)
{
Expand Down Expand Up @@ -219,6 +220,7 @@ static inline void huawei_ap_init(void) {}

#if defined(CONFIG_BOARD_NEC_WG1400HP) || \
defined(CONFIG_BOARD_NEC_WG1800HP) || \
defined(CONFIG_BOARD_NEC_WG1800HP2) || \
defined(CONFIG_BOARD_NEC_WG600HP) || \
defined(CONFIG_BOARD_NEC_WR8750N) || \
defined(CONFIG_BOARD_NEC_WR9500N)
Expand Down Expand Up @@ -293,7 +295,8 @@ static inline void nec_aterm_init(void)
WRITEREG(reg + AR934X_RESET_REG_RESET_MODULE, val);
}
#elif defined(CONFIG_BOARD_NEC_WG1400HP) || \
defined(CONFIG_BOARD_NEC_WG1800HP)
defined(CONFIG_BOARD_NEC_WG1800HP) || \
defined(CONFIG_BOARD_NEC_WG1800HP2)

#define QCA955X_GMAC_MR_AN_CONTROL_PHY_RESET_MASK BIT(15)
#define QCA955X_GMAC_MR_AN_CONTROL_FULL_DUPLEX_MASK BIT(8)
Expand Down

0 comments on commit cba4040

Please sign in to comment.