sunxi: bring up DSA b53 switch on Lamobo R1
authorDaniel Golle <daniel@makrotopia.org>
Fri, 10 Sep 2021 22:02:15 +0000 (23:02 +0100)
committerDaniel Golle <daniel@makrotopia.org>
Wed, 15 Sep 2021 18:11:29 +0000 (19:11 +0100)
Build cortexa7 subtarget with DSA driver for MDIO-connected Broadcom
BCM53xxx switches. This is needed for the Lamobo R1 aka. BananaPi
BPi-R1 board which comes with such a switch IC.

Remove old swconfig driver from target kernel config as the only board
using it is now supported by the DSA driver.

No changes to device tree are needed as upstream DTS already got a
DSA switch definition and we are just using that upstream source.

Update default network config of the Lamobo R1 to create lan bridge
with all 4 lan ports.

Introduce DEVICE_COMPAT_VERSION for the board to inform users about
having the re-create their network configuration and add device alias
as Bananapi BPi-R1 while at it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
target/linux/sunxi/base-files/etc/board.d/02_network
target/linux/sunxi/base-files/etc/board.d/05_compat-version [new file with mode: 0644]
target/linux/sunxi/base-files/lib/preinit/03_b53_hack.sh [deleted file]
target/linux/sunxi/config-5.4
target/linux/sunxi/cortexa7/config-5.4
target/linux/sunxi/image/cortexa7.mk
target/linux/sunxi/patches-5.4/310-Revert-ARM-dts-sun7i-Add-BCM53125-switch-nodes-to-th.patch [deleted file]

index 5b59333b1f04176b6225081dd077cd4f7f95430c..d5c615e7f23d99092ef967529f220f6366e88151 100644 (file)
@@ -11,8 +11,7 @@ friendlyarm,nanopi-r1)
        ucidef_set_interfaces_lan_wan "eth1" "eth0"
        ;;
 lamobo,lamobo-r1)
-       ucidef_add_switch "switch0" \
-               "4:lan:1" "0:lan:2" "1:lan:3" "2:lan:4" "3:wan" "8@eth0"
+       ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" wan
        ;;
 olimex,a20-olinuxino-micro)
        ucidef_set_interface_lan "wlan0"
diff --git a/target/linux/sunxi/base-files/etc/board.d/05_compat-version b/target/linux/sunxi/base-files/etc/board.d/05_compat-version
new file mode 100644 (file)
index 0000000..3fc777e
--- /dev/null
@@ -0,0 +1,15 @@
+
+. /lib/functions.sh
+. /lib/functions/uci-defaults.sh
+
+board_config_update
+
+case "$(board_name)" in
+       lamobo,lamobo-r1)
+               ucidef_set_compat_version "1.1"
+               ;;
+esac
+
+board_config_flush
+
+exit 0
diff --git a/target/linux/sunxi/base-files/lib/preinit/03_b53_hack.sh b/target/linux/sunxi/base-files/lib/preinit/03_b53_hack.sh
deleted file mode 100644 (file)
index cc0c67a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-do_b53_hack() {
-       . /lib/functions.sh
-
-       # hack: enable switch on Lamobo R1 and reset counters
-       case $(board_name) in
-       lamobo,lamobo-r1)
-               ip link set eth0 up
-               sleep 1
-               swconfig dev switch0 set reset 1
-               swconfig dev switch0 set reset_mib 1
-               swconfig dev switch0 set apply 1
-               ;;
-       esac
-}
-
-boot_hook_add preinit_main do_b53_hack
index 377234b828cb32d8dba60d9346d8873ee3b604da..e01a2cbd5e9c234a4fde92099f03d7756da43d05 100644 (file)
@@ -523,10 +523,6 @@ CONFIG_SUNXI_SRAM=y
 CONFIG_SUNXI_WATCHDOG=y
 CONFIG_SUSPEND=y
 CONFIG_SUSPEND_FREEZER=y
-CONFIG_SWCONFIG=y
-CONFIG_SWCONFIG_B53=y
-CONFIG_SWCONFIG_B53_PHY_DRIVER=y
-CONFIG_SWCONFIG_B53_PHY_FIXUP=y
 CONFIG_SWIOTLB=y
 CONFIG_SWPHY=y
 CONFIG_SWP_EMULATE=y
index 2d013357c551a965d3d6238e5ec40658cbb54de1..1136c842725aa02a150312feba85229689e79588 100644 (file)
@@ -21,3 +21,15 @@ CONFIG_USB_MUSB_HDRC=y
 # CONFIG_USB_MUSB_HOST is not set
 CONFIG_USB_MUSB_SUNXI=y
 CONFIG_USB_PHY=y
