[openwrt/openwrt] mvebu: add Methode euroDPU support

LEDE Commits lede-commits at lists.infradead.org
Wed Jun 29 04:10:10 PDT 2022


ansuel pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/57a38c8d3e85dd94d4912febc3906db77a855b43

commit 57a38c8d3e85dd94d4912febc3906db77a855b43
Author: Robert Marko <robert.marko at sartura.hr>
AuthorDate: Wed Mar 30 14:04:10 2022 +0200

    mvebu: add Methode euroDPU support
    
    Add support for Methode euroDPU which is based on uDPU but does not
    have a second SFP cage, instead of which a Maxlinear G.hn IC is used.
    
    PHY mode is set to 1000Base-X despite Maxlinear IC being capable of
    2500Base-X since until 5.15 support for mvebu is available trying to use
    2500Base-X will cause buffer overruns for which the fix is not easily
    backportable.
    
    Installation instructions:
    1. Boot the FIT initramfs image (openwrt-mvebu-cortexa53-methode_edpu-initramfs.itb)
    2. sysupgrade using the openwrt-mvebu-cortexa53-methode_edpu-firmware.tgz
    
    Signed-off-by: Robert Marko <robert.marko at sartura.hr>
---
 package/boot/uboot-envtools/files/mvebu               |  3 ++-
 .../mvebu/cortexa53/base-files/etc/board.d/02_network |  3 ++-
 .../mvebu/cortexa53/base-files/lib/preinit/82_uDPU    |  3 ++-
 .../cortexa53/base-files/lib/upgrade/platform.sh      |  6 ++++--
 .../arch/arm64/boot/dts/marvell/armada-3720-eDPU.dts  | 19 +++++++++++++++++++
 target/linux/mvebu/image/cortexa53.mk                 |  8 ++++++++
 6 files changed, 37 insertions(+), 5 deletions(-)

diff --git a/package/boot/uboot-envtools/files/mvebu b/package/boot/uboot-envtools/files/mvebu
index a90f74c517..cc1c648f24 100644
--- a/package/boot/uboot-envtools/files/mvebu
+++ b/package/boot/uboot-envtools/files/mvebu
@@ -58,7 +58,8 @@ linksys,wrt3200acm|\
 linksys,wrt32x)
 	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000"
 	;;
-methode,udpu)
+methode,udpu|\
+methode,edpu)
 	idx="$(find_mtd_index u-boot-env)"
 	if [ -n "$idx" ]; then
 	ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x10000" "0x10000" "1"
diff --git a/target/linux/mvebu/cortexa53/base-files/etc/board.d/02_network b/target/linux/mvebu/cortexa53/base-files/etc/board.d/02_network
index 7da9de58c7..489090d77c 100644
--- a/target/linux/mvebu/cortexa53/base-files/etc/board.d/02_network
+++ b/target/linux/mvebu/cortexa53/base-files/etc/board.d/02_network
@@ -21,7 +21,8 @@ globalscale,espressobin-ultra)
 	ucidef_set_interfaces_lan_wan "lan0 lan1 lan2 lan3" "wan"
 	;;
 marvell,armada-3720-db|\
-methode,udpu)
+methode,udpu|\
+methode,edpu)
 	ucidef_set_interfaces_lan_wan "eth1" "eth0"
 	;;
 *)
diff --git a/target/linux/mvebu/cortexa53/base-files/lib/preinit/82_uDPU b/target/linux/mvebu/cortexa53/base-files/lib/preinit/82_uDPU
index 12bbfc3725..8d5a482b82 100644
--- a/target/linux/mvebu/cortexa53/base-files/lib/preinit/82_uDPU
+++ b/target/linux/mvebu/cortexa53/base-files/lib/preinit/82_uDPU
@@ -8,7 +8,8 @@ preinit_mount_udpu() {
 	. /lib/upgrade/common.sh
 
 	case $(board_name) in
-	methode,udpu)
+	methode,udpu|\
+	methode,edpu)
 		# Check which device is detected
 		[ -b "/dev/mmcblk0" ] && mmcdev="/dev/mmcblk0" || mmcdev="/dev/mmcblk1"
 
diff --git a/target/linux/mvebu/cortexa53/base-files/lib/upgrade/platform.sh b/target/linux/mvebu/cortexa53/base-files/lib/upgrade/platform.sh
index 0ee1d61506..cd41c39d7c 100755
--- a/target/linux/mvebu/cortexa53/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mvebu/cortexa53/base-files/lib/upgrade/platform.sh
@@ -33,7 +33,8 @@ platform_do_upgrade() {
 	globalscale,espressobin-v7-emmc)
 		legacy_sdcard_do_upgrade "$1"
 		;;
-	methode,udpu)
+	methode,udpu|\
+	methode,edpu)
 		platform_do_upgrade_uDPU "$1"
 		;;
 	*)
@@ -51,7 +52,8 @@ platform_copy_config() {
 	globalscale,espressobin-v7-emmc)
 		legacy_sdcard_copy_config
 		;;
-	methode,udpu)
+	methode,udpu|\
+	methode,edpu)
 		platform_copy_config_uDPU
 		;;
 	esac
diff --git a/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/armada-3720-eDPU.dts b/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/armada-3720-eDPU.dts
new file mode 100644
index 0000000000..4db8b946df
--- /dev/null
+++ b/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/armada-3720-eDPU.dts
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include "armada-3720-uDPU.dtsi"
+
+/ {
+	model = "Methode eDPU Board";
+	compatible = "methode,edpu", "marvell,armada3720", "marvell,armada3710";
+};
+
+/* PHY mode is set to 1000Base-X despite Maxlinear IC being capable of
+ * 2500Base-X since until 5.15 support for mvebu is available trying to
+ * use 2500Base-X will cause buffer overruns for which the fix is not
+ * easily backportable.
+ */
+&eth0 {
+	phy-mode = "1000base-x";
+};
diff --git a/target/linux/mvebu/image/cortexa53.mk b/target/linux/mvebu/image/cortexa53.mk
index bfaa597d9a..afe8d9ce21 100644
--- a/target/linux/mvebu/image/cortexa53.mk
+++ b/target/linux/mvebu/image/cortexa53.mk
@@ -92,3 +92,11 @@ define Device/methode_udpu
   BOOT_SCRIPT := udpu
 endef
 TARGET_DEVICES += methode_udpu
+
+define Device/methode_edpu
+  $(call Device/methode_udpu)
+  DEVICE_MODEL := eDPU
+  DEVICE_DTS := armada-3720-eDPU
+  KERNEL_INITRAMFS := kernel-bin | gzip | fit gzip $$(KDIR)/image-$$(DEVICE_DTS).dtb
+endef
+TARGET_DEVICES += methode_edpu




More information about the lede-commits mailing list