From a09fc515a5967cc5d5d7dd43687b818f73f76687 Mon Sep 17 00:00:00 2001 From: Sorin Pop Date: Tue, 8 Dec 2020 14:07:59 +0100 Subject: [PATCH] ramips: add support for Xiaomi Mi Router 4AC (100M Edition) This router seems to have the same hardware as Xiaomi Mi Router 4A (100M Edition) but it uses a different U-Boot. SPECIFICATIONS: - SoC: MediaTek MT7628AN - Flash: 16MB (Winbond W25Q128JV) - RAM: 64MB - Serial: As marked on PCB, 3V3 logic, baudrate is 115200 - Ethernet: 3x 10/100 Mbps (switched, 2x LAN + WAN) - WIFI0: MT7628AN 2.4GHz 802.11b/g/n - WIFI1: MT7612EN 5GHz 802.11ac - Antennas: 4x external (2 per radio), non-detachable - LEDs: Programmable power-LED (two-colored, yellow/blue) Non-programmable internet-LED (shows WAN-activity) - Buttons: Reset INSTALLATION: 1. Connect to the serial port of the router and power it up. If you get a prompt asking for boot-mode, go to step 3. 2. Unplug the router after > Erasing SPI Flash... > raspi_erase: offs:20000 len:10000 occurs on the serial port. Plug the router back in. 3. At the prompt select option 2 (Load system code then write to Flash via TFTP.) 4. Enter 192.168.1.1 as the device IP and 192.168.1.2 as the Server-IP. 5. Connect your computer to LAN1 and assign it as 192.168.1.2/24. 6. Serve the sysupgrade image via TFTP Signed-off-by: Sorin Pop [use full name, use DTSI, add separate WAN MAC address] Signed-off-by: Adrian Schmutzler --- .../mt7628an_xiaomi_mi-router-4ac-100m.dts | 45 +++++++++++++++++++ target/linux/ramips/image/mt76x8.mk | 9 ++++ .../mt76x8/base-files/etc/board.d/02_network | 4 +- 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 target/linux/ramips/dts/mt7628an_xiaomi_mi-router-4ac-100m.dts diff --git a/target/linux/ramips/dts/mt7628an_xiaomi_mi-router-4ac-100m.dts b/target/linux/ramips/dts/mt7628an_xiaomi_mi-router-4ac-100m.dts new file mode 100644 index 0000000000..b3a8a9bd60 --- /dev/null +++ b/target/linux/ramips/dts/mt7628an_xiaomi_mi-router-4ac-100m.dts @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "mt7628an_xiaomi_mi-router-4.dtsi" + +/ { + compatible = "xiaomi,mi-router-4ac-100m", "mediatek,mt7628an-soc"; + model = "Xiaomi Mi Router 4AC (100M Edition)"; +}; + +&partitions { + partition@60000 { + label = "overlay"; + reg = <0x60000 0x200000>; + read-only; + }; + + partition@260000 { + label = "firmware"; + reg = <0x260000 0xda0000>; + compatible = "denx,uimage"; + }; +}; + +&pcie { + status = "okay"; +}; + +&pcie0 { + wifi@0,0 { + compatible = "mediatek,mt76"; + reg = <0x0000 0 0 0 0>; + mediatek,mtd-eeprom = <&factory 0x8000>; + ieee80211-freq-limit = <5000000 6000000>; + }; +}; + +ðernet { + mtd-mac-address = <&factory 0x4>; + mtd-mac-address-increment = <(-1)>; +}; + +&esw { + mediatek,portmap = <0x3e>; + mediatek,portdisable = <0x2a>; +}; diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk index 00593dd6f5..f5db72bdb7 100644 --- a/target/linux/ramips/image/mt76x8.mk +++ b/target/linux/ramips/image/mt76x8.mk @@ -753,6 +753,15 @@ define Device/xiaomi_mi-router-4a-100m endef TARGET_DEVICES += xiaomi_mi-router-4a-100m +define Device/xiaomi_mi-router-4ac-100m + IMAGE_SIZE := 13952k + DEVICE_VENDOR := Xiaomi + DEVICE_MODEL := Mi Router 4AC + DEVICE_VARIANT := 100M Edition + DEVICE_PACKAGES := kmod-mt76x2 +endef +TARGET_DEVICES += xiaomi_mi-router-4ac-100m + define Device/xiaomi_mi-router-4c IMAGE_SIZE := 14976k DEVICE_VENDOR := Xiaomi diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network index fcc2630b3f..6cb818b404 100755 --- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network @@ -133,7 +133,8 @@ ramips_setup_interfaces() ucidef_add_switch "switch0" \ "0:wan" "3:lan" "4:lan" "6@eth0" ;; - xiaomi,mi-router-4a-100m) + xiaomi,mi-router-4a-100m|\ + xiaomi,mi-router-4ac-100m) ucidef_add_switch "switch0" \ "4:lan:1" "2:lan:2" "0:wan" "6@eth0" ;; @@ -239,6 +240,7 @@ ramips_setup_macs() wan_mac=$(mtd_get_mac_binary factory 0x28) ;; xiaomi,mi-router-4a-100m|\ + xiaomi,mi-router-4ac-100m|\ xiaomi,mi-router-4c) wan_mac=$(mtd_get_mac_binary factory 0x4) ;; -- 2.30.2