Skip to content

Commit

Permalink
meditek: add support for RouteRich AX3000 - MediaTek MT7981 RFB
Browse files Browse the repository at this point in the history
NoNameChina router - RouteRich AX3000 - MediaTek MT7981 RFB - ZROUTER R-ZCQ1
SoC: MT7981BA
RAM: ESMT M15T2G16128A (1G)
Flash: SPI-NAND ESMT F50L1G41LB (128M)
Switch: MT7531AE
Wi-Fi: MT7976GN
PCB: ZR-3020_V1.2
USB 2.0x1
Button: 2 (Mesh, Reset)
LED: 7 GPIO (Power, WiFi, MESH, LAN1-3, WAN)

Signed-off-by: Maximilian Weinmann <[email protected]>

fix init

fix

fix lan

Signed-off-by: mishar

some changes

some changes

Signed-off-by: Mikhail Zhilkin <[email protected]>
(cherry picked from commit 6848375)

Update mt7981b-routerich-ax3000.dts

Update mt7981b-routerich-ax3000.dts

fff

Update mt7981b-routerich-ax3000.dts

Add files via upload

fix usb

Signed-off-by: Mikhail Zhilkin <[email protected]>
  • Loading branch information
MaxS0niX authored and csharper2005 committed Oct 15, 2023
1 parent bd4f415 commit 970e474
Show file tree
Hide file tree
Showing 7 changed files with 357 additions and 2 deletions.
3 changes: 2 additions & 1 deletion package/boot/uboot-envtools/files/mediatek_filogic
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ bananapi,bpi-r3)
glinet,gl-mt3000)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x20000"
;;
mercusys,mr90x-v1)
mercusys,mr90x-v1|\
routerich,ax3000)
local envdev=/dev/mtd$(find_mtd_index "u-boot-env")
ubootenv_add_uci_config "$envdev" "0x0" "0x20000" "0x20000" "1"
;;
Expand Down
317 changes: 317 additions & 0 deletions target/linux/mediatek/dts/mt7981b-routerich-ax3000.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,317 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/dts-v1/;
#include "mt7981.dtsi"

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

/ {
model = "Routerich AX3000";
compatible = "routerich,ax3000", "mediatek,mt7981";

aliases {
label-mac-device = &wan;

led-boot = &led_status_blue;
led-failsafe = &led_status_blue;
led-running = &led_status_blue;
led-upgrade = &led_status_blue;

serial0 = &uart0;
};

chosen {
stdout-path = "serial0:115200n8";
};

memory {
reg = <0 0x40000000 0 0x10000000>;
};

gpio-keys {
compatible = "gpio-keys";

mesh {
label = "mesh";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&pio 0 GPIO_ACTIVE_LOW>;
};

reset {
label = "Reset Button";
gpios = <&pio 1 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};

leds {
compatible = "gpio-leds";

led-0 {
label = "blue:wifi_5g";
gpios = <&pio 5 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1radio";
};

led-1 {
label = "amber:wan";
gpios = <&pio 6 GPIO_ACTIVE_HIGH>;
};

led_status_blue: led-2 {
label = "blue:status";
gpios = <&pio 7 GPIO_ACTIVE_LOW>;
panic-indicator;
};

led-3 {
label = "blue:lan1";
gpios = <&pio 9 GPIO_ACTIVE_LOW>;
};

led-4 {
label = "blue:lan2";
gpios = <&pio 10 GPIO_ACTIVE_LOW>;
};

led-5 {
label = "blue:lan3";
gpios = <&pio 11 GPIO_ACTIVE_LOW>;
};

led-6 {
label = "blue:wan";
gpios = <&pio 12 GPIO_ACTIVE_LOW>;
};

led-7 {
label = "blue:wifi_2g";
gpios = <&pio 34 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0radio";
};

led-8 {
label = "blue:mesh";
gpios = <&pio 35 GPIO_ACTIVE_LOW>;
};
};
};

&eth {
status = "okay";

gmac0: mac@0 {
compatible = "mediatek,eth-mac";
reg = <0>;
phy-mode = "2500base-x";

nvmem-cells = <&macaddr_factory_2a>;
nvmem-cell-names = "mac-address";

fixed-link {
speed = <2500>;
full-duplex;
pause;
};
};
};

&mdio_bus {
switch: switch@0 {
compatible = "mediatek,mt7531";
reg = <31>;
reset-gpios = <&pio 39 GPIO_ACTIVE_HIGH>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&pio>;
interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
};
};

&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_flash_pins>;
status = "okay";

spi_nand@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "spi-nand";
reg = <0>;

spi-max-frequency = <52000000>;

spi-cal-enable;
spi-cal-mode = "read-data";
spi-cal-datalen = <7>;
spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>;
spi-cal-addrlen = <5>;
spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>;

spi-tx-buswidth = <4>;
spi-rx-buswidth = <4>;
mediatek,nmbm;
mediatek,bmt-max-ratio = <1>;
mediatek,bmt-max-reserved-blocks = <64>;

mediatek,bmt-remap-range =
<0x0 0x580000>,
<0x6580000 0x6680000>;

partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

partition@0_all {
label = "spi0.0";
reg = <0x0 0x8000000>;
read-only;
};

partition@0 {
label = "BL2";
reg = <0x0 0x100000>;
read-only;
};

partition@100000 {
label = "u-boot-env";
reg = <0x100000 0x80000>;
};

factory: partition@180000 {
label = "Factory";
reg = <0x180000 0x200000>;
read-only;

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

macaddr_factory_24: macaddr@24 {
reg = <0x24 0x6>;
};

macaddr_factory_2a: macaddr@2a {
reg = <0x2a 0x6>;
};
};

partition@380000 {
label = "FIP";
reg = <0x380000 0x200000>;
read-only;
};

partition@580000 {
label = "ubi";
reg = <0x580000 0x4000000>;
};

partition@4580000 {
label = "firmware_backup";
reg = <0x4580000 0x2000000>;
read-only;
};

partition@6580000 {
label = "zrsave";
reg = <0x6580000 0x100000>;
read-only;
};

partition@6680000 {
label = "config2";
reg = <0x6680000 0x100000>;
read-only;
};
};
};
};