+CONFIG_NET_DEVLINK=y
+CONFIG_NET_DSA=y
+CONFIG_NET_DSA_TAG_BRCM=y
+CONFIG_NET_DSA_TAG_BRCM_COMMON=y
+CONFIG_NET_DSA_TAG_BRCM_PREPEND=y
+CONFIG_NET_SWITCHDEV=y
+CONFIG_B53=y
+CONFIG_B53_MDIO_DRIVER=y
+# CONFIG_B53_MMAP_DRIVER is not set
+# CONFIG_B53_SERDES is not set
+# CONFIG_B53_SPI_DRIVER is not set
+# CONFIG_B53_SRAB_DRIVER is not set
index 59f11bc83cfb6a2dc35dc35bcc908c8975426e5e..28fac13064e59121c898b4e60ecaae278e03f86c 100644 (file)
@@ -64,7 +64,11 @@ TARGET_DEVICES += friendlyarm_zeropi
 define Device/lamobo_lamobo-r1
   DEVICE_VENDOR := Lamobo
   DEVICE_MODEL := Lamobo R1
-  DEVICE_PACKAGES:=kmod-ata-sunxi kmod-rtl8192cu swconfig wpad-basic-wolfssl
+  DEVICE_ALT0_VENDOR := Bananapi
+  DEVICE_ALT0_MODEL := BPi-R1
+  DEVICE_PACKAGES := kmod-ata-sunxi kmod-rtl8192cu wpad-basic-wolfssl
+  DEVICE_COMPAT_VERSION := 1.1
+  DEVICE_COMPAT_MESSAGE := Config cannot be migrated from swconfig to DSA
   SOC := sun7i-a20
 endef
 TARGET_DEVICES += lamobo_lamobo-r1
diff --git a/target/linux/sunxi/patches-5.4/310-Revert-ARM-dts-sun7i-Add-BCM53125-switch-nodes-to-th.patch b/target/linux/sunxi/patches-5.4/310-Revert-ARM-dts-sun7i-Add-BCM53125-switch-nodes-to-th.patch
deleted file mode 100644 (file)
index 79c1671..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-From 49cd9ea6dc8d68eb519ccd9f31c9730dec8a181a Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke@hauke-m.de>
-Date: Thu, 8 Mar 2018 22:14:50 +0100
-Subject: [PATCH] Revert "ARM: dts: sun7i: Add BCM53125 switch nodes to the
- lamobo-r1 board"
-
-This reverts the changes needed for the upstream b53 DSA switch driver 
-to use the OpenWrt b43 swconfig switch driver.
-
-This reverts commit 0cdefd5b5485ee6eb3512a75739d09a4090176ed.
-This reverts commit d7b9eaff5f0ca00726336b4c0c3c29decf30412a.
----
- arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts | 60 ++-----------------------------
- 1 file changed, 3 insertions(+), 57 deletions(-)
-
---- a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
-+++ b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
-@@ -120,65 +120,13 @@
- &gmac {
-       pinctrl-names = "default";
-       pinctrl-0 = <&gmac_rgmii_pins>;
-+      phy = <&phy1>;
-       phy-mode = "rgmii";
-       phy-supply = <&reg_gmac_3v3>;
-       status = "okay";
--      fixed-link {
--              speed = <1000>;
--              full-duplex;
--      };
--
--      mdio {
--              compatible = "snps,dwmac-mdio";
--              #address-cells = <1>;
--              #size-cells = <0>;
--
--              switch: ethernet-switch@1e {
--                      compatible = "brcm,bcm53125";
--                      reg = <30>;
--
--                      ports {
--                              #address-cells = <1>;
--                              #size-cells = <0>;
--
--                              port0: port@0 {
--                                      reg = <0>;
--                                      label = "lan2";
--                              };
--
--                              port1: port@1 {
--                                      reg = <1>;
--                                      label = "lan3";
--                              };
--
--                              port2: port@2 {
--                                      reg = <2>;
--                                      label = "lan4";
--                              };
--
--                              port3: port@3 {
--                                      reg = <3>;
--                                      label = "wan";
--                              };
--
--                              port4: port@4 {
--                                      reg = <4>;
--                                      label = "lan1";
--                              };
--
--                              port8: port@8 {
--                                      reg = <8>;
--                                      label = "cpu";
--                                      ethernet = <&gmac>;
--                                      phy-mode = "rgmii-txid";
--                                      fixed-link {
--                                              speed = <1000>;
--                                              full-duplex;
--                                      };
--                              };
--                      };
--              };
-+      phy1: ethernet-phy@1 {
-+              reg = <1>;
-       };
- };