[openwrt/openwrt] apm821xx: migrate to DSA
LEDE Commits
lede-commits at lists.infradead.org
Sun Sep 15 04:16:49 PDT 2024
robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/5815884c3a2a6d56d4fb0d1019276caea4bba9ba
commit 5815884c3a2a6d56d4fb0d1019276caea4bba9ba
Author: Rosen Penev <rosenp at gmail.com>
AuthorDate: Mon Oct 9 13:15:52 2023 -0700
apm821xx: migrate to DSA
The qca8k driver is upstream, unlike swconfig. This applies to the mx60
and wndr4700 only. Fixed up LED definitions as well.
RTL83xx DSA for WNDAP62300/660 is not working.
Signed-off-by: Rosen Penev <rosenp at gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14037
Signed-off-by: Robert Marko <robimarko at gmail.com>
---
.../linux/apm821xx/base-files/etc/board.d/01_leds | 12 +-
.../apm821xx/base-files/etc/board.d/02_network | 3 +-
.../etc/uci-defaults/05_fix-compat-version | 2 +-
target/linux/apm821xx/dts/meraki-mx60.dts | 240 ++++++++++++++++++++-
target/linux/apm821xx/dts/netgear-wndr4700.dts | 93 ++++++--
target/linux/apm821xx/image/nand.mk | 6 +-
target/linux/apm821xx/nand/config-default | 12 +-
7 files changed, 328 insertions(+), 40 deletions(-)
diff --git a/target/linux/apm821xx/base-files/etc/board.d/01_leds b/target/linux/apm821xx/base-files/etc/board.d/01_leds
index c384d24a30..f83888deeb 100644
--- a/target/linux/apm821xx/base-files/etc/board.d/01_leds
+++ b/target/linux/apm821xx/base-files/etc/board.d/01_leds
@@ -14,14 +14,6 @@ meraki,mr24)
ucidef_set_led_wlan "wlan2g_0" "WIFI 2.4GHz-0" "green:wlan-3" "phy0radio"
;;
-meraki,mx60)
- ucidef_set_led_switch "wan" "WAN" "green:wan" "switch0" "0x20"
- ucidef_set_led_switch "lan1" "LAN1" "green:lan-0" "switch0" "0x10"
- ucidef_set_led_switch "lan2" "LAN2" "green:lan-1" "switch0" "0x08"
- ucidef_set_led_switch "lan3" "LAN3" "green:lan-2" "switch0" "0x04"
- ucidef_set_led_switch "lan4" "LAN4" "green:lan-3" "switch0" "0x02"
- ;;
-
netgear,wndap620)
ucidef_set_led_switch "lan_act" "LAN (Activity)" "green:activity" "switch0" "0x04" "0x0f" "rx tx"
ucidef_set_led_switch "lan_100" "LAN 100Mbps" "amber:lan" "switch0" "0x04" "0x04" "link"
@@ -39,8 +31,8 @@ netgear,wndap660)
;;
netgear,wndr4700)
- ucidef_set_led_switch "wan_green" "WAN (green)" "green:wan" "switch0" "0x20"
- ucidef_set_led_netdev "wan_yellow" "WAN (yellow)" "yellow:wan" "eth0.2" "tx rx"
+ ucidef_set_led_netdev "wan_green" "WAN (green)" "green:wan" "wan" "link"
+ ucidef_set_led_netdev "wan_yellow" "WAN (yellow)" "yellow:wan" "wan" "tx rx"
;;
esac
diff --git a/target/linux/apm821xx/base-files/etc/board.d/02_network b/target/linux/apm821xx/base-files/etc/board.d/02_network
index 756ea348b4..dfcf4be8b9 100644
--- a/target/linux/apm821xx/base-files/etc/board.d/02_network
+++ b/target/linux/apm821xx/base-files/etc/board.d/02_network
@@ -20,8 +20,7 @@ netgear,wndap660)
;;
meraki,mx60|\
netgear,wndr4700)
- ucidef_add_switch "switch0" \
- "0 at eth0" "4:lan" "3:lan" "2:lan" "1:lan" "5:wan"
+ ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
;;
*)
diff --git a/target/linux/apm821xx/base-files/etc/uci-defaults/05_fix-compat-version b/target/linux/apm821xx/base-files/etc/uci-defaults/05_fix-compat-version
index d34b4051be..00d3954e5f 100644
--- a/target/linux/apm821xx/base-files/etc/uci-defaults/05_fix-compat-version
+++ b/target/linux/apm821xx/base-files/etc/uci-defaults/05_fix-compat-version
@@ -5,7 +5,7 @@ meraki,mx60|\
netgear,wndap620|\
netgear,wndap660|\
netgear,wndr4700)
- uci set system. at system[0].compat_version="2.0"
+ uci set system. at system[0].compat_version="3.0"
uci commit system
;;
esac
diff --git a/target/linux/apm821xx/dts/meraki-mx60.dts b/target/linux/apm821xx/dts/meraki-mx60.dts
index d9568d9263..6e4df54bd2 100644
--- a/target/linux/apm821xx/dts/meraki-mx60.dts
+++ b/target/linux/apm821xx/dts/meraki-mx60.dts
@@ -92,23 +92,241 @@
&EMAC0 {
status = "okay";
- phy-handle = <&phy0>;
+
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ };
mdio {
#address-cells = <1>;
#size-cells = <0>;
- phy0: ethernet-phy at 0 {
+
+ phy_port1: phy at 0 {
compatible = "ethernet-phy-id004d.d034";
reg = <0>;
- qca,mib-poll-interval = <500>;
-
- qca,ar8327-initvals = <
- 0x0010 0x40000000
- 0x0624 0x007f7f7f
- 0x0004 0x07a00000 /* PAD0_MODE */
- 0x000c 0x01000000 /* PAD6_MODE */
- 0x007c 0x0000007e /* PORT0_STATUS */
- >;
+ };
+
+ phy_port2: phy at 1 {
+ compatible = "ethernet-phy-id004d.d034";
+ reg = <1>;
+ };
+
+ phy_port3: phy at 2 {
+ compatible = "ethernet-phy-id004d.d034";
+ reg = <2>;
+ };
+
+ phy_port4: phy at 3 {
+ compatible = "ethernet-phy-id004d.d034";
+ reg = <3>;
+ };
+
+ phy_port5: phy at 4 {
+ compatible = "ethernet-phy-id004d.d034";
+ reg = <4>;
+ };
+
+ switch0 at 10 {
+ compatible = "qca,qca8327";
+ reg = <0x10>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ ethernet = <&EMAC0>;
+ phy-mode = "rgmii-id";
+ tx-internal-delay-ps = <2000>;
+
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ };
+ };
+
+ port at 1 {
+ reg = <1>;
+ label = "lan4";
+ phy-mode = "internal";
+ phy-handle = <&phy_port1>;
+
+ leds {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led at 0 {
+ reg = <0>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_LAN;
+ function-enumerator = <0>;
+ default-state = "keep";
+ };
+
+ led at 1 {
+ reg = <1>;
+ color = <LED_COLOR_ID_ORANGE>;
+ function = LED_FUNCTION_LAN;
+ function-enumerator = <1>;
+ default-state = "keep";
+ };
+
+ led at 2 {
+ reg = <2>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_LAN;
+ function-enumerator = <2>;
+ default-state = "keep";
+ };
+ };
+ };
+
+ port at 2 {
+ reg = <2>;
+ label = "lan3";
+ phy-mode = "internal";
+ phy-handle = <&phy_port2>;
+
+ leds {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led at 0 {
+ reg = <0>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_LAN;
+ function-enumerator = <0>;
+ default-state = "keep";
+ };
+
+ led at 1 {
+ reg = <1>;
+ color = <LED_COLOR_ID_ORANGE>;
+ function = LED_FUNCTION_LAN;
+ function-enumerator = <1>;
+ default-state = "keep";
+ };
+
+ led at 2 {
+ reg = <2>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_LAN;
+ function-enumerator = <2>;
+ default-state = "keep";
+ };
+ };
+ };
+
+ port at 3 {
+ reg = <3>;
+ label = "lan2";
+ phy-mode = "internal";
+ phy-handle = <&phy_port3>;
+
+ leds {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led at 0 {
+ reg = <0>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_LAN;
+ function-enumerator = <0>;
+ default-state = "keep";
+ };
+
+ led at 1 {
+ reg = <1>;
+ color = <LED_COLOR_ID_ORANGE>;
+ function = LED_FUNCTION_LAN;
+ function-enumerator = <1>;
+ default-state = "keep";
+ };
+
+ led at 2 {
+ reg = <2>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_LAN;
+ function-enumerator = <2>;
+ default-state = "keep";
+ };
+ };
+ };
+
+ port at 4 {
+ reg = <4>;
+ label = "lan1";
+ phy-mode = "internal";
+ phy-handle = <&phy_port4>;
+
+ leds {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led at 0 {
+ reg = <0>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_LAN;
+ function-enumerator = <0>;
+ default-state = "keep";
+ };
+
+ led at 1 {
+ reg = <1>;
+ color = <LED_COLOR_ID_ORANGE>;
+ function = LED_FUNCTION_LAN;
+ function-enumerator = <1>;
+ default-state = "keep";
+ };
+
+ led at 2 {
+ reg = <2>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_LAN;
+ function-enumerator = <2>;
+ default-state = "keep";
+ };
+ };
+ };
+
+ port at 5 {
+ reg = <5>;
+ label = "wan";
+ phy-mode = "internal";
+ phy-handle = <&phy_port5>;
+
+ leds {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led at 0 {
+ reg = <0>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_WAN;
+ function-enumerator = <0>;
+ default-state = "keep";
+ };
+
+ led at 1 {
+ reg = <1>;
+ color = <LED_COLOR_ID_ORANGE>;
+ function = LED_FUNCTION_WAN;
+ function-enumerator = <1>;
+ default-state = "keep";
+ };
+
+ led at 2 {
+ reg = <2>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_WAN;
+ function-enumerator = <2>;
+ default-state = "keep";
+ };
+ };
+ };
+ };
};
};
};
diff --git a/target/linux/apm821xx/dts/netgear-wndr4700.dts b/target/linux/apm821xx/dts/netgear-wndr4700.dts
index 851a3192b3..4ef05937d3 100644
--- a/target/linux/apm821xx/dts/netgear-wndr4700.dts
+++ b/target/linux/apm821xx/dts/netgear-wndr4700.dts
@@ -350,24 +350,93 @@
&EMAC0 {
status = "okay";
- phy-handle = <&phy0>;
fifo-entry-size = <10>;
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ };
+
mdio {
#address-cells = <1>;
#size-cells = <0>;
- phy0: ethernet-phy at 0 {
- device_type = "ethernet-phy";
+
+ phy_port1: phy at 0 {
reg = <0>;
- qca,mib-poll-interval = <500>;
-
- qca,ar8327-initvals = <
- 0x0010 0x40000000
- 0x0624 0x007f7f7f
- 0x0004 0x07a00000 /* PAD0_MODE */
- 0x000c 0x01000000 /* PAD6_MODE */
- 0x007c 0x0000007e /* PORT0_STATUS */
- >;
+ };
+
+ phy_port2: phy at 1 {
+ reg = <1>;
+ };
+
+ phy_port3: phy at 2 {
+ reg = <2>;
+ };
+
+ phy_port4: phy at 3 {
+ reg = <3>;
+ };
+
+ phy_port5: phy at 4 {
+ reg = <4>;
+ };
+
+ switch0 at 10 {
+ compatible = "qca,qca8327";
+ reg = <0x10>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port at 0 {
+ reg = <0>;
+ label = "cpu";
+ ethernet = <&EMAC0>;
+ phy-mode = "rgmii-id";
+ tx-internal-delay-ps = <2000>;
+
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ };
+ };
+
+ port at 1 {
+ reg = <1>;
+ label = "lan4";
+ phy-mode = "internal";
+ phy-handle = <&phy_port1>;
+ };
+
+ port at 2 {
+ reg = <2>;
+ label = "lan3";
+ phy-mode = "internal";
+ phy-handle = <&phy_port2>;
+ };
+
+ port at 3 {
+ reg = <3>;
+ label = "lan2";
+ phy-mode = "internal";
+ phy-handle = <&phy_port3>;
+ };
+
+ port at 4 {
+ reg = <4>;
+ label = "lan1";
+ phy-mode = "internal";
+ phy-handle = <&phy_port4>;
+ };
+
+ port at 5 {
+ reg = <5>;
+ label = "wan";
+ phy-mode = "internal";
+ phy-handle = <&phy_port5>;
+ };
+ };
};
};
};
diff --git a/target/linux/apm821xx/image/nand.mk b/target/linux/apm821xx/image/nand.mk
index 69eb386126..92bdaa87d0 100644
--- a/target/linux/apm821xx/image/nand.mk
+++ b/target/linux/apm821xx/image/nand.mk
@@ -50,8 +50,9 @@ define Device/meraki_mx60
KERNEL := kernel-bin | libdeflate-gzip | MuImage-initramfs gzip
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
UBINIZE_OPTS := -E 5
- DEVICE_COMPAT_VERSION := 2.0
+ DEVICE_COMPAT_VERSION := 3.0
DEVICE_COMPAT_MESSAGE := uboot's bootcmd has to be updated to support standard multi-image uImages. \
+ Network swconfig configuration cannot be upgraded to DSA. \
Upgrade via sysupgrade mechanism is not possible.
endef
TARGET_DEVICES += meraki_mx60
@@ -88,6 +89,9 @@ endef
TARGET_DEVICES += netgear_wndap660
define Device/netgear_wndr4700
+ DEVICE_COMPAT_VERSION := 3.0
+ DEVICE_COMPAT_MESSAGE := Network swconfig configuration cannot be upgraded to DSA. \
+ Upgrade via sysupgrade mechanism is not possible.
DEVICE_VENDOR := NETGEAR
DEVICE_MODEL := Centria N900 WNDR4700
DEVICE_ALT0_VENDOR := NETGEAR
diff --git a/target/linux/apm821xx/nand/config-default b/target/linux/apm821xx/nand/config-default
index 7070b34b93..ab7d790870 100644
--- a/target/linux/apm821xx/nand/config-default
+++ b/target/linux/apm821xx/nand/config-default
@@ -1,5 +1,3 @@
-CONFIG_AT803X_PHY=y
-CONFIG_AR8216_PHY=y
# CONFIG_SATA_DWC_OLD_DMA is not set
CONFIG_IKAREM=y
# CONFIG_PCI_DISABLE_COMMON_QUIRKS is not set
@@ -26,6 +24,15 @@ CONFIG_MTD_UBI=y
CONFIG_MTD_UBI_BEB_LIMIT=20
CONFIG_MTD_UBI_BLOCK=y
CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_NET_DEVLINK=y
+CONFIG_NET_DSA=y
+CONFIG_NET_DSA_QCA8K=y
+CONFIG_NET_DSA_QCA8K_LEDS_SUPPORT=y
+CONFIG_NET_DSA_TAG_QCA=y
+CONFIG_NET_SWITCHDEV=y
+CONFIG_PHYLINK=y
+CONFIG_QCA83XX_PHY=y
+CONFIG_QCOM_NET_PHYLIB=y
CONFIG_UBIFS_FS=y
CONFIG_RTL8366_SMI=y
CONFIG_RTL8367B_PHY=y
@@ -33,4 +40,3 @@ CONFIG_SENSORS_LM90=y
CONFIG_SENSORS_TC654=y
CONFIG_SWCONFIG=y
CONFIG_SWCONFIG_LEDS=y
-
More information about the lede-commits
mailing list