ramips: add support for xiaomi RA75 Range Extender

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>
This commit is contained in:
Jo Deisenhofer 2022-12-02 16:41:13 +01:00 committed by Hauke Mehrtens
parent ab402f3d23
commit f204c812e9
2 changed files with 131 additions and 0 deletions

View File

@ -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>;
};
};

View 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