ramips: add support for I-O DATA WN-AX1167GR2

I-O DATA WN-AX1167GR2 is a 2.4/5 GHz band 11ac router, based on MediaTek
MT7621A.

Specification:

- SoC		: MediaTek MT7621A
- RAM		: DDR3 128 MiB
- Flash		: NAND 128 MiB
- WLAN		: MediaTek MT7615D (2.4/5 GHz, 2T2R)
- Ethernet	: 5x 10/100/1000 Mbps
  - Switch	: MediaTek MT7621A (MT7530)
- LEDs/Input	: 2x/3x (2x buttons, 1x slide-switch)
- UART		: through-hole on PCB
  - J5: Vcc, TX, RX, NC, GND
  - 57600 bps

Flash instruction using initramfs image:

1. Boot WN-AX1167GR2 normally
2. Access to "http://192.168.0.1/" and open firmware update page
("ファームウェア")
3. Select the OpenWrt initramfs image and click update ("更新")
button to perform firmware update
4. On the initramfs image, perform sysupgrade with squashfs-sysupgrade
image
5. Wait ~120 seconds to complete flashing

Notes:

- configuration in DeviceTree of DBDC (Dual-Band-Dual-Concurrent) mode
for MT7615D chip is not supported in mt76 driver
- last 0x80000 (512 KiB) in NAND flash is not used on stock firmware
- stock firmware requires "customized uImage header" by MSTC
(MitraStar Technology Corp.), but U-Boot doesn't
  - uImage magic (0x0 - 0x3) : 0x434F4D42 (COMB)
  - header crc32 (0x4 - 0x7) : with data length and data crc32
  - image name (0x20 - 0x37) : model ID and firmware versions
  - data length (0x38 - 0x3b): kernel + rootfs
  - data crc32 (0x3c - 0x3f) : kernel + rootfs

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Reviewed-by: Sungbo Eo <mans0n@gorani.run>
This commit is contained in:
INAGAKI Hiroshi 2019-08-26 20:27:22 +09:00 committed by Adrian Schmutzler
parent 3c0e2aa63e
commit 867db0a283
4 changed files with 44 additions and 0 deletions

View File

@ -0,0 +1,25 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "mt7621_iodata_wn-xx-xr.dtsi"
/ {
compatible = "iodata,wn-ax1167gr2", "mediatek,mt7621-soc";
model = "I-O DATA WN-AX1167GR2";
};
&partitions {
partition@6b00000 {
label = "Backup";
reg = <0x6b00000 0x1480000>;
read-only;
};
};
&pcie1 {
wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x0>;
};
};

View File

@ -352,6 +352,22 @@ define Device/iodata_wn-ax1167gr
endef endef
TARGET_DEVICES += iodata_wn-ax1167gr TARGET_DEVICES += iodata_wn-ax1167gr
define Device/iodata_wn-ax1167gr2
BLOCKSIZE := 128k
PAGESIZE := 2048
UBINIZE_OPTS := -E 5
UIMAGE_MAGIC := 0x434f4d42
KERNEL_SIZE := 4096k
IMAGE_SIZE := 51200k
DEVICE_VENDOR := I-O DATA
DEVICE_MODEL := WN-AX1167GR2
KERNEL_INITRAMFS := $(KERNEL_DTB) | custom-initramfs-uimage 3.10(XBC.1)b10 | \
iodata-mstc-header
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
DEVICE_PACKAGES := kmod-mt7615e wpad-basic
endef
TARGET_DEVICES += iodata_wn-ax1167gr2
define Device/iodata_wn-dx1167r define Device/iodata_wn-dx1167r
BLOCKSIZE := 128k BLOCKSIZE := 128k
PAGESIZE := 2048 PAGESIZE := 2048

View File

@ -72,6 +72,7 @@ ramips_setup_interfaces()
elecom,wrc-1900gst|\ elecom,wrc-1900gst|\
elecom,wrc-2533gst|\ elecom,wrc-2533gst|\
iodata,wn-ax1167gr|\ iodata,wn-ax1167gr|\
iodata,wn-ax1167gr2|\
iodata,wn-dx1167r|\ iodata,wn-dx1167r|\
iodata,wn-gx300gr|\ iodata,wn-gx300gr|\
iodata,wnpr2600g|\ iodata,wnpr2600g|\
@ -223,6 +224,7 @@ ramips_setup_macs()
xiaoyu,xy-c5) xiaoyu,xy-c5)
wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1) wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1)
;; ;;
iodata,wn-ax1167gr2|\
iodata,wn-dx1167r|\ iodata,wn-dx1167r|\
xiaomi,mir3g-v2) xiaomi,mir3g-v2)
wan_mac=$(mtd_get_mac_binary factory 0xe006) wan_mac=$(mtd_get_mac_binary factory 0xe006)

View File

@ -53,6 +53,7 @@ platform_do_upgrade() {
xiaomi,mir3p) xiaomi,mir3p)
nand_do_upgrade "$1" nand_do_upgrade "$1"
;; ;;
iodata,wn-ax1167gr2|\
iodata,wn-dx1167r) iodata,wn-dx1167r)
iodata_mstc_upgrade_prepare iodata_mstc_upgrade_prepare
nand_do_upgrade "$1" nand_do_upgrade "$1"