From 1e8536f1175d3fdf1d7f6b39e56673d7df5e6db3 Mon Sep 17 00:00:00 2001 From: AmadeusGhost <42570690+AmadeusGhost@users.noreply.github.com> Date: Sun, 19 Jul 2020 19:09:26 +0800 Subject: [PATCH] ramips: improve ac2100/dir882 support (#5136) --- .../ramips/dts/mt7621_dlink_dir-867-a1.dts | 40 +++++++++++++ .../ramips/dts/mt7621_dlink_dir-878-a1.dts | 16 ++++-- .../ramips/dts/mt7621_dlink_dir-882-a1.dts | 29 +++++++--- ..._dir.dtsi => mt7621_dlink_dir-8xx-a1.dtsi} | 7 +-- .../ramips/dts/mt7621_motorola_mr2600.dts | 12 ++-- .../linux/ramips/dts/mt7621_xiaomi_mir3g.dts | 27 +++------ .../dts/mt7621_xiaomi_router-ac2100.dtsi | 2 - target/linux/ramips/image/mt7621.mk | 56 ++++++++++--------- .../mt7621/base-files/etc/board.d/01_leds | 10 +++- .../mt7621/base-files/etc/board.d/02_network | 11 +++- 10 files changed, 136 insertions(+), 74 deletions(-) create mode 100644 target/linux/ramips/dts/mt7621_dlink_dir-867-a1.dts rename target/linux/ramips/dts/{mt7621_dlink_dir.dtsi => mt7621_dlink_dir-8xx-a1.dtsi} (92%) diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-867-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-867-a1.dts new file mode 100644 index 000000000..34ddbeaec --- /dev/null +++ b/target/linux/ramips/dts/mt7621_dlink_dir-867-a1.dts @@ -0,0 +1,40 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "mt7621_dlink_dir-8xx-a1.dtsi" + +/ { + compatible = "dlink,dir-867-a1", "mediatek,mt7621-soc"; + model = "D-Link DIR-867 A1"; + + aliases { + led-boot = &led_power_orange; + led-failsafe = &led_power_green; + led-running = &led_power_green; + led-upgrade = &led_net_orange; + }; + + leds { + compatible = "gpio-leds"; + + led_power_orange: power_orange { + label = "dir-867-a1:orange:power"; + gpios = <&gpio 8 GPIO_ACTIVE_LOW>; + }; + + led_power_green: power_green { + label = "dir-867-a1:green:power"; + gpios = <&gpio 16 GPIO_ACTIVE_LOW>; + }; + + led_net_orange: net_orange { + label = "dir-867-a1:orange:net"; + gpios = <&gpio 4 GPIO_ACTIVE_LOW>; + }; + + net_green { + label = "dir-867-a1:green:net"; + gpios = <&gpio 3 GPIO_ACTIVE_LOW>; + }; + }; +}; diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-878-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-878-a1.dts index 7808e2baf..e2f569f40 100644 --- a/target/linux/ramips/dts/mt7621_dlink_dir-878-a1.dts +++ b/target/linux/ramips/dts/mt7621_dlink_dir-878-a1.dts @@ -1,14 +1,18 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT /dts-v1/; -#include "mt7621_dlink_dir.dtsi" - -#include -#include +#include "mt7621_dlink_dir-8xx-a1.dtsi" / { - compatible = "dlink,dlink-dir878-a1", "mediatek,mt7621-soc"; - model = "D-Link DIR878 A1"; + compatible = "dlink,dir-878-a1", "mediatek,mt7621-soc"; + model = "D-Link DIR-878 A1"; + + aliases { + led-boot = &led_power_orange; + led-failsafe = &led_power_green; + led-running = &led_power_green; + led-upgrade = &led_net_orange; + }; leds { compatible = "gpio-leds"; diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-882-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-882-a1.dts index 0ea2e3697..11f70ecf3 100644 --- a/target/linux/ramips/dts/mt7621_dlink_dir-882-a1.dts +++ b/target/linux/ramips/dts/mt7621_dlink_dir-882-a1.dts @@ -1,14 +1,18 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT /dts-v1/; -#include "mt7621_dlink_dir.dtsi" - -#include -#include +#include "mt7621_dlink_dir-8xx-a1.dtsi" / { - compatible = "dlink,dlink-dir882-a1", "mediatek,mt7621-soc"; - model = "D-Link DIR882 A1"; + compatible = "dlink,dir-882-a1", "mediatek,mt7621-soc"; + model = "D-Link DIR-882 A1"; + + aliases { + led-boot = &led_power_orange; + led-failsafe = &led_power_green; + led-running = &led_power_green; + led-upgrade = &led_net_orange; + }; leds { compatible = "gpio-leds"; @@ -33,10 +37,17 @@ gpios = <&gpio 3 GPIO_ACTIVE_LOW>; }; - usb { - label = "dir-882-a1:green:usb"; + usb2 { + label = "dir-882-a1:green:usb2"; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + trigger-sources = <&ehci_port2>; + linux,default-trigger = "usbport"; + }; + + usb3 { + label = "dir-882-a1:green:usb3"; gpios = <&gpio 14 GPIO_ACTIVE_LOW>; - trigger-sources = <&xhci_ehci_port1>, <&ehci_port2>; + trigger-sources = <&xhci_ehci_port1>; linux,default-trigger = "usbport"; }; }; diff --git a/target/linux/ramips/dts/mt7621_dlink_dir.dtsi b/target/linux/ramips/dts/mt7621_dlink_dir-8xx-a1.dtsi similarity index 92% rename from target/linux/ramips/dts/mt7621_dlink_dir.dtsi rename to target/linux/ramips/dts/mt7621_dlink_dir-8xx-a1.dtsi index 6088bb872..55c51be6d 100644 --- a/target/linux/ramips/dts/mt7621_dlink_dir.dtsi +++ b/target/linux/ramips/dts/mt7621_dlink_dir-8xx-a1.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -/dts-v1/; #include "mt7621.dtsi" @@ -8,10 +7,6 @@ / { aliases { - led-boot = &led_power_orange; - led-failsafe = &led_power_orange; - led-running = &led_power_green; - led-upgrade = &led_power_green; label-mac-device = &gmac0; }; @@ -48,7 +43,7 @@ flash@0 { compatible = "jedec,spi-nor"; reg = <0>; - spi-max-frequency = <10000000>; + spi-max-frequency = <50000000>; partitions { compatible = "fixed-partitions"; diff --git a/target/linux/ramips/dts/mt7621_motorola_mr2600.dts b/target/linux/ramips/dts/mt7621_motorola_mr2600.dts index 481c2b8d1..4dcad6cda 100644 --- a/target/linux/ramips/dts/mt7621_motorola_mr2600.dts +++ b/target/linux/ramips/dts/mt7621_motorola_mr2600.dts @@ -1,15 +1,19 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT /dts-v1/; -#include "mt7621_dlink_dir.dtsi" - -#include -#include +#include "mt7621_dlink_dir-8xx-a1.dtsi" / { compatible = "motorola,motorola-mr2600", "mediatek,mt7621-soc"; model = "Motorola MR2600"; + aliases { + led-boot = &led_power_orange; + led-failsafe = &led_power_green; + led-running = &led_power_green; + led-upgrade = &led_net_orange; + }; + leds { compatible = "gpio-leds"; diff --git a/target/linux/ramips/dts/mt7621_xiaomi_mir3g.dts b/target/linux/ramips/dts/mt7621_xiaomi_mir3g.dts index 60786e421..63d493f9d 100644 --- a/target/linux/ramips/dts/mt7621_xiaomi_mir3g.dts +++ b/target/linux/ramips/dts/mt7621_xiaomi_mir3g.dts @@ -14,7 +14,7 @@ led-failsafe = &led_status_red; led-running = &led_status_blue; led-upgrade = &led_status_yellow; - label-mac-device = &gmac0; + label-mac-device = ðernet; }; chosen { @@ -190,28 +190,19 @@ }; }; -&gmac0 { +ðernet { + compatible = "mediatek,ralink-mt7621-eth"; + mediatek,switch = <&gsw>; mtd-mac-address = <&factory 0xe006>; }; &switch0 { - ports { - port@1 { - status = "okay"; - label = "wan"; - mtd-mac-address = <&factory 0xe000>; - }; + /delete-property/ compatible; + phy-mode = "rgmii"; +}; - port@2 { - status = "okay"; - label = "lan2"; - }; - - port@3 { - status = "okay"; - label = "lan1"; - }; - }; +&gsw { + compatible = "mediatek,ralink-mt7621-gsw"; }; &state_default { diff --git a/target/linux/ramips/dts/mt7621_xiaomi_router-ac2100.dtsi b/target/linux/ramips/dts/mt7621_xiaomi_router-ac2100.dtsi index aa499df89..932da173e 100644 --- a/target/linux/ramips/dts/mt7621_xiaomi_router-ac2100.dtsi +++ b/target/linux/ramips/dts/mt7621_xiaomi_router-ac2100.dtsi @@ -6,7 +6,6 @@ #include / { - chosen { bootargs = "console=ttyS0,115200n8"; }; @@ -33,7 +32,6 @@ partition@0 { label = "Bootloader"; reg = <0x0 0x80000>; - read-only; }; partition@80000 { diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index af8a4359c..5ee6afc48 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -212,6 +212,12 @@ define Device/buffalo_wsr-600dhp endef TARGET_DEVICES += buffalo_wsr-600dhp +define Device/dlink_dir-8xx-a1 + IMAGE_SIZE := 16000k + DEVICE_VENDOR := D-Link + DEVICE_PACKAGES := kmod-mt7615d luci-app-mtwifi uboot-envtools +endef + define Device/dlink_dir-860l-b1 $(Device/seama) BLOCKSIZE := 64k @@ -228,22 +234,25 @@ define Device/dlink_dir-860l-b1 endef TARGET_DEVICES += dlink_dir-860l-b1 +define Device/dlink_dir-867-a1 + $(Device/dlink_dir-8xx-a1) + DEVICE_MODEL := DIR-867 + DEVICE_VARIANT := A1 +endef +TARGET_DEVICES += dlink_dir-867-a1 + define Device/dlink_dir-878-a1 - IMAGE_SIZE := 16064k - DEVICE_VENDOR := D-Link + $(Device/dlink_dir-8xx-a1) DEVICE_MODEL := DIR-878 DEVICE_VARIANT := A1 - DEVICE_PACKAGES := kmod-mt7615d luci-app-mtwifi uboot-envtools endef TARGET_DEVICES += dlink_dir-878-a1 define Device/dlink_dir-882-a1 - IMAGE_SIZE := 16064k - DEVICE_VENDOR := D-Link + $(Device/dlink_dir-8xx-a1) DEVICE_MODEL := DIR-882 DEVICE_VARIANT := A1 - DEVICE_PACKAGES := kmod-mt7615d kmod-usb3 kmod-usb-ledtrig-usbport \ - luci-app-mtwifi uboot-envtools + DEVICE_PACKAGES += kmod-usb3 kmod-usb-ledtrig-usbport endef TARGET_DEVICES += dlink_dir-882-a1 @@ -1032,23 +1041,8 @@ define Device/xiaomi_mir4 endef TARGET_DEVICES += xiaomi_mir4 -define Device/xiaomi_mi-router-ac2100 - BLOCKSIZE := 128k - PAGESIZE := 2048 - KERNEL_SIZE := 4096k - IMAGE_SIZE := 120320k - UBINIZE_OPTS := -E 5 - IMAGES += kernel1.bin rootfs0.bin - IMAGE/kernel1.bin := append-kernel - IMAGE/rootfs0.bin := append-ubi | check-size - IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata - DEVICE_VENDOR := Xiaomi - DEVICE_MODEL := Mi Router AC2100 - DEVICE_PACKAGES := kmod-mt7603e kmod-mt7615d luci-app-mtwifi uboot-envtools -endef -TARGET_DEVICES += xiaomi_mi-router-ac2100 - -define Device/xiaomi_redmi-router-ac2100 +define Device/xiaomi-ac2100 + $(Device/uimage-lzma-loader) BLOCKSIZE := 128k PAGESIZE := 2048 KERNEL_SIZE := 4096k @@ -1058,11 +1052,21 @@ define Device/xiaomi_redmi-router-ac2100 IMAGE/kernel1.bin := append-kernel IMAGE/rootfs0.bin := append-ubi | check-size IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata - IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | check-size $$$$(IMAGE_SIZE) + IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | check-size DEVICE_VENDOR := Xiaomi - DEVICE_MODEL := Redmi Router AC2100 DEVICE_PACKAGES := kmod-mt7603e kmod-mt7615d luci-app-mtwifi uboot-envtools endef + +define Device/xiaomi_mi-router-ac2100 + $(Device/xiaomi-ac2100) + DEVICE_MODEL := Mi Router AC2100 +endef +TARGET_DEVICES += xiaomi_mi-router-ac2100 + +define Device/xiaomi_redmi-router-ac2100 + $(Device/xiaomi-ac2100) + DEVICE_MODEL := Redmi Router AC2100 +endef TARGET_DEVICES += xiaomi_redmi-router-ac2100 define Device/xiaoyu_xy-c5 diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds index e6af879dc..85b9bc0df 100755 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds @@ -28,6 +28,7 @@ d-team,pbr-m1) dlink,dir-860l-b1) ucidef_set_led_netdev "wan" "wan" "$boardname:green:net" "wan" ;; +dlink,dir-867-a1|\ dlink,dir-878-a1|\ dlink,dir-882-a1|\ motorola,mr2600) @@ -84,8 +85,10 @@ tplink,re650-v1) ucidef_set_led_netdev "eth_act" "LAN act" "$boardname:green:eth_act" "lan" "tx rx" ucidef_set_led_netdev "eth_link" "LAN link" "$boardname:green:eth_link" "lan" "link" ;; -xzwifi,creativebox-v1) - ucidef_set_led_netdev "internet" "internet" "$boardname:blue:internet" "wan" +xiaomi,mir3g) + ucidef_set_led_switch "wan-amber" "WAN (amber)" "$boardname:amber:wan" "switch0" "0x02" "0x08" + ucidef_set_led_switch "lan1-amber" "LAN1 (amber)" "$boardname:amber:lan1" "switch0" "0x08" "0x08" + ucidef_set_led_switch "lan2-amber" "LAN2 (amber)" "$boardname:amber:lan2" "switch0" "0x04" "0x08" ;; xiaomi,mi-router-ac2100) ucidef_set_led_switch "wan" "wan" "$boardname:blue:wan" "switch0" "0x1" @@ -93,6 +96,9 @@ xiaomi,mi-router-ac2100) xiaomi,redmi-router-ac2100) ucidef_set_led_switch "wan" "wan" "$boardname:white:wan" "switch0" "0x1" ;; +xzwifi,creativebox-v1) + ucidef_set_led_netdev "internet" "internet" "$boardname:blue:internet" "wan" + ;; youhua,wr1200js) ucidef_set_led_netdev "internet" "INTERNET" "$boardname:green:wan" "wan" ;; diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network index eae2f82a2..2d65c7c48 100755 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network @@ -54,6 +54,7 @@ ramips_setup_interfaces() ucidef_set_interfaces_lan_wan "lan2 lan3 lan4 lan5" "wan" ;; netgear,r6850|\ + dlink,dir-867-a1|\ dlink,dir-878-a1|\ dlink,dir-882-a1|\ motorola,mr2600) @@ -70,11 +71,15 @@ ramips_setup_interfaces() ubnt,edgerouter-x-sfp) ucidef_set_interface_lan_wan "eth1 eth2 eth3 eth4 eth5" "eth0" ;; + xiaomi,mir3g) + ucidef_add_switch "switch0" \ + "2:lan:2" "3:lan:1" "1:wan" "6t@eth0" + ;; xiaomi,mi-router-ac2100|\ xiaomi,redmi-router-ac2100) ucidef_add_switch "switch0" \ "0:wan" "2:lan:1" "3:lan:2" "4:lan:3" "6@eth0" - ucidef_set_interface_lan "eth0.1 ra0 rai0 apcli0 apclii0" + ucidef_set_interface_lan "eth0.2 ra0 rai0 apcli0 apclii0" ;; *) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan" @@ -139,6 +144,10 @@ ramips_setup_macs() wan_mac=$label_mac lan_mac=$(macaddr_add $label_mac 1) ;; + phicomm,k2p) + wan_mac=$(mtd_get_mac_binary factory 0xe006) + ;; + xiaomi,mir3g|\ xiaomi,mi-router-ac2100|\ xiaomi,redmi-router-ac2100) lan_mac=$(cat /sys/class/net/eth0/address)