ramips: add support for xiaomi RA75 Range Extender
authorJo Deisenhofer <jo.deisenhofer@gmail.com>
Fri, 2 Dec 2022 15:41:13 +0000 (16:41 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 14 Jan 2023 18:02:21 +0000 (19:02 +0100)
This device is a 'Range extender' variant of the Xiaomi 4A router.
Its identical to the 100m non-intl/chinese version as much as it can run
the same firmware, differences being form factor, LEDs, WPS button
and one 100M port only.
The stock firmware differs significantly, being 'app managed only'.

Device specification
--------------------
SoC:      MT7628DAN MIPS_24KEc@580MHz 2.4G-n 2x2
WiFi:     MT7612EN 5G-ac 80MHz 2T2R
Flash:    16MB W25Q128BV
DRAM:     64MB built-in SoC
Switch:   built-in SoC
Ethernet: 1x10/100 Mbps
USB:      None
Antennas: 2 x external, non-detachable
LEDs:     2 programmable blue/amber
Buttons:  WPS and reset (hidden)
Housing:  Range Extender / Wall wart
Serial:   115200,8n1

MAC Addresses
-------------
All 3 MACs are read from flash and identical to stock.
Label MAC is WIFI 2G

Installation
------------
No HTML UI on this device, serial console only. The serial connector
is unpopulated but standard size and clearly marked. Flash from the
U-Boot shell at boot by choosing (2) and flashing the sysupgrade file
via tftp.

Recovery/Debricking procedures of the xiaomi 4A and variants should
work, but there currently is no official source for the stock firmware.

Signed-off-by: Jo Deisenhofer <jo.deisenhofer@gmail.com>
target/linux/ramips/dts/mt7628an_xiaomi_mi-ra75.dts [new file with mode: 0644]
target/linux/ramips/image/mt76x8.mk

diff --git a/target/linux/ramips/dts/mt7628an_xiaomi_mi-ra75.dts b/target/linux/ramips/dts/mt7628an_xiaomi_mi-ra75.dts
new file mode 100644 (file)
index 0000000..7865334
--- /dev/null
@@ -0,0 +1,121 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7628an_xiaomi_mi-router-4.dtsi"
+
+/ {
+       compatible = "xiaomi,mi-ra75", "mediatek,mt7628an-soc";
+       model = "Xiaomi Mi AC1200 WLAN Range Extender RA75";
+       aliases {
+               led-boot = &led_system_amber;
+               led-failsafe = &led_system_amber;
+               led-running = &led_system_blue;
+               led-upgrade = &led_system_amber;
+               label-mac-device = &ethernet;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_system_blue: system_blue {
+                       label = "blue:system";
+                       gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+               };
+               led_system_amber: system_amber {
+                       label = "amber:system";
+                       gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+               };
+               led_signal_blue: signal_blue {
+                       label = "blue:signal";
+                       gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+               };
+               led_signal_amber: signal_amber {
+                       label = "amber:signal";
+                       gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RESTART>;
+               };
+               wps {
+                       label = "wps";
+                       gpios = <&gpio 67 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_WPS_BUTTON>;
+               };
+       };
+
+};
+
+&partitions {
+       partition@60000 {
+               label = "overlay";
+               reg = <0x60000 0x100000>;
+               read-only;
+       };
+
+       partition@160000 {
+               label = "firmware";
+               reg = <0x160000 0xea0000>;
+               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>;
+       };
+};
+
+&ethernet {
+       nvmem-cells = <&macaddr_factory_28>;
+       nvmem-cell-names = "mac-address";
+};
+
+&wmac {
+       ralink,mtd-eeprom = <&factory 0x0>;
+};
+
+
+&esw {
+       mediatek,portmap = <0x3e>;
+       mediatek,portdisable = <0x2a>;
+};
+
+&ehci {
+       status = "disabled";
+};
+
+&ohci {
+       status = "disabled";
+};
+
+&factory {
+       compatible = "nvmem-cells";
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       macaddr_factory_4: macaddr@4 {
+               reg = <0x4 0x6>;
+       };
+
+       macaddr_factory_28: macaddr@28 {
+               reg = <0x28 0x6>;
+       };
+       macaddr_factory_8004: macaddr@8004 {
+               reg = <0x8004 0x6>;
+       };
+};
+
+
index 9db2d9e60c22ee0904cbfe4367b8f4bc397164bf..f48287281318116166ac56d45c9abf26d34035ab 100644 (file)
@@ -1011,6 +1011,16 @@ define Device/xiaomi_miwifi-nano
 endef
 TARGET_DEVICES += xiaomi_miwifi-nano
 
+define Device/xiaomi_mi-ra75
+  IMAGE_SIZE := 14976k
+  DEVICE_VENDOR := Xiaomi
+  DEVICE_MODEL := MiWiFi Range Extender AC1200 
+  DEVICE_VARIANT := RA75
+  DEVICE_PACKAGES := kmod-mt76x2
+  SUPPORTED_DEVICES += xiaomi,mira75
+endef
+TARGET_DEVICES += xiaomi_mi-ra75
+
 define Device/zbtlink_zbt-we1226
   IMAGE_SIZE := 7872k
   DEVICE_VENDOR := Zbtlink