&switch {
ports {
#address-cells = <1>;
#size-cells = <0>;

port@1 {
reg = <0>;
label = "lan1";
};

port@2 {
reg = <2>;
label = "lan2";
};

port@3 {
reg = <3>;
label = "lan3";
};

wan: port@4 {
reg = <4>;
label = "wan";

nvmem-cells = <&macaddr_factory_24>;
nvmem-cell-names = "mac-address";
};

port@6 {
reg = <6>;
ethernet = <&gmac0>;
phy-mode = "2500base-x";

fixed-link {
speed = <2500>;
full-duplex;
pause;
};
};
};
};

&pio {
spi0_flash_pins: spi0-pins {
mux {
function = "spi";
groups = "spi0", "spi0_wp_hold";
};

conf-pu {
pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
drive-strength = <8>;
mediatek,pull-up-adv = <0>; /* bias-disable */
};

conf-pd {
pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
drive-strength = <8>;
mediatek,pull-up-adv = <0>; /* bias-disable */
};
};
};

&uart0 {
status = "okay";
};

&usb_phy {
status = "okay";
};

&watchdog {
status = "okay";
};

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

status = "okay";
};

&xhci {
status = "okay";
};
7 changes: 7 additions & 0 deletions target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@ mercusys,mr90x-v1)
ucidef_set_led_netdev "lan2" "lan2" "green:lan2" "lan2" "link tx rx"
ucidef_set_led_netdev "wan" "wan" "green:wan" "eth1" "link tx rx"
;;
routerich,ax3000)
ucidef_set_led_netdev "lan1" "lan1" "blue:lan1" "lan1" "link tx rx"
ucidef_set_led_netdev "lan2" "lan2" "blue:lan2" "lan2" "link tx rx"
ucidef_set_led_netdev "lan3" "lan3" "blue:lan3" "lan3" "link tx rx"
ucidef_set_led_netdev "wan" "wan" "blue:wan" "wan" "link tx rx"
ucidef_set_led_netdev "wan-off" "wan-off" "amber:wan" "wan" "link"
;;
netgear,wax220)
ucidef_set_led_netdev "eth0" "LAN" "green:lan" "eth0"
ucidef_set_led_netdev "wlan2g" "WLAN2G" "blue:wlan2g" "phy0-ap0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ mediatek_setup_interfaces()
bananapi,bpi-r3)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 sfp2" "eth1 wan"
;;
cudy,wr3000-v1)
cudy,wr3000-v1|\
routerich,ax3000)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan"
;;
glinet,gl-mt3000)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ case "$board" in
tplink,tl-xdr6088)
[ "$PHYNBR" = "0" ] && get_mac_label > /sys${DEVPATH}/macaddress
;;
routerich,ax3000|\
zyxel,ex5601-t0)
addr=$(mtd_get_mac_binary "Factory" 0x4)
[ "$PHYNBR" = "1" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress
Expand Down
12 changes: 12 additions & 0 deletions target/linux/mediatek/filogic/base-files/lib/preinit/06_fix_usb
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
preinit_fix_usb() {
case $(board_name) in
routerich,ax3000)
usb3_path="/sys/bus/usb/devices/usb2/authorized"
[ -e $usb3_path ] && echo 0 > $usb3_path
;;
*)
;;
esac
}

boot_hook_add preinit_main preinit_fix_usb
16 changes: 16 additions & 0 deletions target/linux/mediatek/image/filogic.mk
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,22 @@ define Device/qihoo_360t7
endef
TARGET_DEVICES += qihoo_360t7

define Device/routerich_ax3000
DEVICE_VENDOR := Routerich
DEVICE_MODEL := AX3000
DEVICE_DTS := mt7981b-routerich-ax3000
DEVICE_DTS_DIR := ../dts
DEVICE_PACKAGES := kmod-mt7981-firmware mt7981-wo-firmware kmod-usb3
UBINIZE_OPTS := -E 5
BLOCKSIZE := 128k
PAGESIZE := 2048
IMAGE_SIZE := 65536k
KERNEL_IN_UBI := 1
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
SUPPORTED_DEVICES += mediatek,mt7981-spim-snand-rfb
endef
TARGET_DEVICES += routerich_ax3000

define Device/tplink_tl-xdr-common
DEVICE_VENDOR := TP-Link
DEVICE_DTS_DIR := ../dts
Expand Down

0 comments on commit 970e474

Please sign in to comment.