From 03d223042ef10be4de388a93fde4a06d976b047c Mon Sep 17 00:00:00 2001 From: Frank Wunderlich Date: Sat, 23 May 2026 19:22:23 +0200 Subject: [PATCH 1/8] arm64: dts: rename r4pro-8x lan/wan overlays --- arch/arm64/boot/dts/mediatek/Makefile | 8 ++++---- ...y.dtso => mt7988a-bananapi-bpi-r4-pro-8x-lan-phy.dtso} | 0 ...p.dtso => mt7988a-bananapi-bpi-r4-pro-8x-lan-sfp.dtso} | 0 ...y.dtso => mt7988a-bananapi-bpi-r4-pro-8x-wan-phy.dtso} | 0 ...p.dtso => mt7988a-bananapi-bpi-r4-pro-8x-wan-sfp.dtso} | 0 5 files changed, 4 insertions(+), 4 deletions(-) rename arch/arm64/boot/dts/mediatek/{mt7988a-bananapi-bpi-r4-pro-lan-phy.dtso => mt7988a-bananapi-bpi-r4-pro-8x-lan-phy.dtso} (100%) rename arch/arm64/boot/dts/mediatek/{mt7988a-bananapi-bpi-r4-pro-lan-sfp.dtso => mt7988a-bananapi-bpi-r4-pro-8x-lan-sfp.dtso} (100%) rename arch/arm64/boot/dts/mediatek/{mt7988a-bananapi-bpi-r4-pro-wan-phy.dtso => mt7988a-bananapi-bpi-r4-pro-8x-wan-phy.dtso} (100%) rename arch/arm64/boot/dts/mediatek/{mt7988a-bananapi-bpi-r4-pro-wan-sfp.dtso => mt7988a-bananapi-bpi-r4-pro-8x-wan-sfp.dtso} (100%) diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile index 8e70afca5927..f001959deba9 100644 --- a/arch/arm64/boot/dts/mediatek/Makefile +++ b/arch/arm64/boot/dts/mediatek/Makefile @@ -87,14 +87,14 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-4e.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-4e-wan-2g5.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-4e-wan-sfp.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x.dtb +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x-lan-phy.dtbo +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x-lan-sfp.dtbo +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x-wan-phy.dtbo +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x-wan-sfp.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-cn13.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-cn14.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-cn15.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-cn18.dtbo -dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-lan-phy.dtbo -dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-lan-sfp.dtbo -dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-wan-phy.dtbo -dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-wan-sfp.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-emmc.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-sd.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-sd.dtbo diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-lan-phy.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-lan-phy.dtso similarity index 100% rename from arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-lan-phy.dtso rename to arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-lan-phy.dtso diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-lan-sfp.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-lan-sfp.dtso similarity index 100% rename from arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-lan-sfp.dtso rename to arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-lan-sfp.dtso diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-wan-phy.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-wan-phy.dtso similarity index 100% rename from arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-wan-phy.dtso rename to arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-wan-phy.dtso diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-wan-sfp.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-wan-sfp.dtso similarity index 100% rename from arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-wan-sfp.dtso rename to arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-wan-sfp.dtso From 6eb49468344d6d9835f6980719121a5e54e911b0 Mon Sep 17 00:00:00 2001 From: Frank Wunderlich Date: Sat, 23 May 2026 19:24:30 +0200 Subject: [PATCH 2/8] arm64: dts: add nand-overlay for R4 8G which has 256MB --- arch/arm64/boot/dts/mediatek/Makefile | 1 + .../mediatek/mt7988a-bananapi-bpi-r4-nand.dtso | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-nand.dtso diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile index f001959deba9..93ad11c87da8 100644 --- a/arch/arm64/boot/dts/mediatek/Makefile +++ b/arch/arm64/boot/dts/mediatek/Makefile @@ -83,6 +83,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-2g5.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-emmc.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-nopcie2.dtbo +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-nand.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-4e.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-4e-wan-2g5.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-4e-wan-sfp.dtbo diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-nand.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-nand.dtso new file mode 100644 index 000000000000..648c59d78cd5 --- /dev/null +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-nand.dtso @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/* + * Copyright (C) 2025 MediaTek Inc. + * Author: Frank Wunderlich + */ + +/* This updates NAND size to 256MB on BPI-R4-8G */ + +/dts-v1/; +/plugin/; + +/ { + compatible = "bananapi,bpi-r4", "mediatek,mt7988a"; +}; + +&{/soc/spi@11007000/flash@0/partitions/partition@200000} { + reg = <0x200000 0xfe00000>; +}; From 6ca2804e882b276c1d5db0965428dc39e4265460 Mon Sep 17 00:00:00 2001 From: Frank Wunderlich Date: Sat, 23 May 2026 19:28:10 +0200 Subject: [PATCH 3/8] its: r4: rename lan/wan overlays with for r4pro 8x --- bpi-r4.its | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/bpi-r4.its b/bpi-r4.its index 602122ec2397..c0ea68f55121 100644 --- a/bpi-r4.its +++ b/bpi-r4.its @@ -148,24 +148,24 @@ data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-emmc.dtbo"); type = "flat_dt"; }; - fdt-ov-pro-lan-phy { + fdt-ov-pro-8x-lan-phy { description = "DT overlay for R4Pro LAN-PHY"; - data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-lan-phy.dtbo"); + data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-lan-phy.dtbo"); type = "flat_dt"; }; - fdt-ov-pro-lan-sfp { + fdt-ov-pro-8x-lan-sfp { description = "DT overlay for R4Pro LAN-SFP"; - data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-lan-sfp.dtbo"); + data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-lan-sfp.dtbo"); type = "flat_dt"; }; - fdt-ov-pro-wan-phy { + fdt-ov-pro-8x-wan-phy { description = "DT overlay for R4Pro WAN-PHY"; - data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-wan-phy.dtbo"); + data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-wan-phy.dtbo"); type = "flat_dt"; }; - fdt-ov-pro-wan-sfp { + fdt-ov-pro-8x-wan-sfp { description = "DT overlay for R4Pro WAN-SFP"; - data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-wan-sfp.dtbo"); + data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-wan-sfp.dtbo"); type = "flat_dt"; }; /* ramdisk-1 { @@ -314,22 +314,22 @@ description = "CN18 FDT overlay blob for R4 Pro"; fdt = "fdt-ov-pro-cn18"; }; - //setenv addconf "#ov-pro-lan-phy#ov-pro-wan-phy" - ov-pro-lan-phy { - description = "LAN-PHY FDT overlay blob for R4 Pro"; - fdt = "fdt-ov-pro-lan-phy"; + //setenv addconf "#ov-pro-8x-lan-phy#ov-pro-8x-wan-phy" + ov-pro-8x-lan-phy { + description = "LAN-PHY FDT overlay blob for R4 Pro 8X"; + fdt = "fdt-ov-pro-8x-lan-phy"; }; - ov-pro-lan-sfp { - description = "LAN-SFP FDT overlay blob for R4 Pro"; - fdt = "fdt-ov-pro-lan-sfp"; + ov-pro-8x-lan-sfp { + description = "LAN-SFP FDT overlay blob for R4 Pro 8X"; + fdt = "fdt-ov-pro-8x-lan-sfp"; }; - ov-pro-wan-phy { - description = "WAN-PHY FDT overlay blob for R4 Pro"; - fdt = "fdt-ov-pro-wan-phy"; + ov-pro-8x-wan-phy { + description = "WAN-PHY FDT overlay blob for R4 Pro 8X"; + fdt = "fdt-ov-pro-8x-wan-phy"; }; - ov-pro-wan-sfp { - description = "WAN-SFP FDT overlay blob for R4 Pro"; - fdt = "fdt-ov-pro-wan-sfp"; + ov-pro-8x-wan-sfp { + description = "WAN-SFP FDT overlay blob for R4 Pro 8X"; + fdt = "fdt-ov-pro-8x-wan-sfp"; }; }; }; From 474e6064edf82e61c71d4662d44ba4c139b49054 Mon Sep 17 00:00:00 2001 From: Frank Wunderlich Date: Sat, 23 May 2026 19:32:40 +0200 Subject: [PATCH 4/8] its: r4: add wan-overlays for R4Pro 4e --- bpi-r4.its | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/bpi-r4.its b/bpi-r4.its index c0ea68f55121..fc0144722b12 100644 --- a/bpi-r4.its +++ b/bpi-r4.its @@ -148,6 +148,18 @@ data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-emmc.dtbo"); type = "flat_dt"; }; + + fdt-ov-pro-4e-wan-phy { + description = "DT overlay for R4Pro 4E WAN-PHY"; + data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e-wan-2g5.dtbo"); + type = "flat_dt"; + }; + fdt-ov-pro-4e-wan-sfp { + description = "DT overlay for R4Pro 4E WAN-SFP"; + data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e-wan-sfp.dtbo"); + type = "flat_dt"; + }; + fdt-ov-pro-8x-lan-phy { description = "DT overlay for R4Pro LAN-PHY"; data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-lan-phy.dtbo"); @@ -314,6 +326,14 @@ description = "CN18 FDT overlay blob for R4 Pro"; fdt = "fdt-ov-pro-cn18"; }; + ov-pro-4e-wan-phy { + description = "WAN-PHY FDT overlay blob for R4 Pro 4E"; + fdt = "fdt-ov-pro-4e-wan-phy"; + }; + ov-pro-4e-wan-sfp { + description = "WAN-SFP FDT overlay blob for R4 Pro 4E"; + fdt = "fdt-ov-pro-4e-wan-sfp"; + }; //setenv addconf "#ov-pro-8x-lan-phy#ov-pro-8x-wan-phy" ov-pro-8x-lan-phy { description = "LAN-PHY FDT overlay blob for R4 Pro 8X"; From 7221c58b068c3065b27c246c1e2db3a7e7be0f40 Mon Sep 17 00:00:00 2001 From: Frank Wunderlich Date: Mon, 25 May 2026 12:37:34 +0200 Subject: [PATCH 5/8] arm64: dts: some fixes for 4e dts (ws/order) --- .../mt7988a-bananapi-bpi-r4-pro-4e.dts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts index a9fdf9d07cf4..9472fa1cc481 100644 --- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts @@ -15,6 +15,15 @@ "mediatek,mt7988a"; }; +&gsw_phy2 { + status = "okay"; +}; + +&gsw_port2 { + label = "lan5"; + status = "okay"; +}; + &switch16 { ports { port6: port@6 { @@ -29,12 +38,3 @@ }; }; }; - -&gsw_phy2 { - status = "okay"; -}; - -&gsw_port2 { - status = "okay"; - label = "lan5"; -}; From 24700476ff5cd530d207148d6cb86fcef9c17e82 Mon Sep 17 00:00:00 2001 From: Frank Wunderlich Date: Wed, 27 May 2026 10:31:58 +0200 Subject: [PATCH 6/8] build.sh: fix dtbs_check install --- build.sh | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/build.sh b/build.sh index 1dcbc3708f3d..78a256d4a383 100755 --- a/build.sh +++ b/build.sh @@ -1139,12 +1139,10 @@ if [ -n "$kernver" ]; then ;; "dtbs_check") - export ARCH=arm64 - export CROSS_COMPILE='aarch64-linux-gnu-' - if [[ "$2" == "disable_unrelated" ]];then - sed -i.bak '/mediatek\|rockchip/! s/^/#/' arch/arm64/boot/dts/Makefile - sed -i.bak '/bpi/! s/^/#/' arch/arm64/boot/dts/{mediatek,rockchip}/Makefile - fi + unset ARCH + unset CROSS_COMPILE + unset CC + unset HOSTCC if [[ ! -e .venv ]];then python3 -m venv .venv fi @@ -1152,6 +1150,14 @@ if [ -n "$kernver" ]; then if [[ $? -ne 0 ]];then exit 1;fi pip3 install dtschema --upgrade pip3 show dtschema + if [[ $? -ne 0 ]];then exit 1;fi + + if [[ "$2" == "disable_unrelated" ]];then + sed -i.bak '/mediatek\|rockchip/! s/^/#/' arch/arm64/boot/dts/Makefile + sed -i.bak '/bpi/! s/^/#/' arch/arm64/boot/dts/{mediatek,rockchip}/Makefile + fi + export ARCH=arm64 + export CROSS_COMPILE='aarch64-linux-gnu-' make dt_binding_check 2>&1 | tee dtbs_check.log make defconfig make dtbs_check 2>&1 | tee -a dtbs_check.log From 0722262ecba21b4c0c6ed1415999990c953c1c26 Mon Sep 17 00:00:00 2001 From: Wilfried Teiken Date: Mon, 25 May 2026 17:43:49 -0400 Subject: [PATCH 7/8] Remove pcs_inband_caps for legacy mx872xx driver. The caps prevent in band setup with the legacy PCS drivers. Without pcs_inband_caps supported in pcs_ops the phylink stack will not block setting up inband signaling. --- drivers/net/dsa/mxl862xx/mxl862xx-phylink.c | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/drivers/net/dsa/mxl862xx/mxl862xx-phylink.c b/drivers/net/dsa/mxl862xx/mxl862xx-phylink.c index f0a2e83c8eee..b5ead28b832c 100644 --- a/drivers/net/dsa/mxl862xx/mxl862xx-phylink.c +++ b/drivers/net/dsa/mxl862xx/mxl862xx-phylink.c @@ -178,28 +178,9 @@ static void mxl862xx_legacy_pcs_get_state(struct phylink_pcs *pcs, } } -static unsigned int -mxl862xx_legacy_pcs_inband_caps(struct phylink_pcs *pcs, - phy_interface_t interface) -{ - switch (interface) { - case PHY_INTERFACE_MODE_SGMII: - case PHY_INTERFACE_MODE_USXGMII: - return LINK_INBAND_ENABLE; - case PHY_INTERFACE_MODE_1000BASEX: - return LINK_INBAND_DISABLE | LINK_INBAND_ENABLE; - case PHY_INTERFACE_MODE_10GBASER: - case PHY_INTERFACE_MODE_2500BASEX: - return LINK_INBAND_DISABLE; - default: - return 0; - } -} - static const struct phylink_pcs_ops mxl862xx_legacy_pcs_ops = { .pcs_get_state = mxl862xx_legacy_pcs_get_state, .pcs_config = mxl862xx_legacy_pcs_config, - .pcs_inband_caps = mxl862xx_legacy_pcs_inband_caps, }; static int mxl862xx_xpcs_port_id(int port) From ecae2c2afef2114c70dee425323050d443f23095 Mon Sep 17 00:00:00 2001 From: Wilfried Teiken Date: Sat, 23 May 2026 14:32:29 -0400 Subject: [PATCH 8/8] Fix the BPI R4 Pro 4E dtb to support the LAN sfp and rename the interfaces. --- .../dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts index 9472fa1cc481..5c1beb71b01d 100644 --- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts @@ -20,20 +20,18 @@ }; &gsw_port2 { - label = "lan5"; + label = "lan6"; status = "okay"; }; &switch16 { ports { - port6: port@6 { - reg = <12>; - label = "lan6"; - phy-mode = "usxgmii"; - phy-connection-type = "usxgmii"; + port13: port@13 { + reg = <13>; + label = "lan7"; + phy-mode = "10gbase-r"; managed = "in-band-status"; sfp = <&sfp1>; - status = "okay"; }; };