Parcourir la source

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 <[email protected]>
Robert Marko il y a 3 ans
Parent
commit
57a38c8d3e

+ 2 - 1
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"

+ 2 - 1
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"
 	;;
 *)

+ 2 - 1
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"
 

+ 4 - 2
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

+ 19 - 0
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";
+};

+ 8 - 0
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