ramips: add support for MTC Wireless Router WR1201

MTC Wireless Router WR1201 is the OEM name of the board. It is also sold
rebranded as STRONG Dual Band Gigabit Router 1200.

Specification:
- SoC: MediaTek MT7621A (880 MHz)
- Flash: 16 MiB
- RAM: 128 MiB
- Wireless: 2.4Ghz(MT7602EN) and 5Ghz (MT7612EN)
- Ethernet speed: 10/100/1000
- Ethernet ports: 4+1
- 1x USB 3.0
- 1x microSD reader
- Serial baud rate of Bootloader and factory firmware: 57600

The OEM webinterface writes only as much bytes as listed in the
uImage header field to the flash. Also, the OEM webinterface
evaluates the name field of uImage header before flashing (the
string "WR1201_8_128")

To flash via webinterface, is mandatory to use first initramfs.bin
and after (from the OpenWrt) the sysupgrade.bin

Some notes:
- Some microSD will not work:

  mtk-sd 1e130000.sdhci: no support for card's volts
  mmc0: error -22 whilst initialising SDIO card
  mtk-sd 1e130000.sdhci: no support for card's volts
  mmc0: error -22 whilst initialising MMC card
  mtk-sd 1e130000.sdhci: no support for card's volts
  mmc0: error -22 whilst initialising SDIO card
  mtk-sd 1e130000.sdhci: card claims to support voltages below defined range
  mtk-sd 1e130000.sdhci: no support for card's volts
  mmc0: error -22 whilst initialising MMC card
  mtk-sd 1e130000.sdhci: no support for card's volts
  mmc0: error -22 whilst initialising SDIO card
  mtk-sd 1e130000.sdhci: no support for card's volts
  mmc0: error -22 whilst initialising MMC card

Signed-off-by: Valentín Kivachuk <vk18496@gmail.com>
This commit is contained in:
Valentín Kivachuk 2018-11-30 00:13:53 +01:00 committed by Mathias Kresin
parent 493c1d1766
commit 30a7ab8f61
5 changed files with 187 additions and 0 deletions

View file

@ -236,6 +236,9 @@ mr200)
ucidef_set_led_netdev "wan" "wan" "$boardname:white:wan" "usb0"
set_wifi_led "$boardname:white:wlan"
;;
mtc,wr1201)
ucidef_set_led_switch "eth_link" "LAN link" "$boardname:green:eth_link" "switch0" "0x0f"
;;
mzk-ex750np)
set_wifi_led "$boardname:red:wifi"
;;

View file

@ -102,6 +102,7 @@ ramips_setup_interfaces()
miwifi-nano|\
mt7621|\
mt7628|\
mtc,wr1201|\
mzk-750dhp|\
mzk-w300nh2|\
netgear,r6120|\

View file

@ -110,6 +110,7 @@ platform_check_image() {
mpr-a2|\
mr-102n|\
mt7628|\
mtc,wr1201|\
mzk-750dhp|\
mzk-dp150n|\
mzk-ex300np|\

View file

@ -0,0 +1,159 @@
/dts-v1/;
#include "mt7621.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
compatible = "mtc,wr1201", "mediatek,mt7621-soc";
model = "MTC Wireless Router WR1201";
aliases {
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
};
memory@0 {
device_type = "memory";
reg = <0x0 0x8000000>;
};
chosen {
bootargs = "console=ttyS0,57600";
};
gpio-leds {
compatible = "gpio-leds";
led_power: power {
label = "wr1201:green:power";
gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
};
usb {
label = "wr1201:green:usb";
gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
trigger-sources = <&xhci_ehci_port1>, <&ehci_port2>;
linux,default-trigger = "usbport";
};
eth_link {
label = "wr1201:green:eth_link";
gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
};
wps {
label = "wr1201:green:wps";
gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
};
};
gpio-keys-polled {
compatible = "gpio-keys-polled";
poll-interval = <20>;
reset {
label = "reset";
gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <10000000>;
m25p,chunked-io = <32>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "Bootloader";
reg = <0x0 0x30000>;
read-only;
};
partition@30000 {
label = "Config";
reg = <0x30000 0x10000>;
read-only;
};
factory: partition@40000 {
label = "Factory";
reg = <0x40000 0x10000>;
read-only;
};
partition@50000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x50000 0xfa0000>;
};
partition@ff0000 {
label = "Second_Config";
reg = <0xff0000 0x10000>;
read-only;
};
};
};
};
&ethernet {
mtd-mac-address = <&factory 0x4>;
};
&sdhci {
status = "okay";
};
&pcie {
status = "okay";
};
&pcie0 {
wifi@0,0 {
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
led {
led-sources = <2>;
led-active-low;
};
};
};
&pcie1 {
wifi@0,0 {
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x0000>;
ieee80211-freq-limit = <2400000 2500000>;
led {
led-sources = <2>;
led-active-low;
};
};
};
&pinctrl {
state_default: pinctrl0 {
gpio {
ralink,group = "rgmii2";
ralink,function = "gpio";
};
};
};

View file

@ -47,6 +47,19 @@ define Build/iodata-factory
fi
endef
# The OEM webinterface expects an kernel with initramfs which has the uImage
# header field ih_name.
# We don't wan't to set the header name field for the kernel include in the
# sysupgrade image as well, as this image shouldn't be accepted by the OEM
# webinterface. It will soft-brick the board.
define Build/wr1201-factory-header
mkimage -A $(LINUX_KARCH) \
-O linux -T kernel \
-C lzma -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
-n 'WR1201_8_128' -d $@ $@.new
mv $@.new $@
endef
define Build/ubnt-erx-factory-image
if [ -e $(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE) -a "$$(stat -c%s $@)" -lt "$(KERNEL_SIZE)" ]; then \
echo '21001:6' > $(1).compat; \
@ -317,6 +330,16 @@ define Device/mikrotik_rbm11g
endef
TARGET_DEVICES += mikrotik_rbm11g
define Device/mtc_wr1201
DTS := WR1201
IMAGE_SIZE := 16000k
DEVICE_TITLE := MTC Wireless Router WR1201
KERNEL_INITRAMFS := $(KERNEL_DTB) | wr1201-factory-header
DEVICE_PACKAGES := kmod-sdhci-mt7620 kmod-mt76x2 kmod-usb3 \
kmod-usb-ledtrig-usbport wpad-basic
endef
TARGET_DEVICES += mtc_wr1201
define Device/re350-v1
DTS := RE350
DEVICE_TITLE := TP-LINK RE350 v1