Skip to content

Commit

Permalink
ramips: add support for Motorola MWR03
Browse files Browse the repository at this point in the history
Specifications:
* SOC: MT7628AN + MT7612E
* ROM: 8 MiB Flash
* RAM: 64 MiB DDR2
* WAN: 10/100M *1
* LAN: 10/100M *3
* Button: Reset *1
* LEDs: orange *1, white *1
* Antennas: 2.4 GHz *2 + 5 GHz *2
* TTL Baudrate: 57600
* TFTP Upgrade: IP: 192.168.51.1, Server: 192.168.51.100

MAC addresses as verified by OEM firmware:

use   address   source
2g    *:d8      factory 0x0004 (label)
5g    *:d9      factory 0x8004
LAN   *:d7      factory $label -1
WAN   *:da      factory $label +2

Installation (TFTP + U-Boot):
 * Connect device with a TTL cable and open a serial session by
   PuTTY.
 * Press "2" when booting to select "Load system code then write
   to Flash via TFTP".
 * Configure the IP of local host server.
 * Upload firmware by tftpd64, it will boot when write instruction
   is executed.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[fix DTS line endings, fix label MAC address, adjust status LED
 names, convert mtd-mac-address-increment to mac-address-increment]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
  • Loading branch information
DragonBluep authored and adschm committed Aug 24, 2021
1 parent fcc075e commit 0914328
Show file tree
Hide file tree
Showing 3 changed files with 157 additions and 0 deletions.
141 changes: 141 additions & 0 deletions target/linux/ramips/dts/mt7628an_motorola_mwr03.dts
@@ -0,0 +1,141 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

#include "mt7628an.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

/ {
model = "Motorola MWR03";
compatible = "motorola,mwr03", "mediatek,mt7628an-soc";

aliases {
led-boot = &led_status_orange;
led-failsafe = &led_status_orange;
led-running = &led_status_white;
led-upgrade = &led_status_orange;
};

keys {
compatible = "gpio-keys";

reset {
label = "reset";
gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};

leds {
compatible = "gpio-leds";

led_status_orange: status_orange {
label = "orange:status";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};

led_status_white: status_white {
label = "white:status";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};
};
};

&spi0 {
status = "okay";

flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <80000000>;
m25p,fast-read;

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 0x7b0000>;
};
};
};
};

&state_default {
gpio {
groups = "i2c", "i2s";
function = "gpio";
};
};

&usbphy {
status = "disabled";
};

&ehci {
status = "disabled";
};

&ohci {
status = "disabled";
};

&ethernet {
nvmem-cells = <&macaddr_factory_4>;
nvmem-cell-names = "mac-address";
mac-address-increment = <(-1)>;
};

&esw {
mediatek,portmap = <0x3e>;
mediatek,portdisable = <0x30>;
};

&pcie {
status = "okay";
};

&pcie0 {
wifi@0,0 {
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
};
};

&wmac {
status = "okay";

mediatek,mtd-eeprom = <&factory 0x0>;
};

&factory {
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;

macaddr_factory_4: macaddr@4 {
reg = <0x4 0x6>;
};
};
8 changes: 8 additions & 0 deletions target/linux/ramips/image/mt76x8.mk
Expand Up @@ -278,6 +278,14 @@ define Device/minew_g1-c
endef
TARGET_DEVICES += minew_g1-c

define Device/motorola_mwr03
IMAGE_SIZE := 7872k
DEVICE_VENDOR := Motorola
DEVICE_MODEL := MWR03
DEVICE_PACKAGES := kmod-mt76x2
endef
TARGET_DEVICES += motorola_mwr03

define Device/netgear_r6020
$(Device/netgear_sercomm_nor)
IMAGE_SIZE := 7104k
Expand Down
8 changes: 8 additions & 0 deletions target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
Expand Up @@ -109,6 +109,10 @@ ramips_setup_interfaces()
ucidef_add_switch "switch0" \
"0:lan" "1:lan" "2:lan" "6@eth0"
;;
motorola,mwr03)
ucidef_add_switch "switch0" \
"1:lan" "2:lan" "3:lan" "0:wan" "6@eth0"
;;
netgear,r6020|\
netgear,r6080|\
netgear,r6120)
Expand Down Expand Up @@ -216,6 +220,10 @@ ramips_setup_macs()
mercury,mac1200r-v2)
wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory_info 0xd)" 1)
;;
motorola,mwr03)
label_mac=$(mtd_get_mac_binary factory 0x4)
wan_mac=$(macaddr_add "$label_mac" 2)
;;
onion,omega2|\
onion,omega2p|\
vocore,vocore2|\
Expand Down

0 comments on commit 0914328

Please sign in to comment.