From 3001d3c5d446bf53fc222640d49a4cc79e04a2f3 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Sun, 9 Jun 2024 19:34:46 +0200 Subject: [PATCH 1/3] mpc85xx: fix WS-AP3710i boot On master, the bootwrapper link-address for all simpleImage targets was relocated to 0x15000000 due to growing kernel size. This was not done on OpenWrt 23.05, as the decompressed kernel still fits. However, with the wrapper for the WS-AP3710i, the bootloader attempts execute in-place with the uImage load-address of 0x1000000. As the image is compiled without the uImage header in mind, this naturally fails. In order to fix this, link the WS-AP3715i simpleImage at 0x15000000 as done in master. This will force the bootloader to relocate the code to the proper address and skip XIP. Signed-off-by: David Bauer --- target/linux/mpc85xx/image/p1020.mk | 4 ++-- .../106-powerpc-85xx-ws-ap3710i-support.patch | 18 ++++++++++-------- ...7-powerpc-85xx-add-ws-ap3825i-support.patch | 8 ++++---- ...9-powerpc-85xx-add-ws-ap3715i-support.patch | 4 ++-- .../110-powerpc-85xx-br200-wp-support.patch | 2 +- .../111-powerpc-85xx-hpe-msm-support.patch | 2 +- 6 files changed, 20 insertions(+), 18 deletions(-) diff --git a/target/linux/mpc85xx/image/p1020.mk b/target/linux/mpc85xx/image/p1020.mk index b9fb15ed93..1ec90a233d 100644 --- a/target/linux/mpc85xx/image/p1020.mk +++ b/target/linux/mpc85xx/image/p1020.mk @@ -63,8 +63,8 @@ define Device/enterasys_ws-ap3710i DEVICE_MODEL := WS-AP3710i BLOCKSIZE := 128k KERNEL_NAME := simpleImage.ws-ap3710i - KERNEL_ENTRY := 0x1000000 - KERNEL_LOADADDR := 0x1000000 + KERNEL_ENTRY := 0x1500000 + KERNEL_LOADADDR := 0x1500000 KERNEL = kernel-bin | uImage none KERNEL_INITRAMFS := kernel-bin | uImage none IMAGES := sysupgrade.bin diff --git a/target/linux/mpc85xx/patches-5.15/106-powerpc-85xx-ws-ap3710i-support.patch b/target/linux/mpc85xx/patches-5.15/106-powerpc-85xx-ws-ap3710i-support.patch index 1edc2aa56b..c189d695ab 100644 --- a/target/linux/mpc85xx/patches-5.15/106-powerpc-85xx-ws-ap3710i-support.patch +++ b/target/linux/mpc85xx/patches-5.15/106-powerpc-85xx-ws-ap3710i-support.patch @@ -48,13 +48,15 @@ --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper -@@ -326,7 +326,8 @@ adder875-redboot) - platformo="$object/fixed-head.o $object/redboot-8xx.o" - binary=y - ;; --simpleboot-tl-wdr4900-v1) -+simpleboot-tl-wdr4900-v1|\ -+simpleboot-ws-ap3710i) - platformo="$object/fixed-head.o $object/simpleboot.o" +@@ -331,6 +331,11 @@ simpleboot-tl-wdr4900-v1) link_address='0x1000000' binary=y + ;; ++simpleboot-ws-ap3710i) ++ platformo="$object/fixed-head.o $object/simpleboot.o" ++ link_address='0x1500000' ++ binary=y ++ ;; + simpleboot-*) + platformo="$object/fixed-head.o $object/simpleboot.o" + binary=y diff --git a/target/linux/mpc85xx/patches-5.15/107-powerpc-85xx-add-ws-ap3825i-support.patch b/target/linux/mpc85xx/patches-5.15/107-powerpc-85xx-add-ws-ap3825i-support.patch index 3f05c906af..ddd16d369e 100644 --- a/target/linux/mpc85xx/patches-5.15/107-powerpc-85xx-add-ws-ap3825i-support.patch +++ b/target/linux/mpc85xx/patches-5.15/107-powerpc-85xx-add-ws-ap3825i-support.patch @@ -47,12 +47,12 @@ WS-AP3825i AP. --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper -@@ -327,7 +327,8 @@ adder875-redboot) +@@ -326,7 +326,8 @@ adder875-redboot) + platformo="$object/fixed-head.o $object/redboot-8xx.o" binary=y ;; - simpleboot-tl-wdr4900-v1|\ --simpleboot-ws-ap3710i) -+simpleboot-ws-ap3710i|\ +-simpleboot-tl-wdr4900-v1) ++simpleboot-tl-wdr4900-v1|\ +simpleboot-ws-ap3825i) platformo="$object/fixed-head.o $object/simpleboot.o" link_address='0x1000000' diff --git a/target/linux/mpc85xx/patches-5.15/109-powerpc-85xx-add-ws-ap3715i-support.patch b/target/linux/mpc85xx/patches-5.15/109-powerpc-85xx-add-ws-ap3715i-support.patch index fe9abbb1e2..ad8f4840b9 100644 --- a/target/linux/mpc85xx/patches-5.15/109-powerpc-85xx-add-ws-ap3715i-support.patch +++ b/target/linux/mpc85xx/patches-5.15/109-powerpc-85xx-add-ws-ap3715i-support.patch @@ -40,10 +40,10 @@ image-$(CONFIG_MVME7100) += dtbImage.mvme7100 --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper -@@ -328,6 +328,7 @@ adder875-redboot) +@@ -327,6 +327,7 @@ adder875-redboot) + binary=y ;; simpleboot-tl-wdr4900-v1|\ - simpleboot-ws-ap3710i|\ +simpleboot-ws-ap3715i|\ simpleboot-ws-ap3825i) platformo="$object/fixed-head.o $object/simpleboot.o" diff --git a/target/linux/mpc85xx/patches-5.15/110-powerpc-85xx-br200-wp-support.patch b/target/linux/mpc85xx/patches-5.15/110-powerpc-85xx-br200-wp-support.patch index ef05df3430..51968a0c91 100644 --- a/target/linux/mpc85xx/patches-5.15/110-powerpc-85xx-br200-wp-support.patch +++ b/target/linux/mpc85xx/patches-5.15/110-powerpc-85xx-br200-wp-support.patch @@ -53,5 +53,5 @@ ;; +simpleboot-br200-wp|\ simpleboot-tl-wdr4900-v1|\ - simpleboot-ws-ap3710i|\ simpleboot-ws-ap3715i|\ + simpleboot-ws-ap3825i) diff --git a/target/linux/mpc85xx/patches-5.15/111-powerpc-85xx-hpe-msm-support.patch b/target/linux/mpc85xx/patches-5.15/111-powerpc-85xx-hpe-msm-support.patch index 10ad4b98bd..d9c2e83efa 100644 --- a/target/linux/mpc85xx/patches-5.15/111-powerpc-85xx-hpe-msm-support.patch +++ b/target/linux/mpc85xx/patches-5.15/111-powerpc-85xx-hpe-msm-support.patch @@ -1,6 +1,6 @@ --- a/arch/powerpc/platforms/85xx/Kconfig +++ b/arch/powerpc/platforms/85xx/Kconfig -@@ -114,6 +114,17 @@ config FIREBOX_T10 +@@ -123,6 +123,17 @@ config FIREBOX_T10 This board is a VPN Gateway-Router with a Freescale P1010 SoC. From d8415fa2708b91f8b3cf67c11ed307e76d4b05a2 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Fri, 14 Jun 2024 22:50:26 +0200 Subject: [PATCH 2/3] mpc85xx: fix Enterasys WS-AP3710i eth mac-address With the introduction of the simpleImage loader, the MAC address is not set by the bootloader anymore. Fix this by reading the MAC address from the U-Boot environment partition. Signed-off-by: David Bauer (cherry picked from commit 22f92cce22401ef7df44357a7e6921d2cf45c840) --- target/linux/mpc85xx/base-files/lib/preinit/10_fix_eth_mac.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/linux/mpc85xx/base-files/lib/preinit/10_fix_eth_mac.sh b/target/linux/mpc85xx/base-files/lib/preinit/10_fix_eth_mac.sh index ddb9bef141..fc4beaef1a 100644 --- a/target/linux/mpc85xx/base-files/lib/preinit/10_fix_eth_mac.sh +++ b/target/linux/mpc85xx/base-files/lib/preinit/10_fix_eth_mac.sh @@ -3,6 +3,9 @@ preinit_set_mac_address() { case $(board_name) in + enterasys,ws-ap3710i) + ip link set dev eth0 address $(mtd_get_mac_ascii cfg1 ethaddr) + ;; enterasys,ws-ap3715i|\ extreme-networks,ws-ap3825i) ip link set dev eth0 address $(mtd_get_mac_ascii cfg1 ethaddr) From e367ba9ec4cde1159120fd34d3dbbd99f38da72a Mon Sep 17 00:00:00 2001 From: David Bauer Date: Sun, 16 Jun 2024 01:33:19 +0200 Subject: [PATCH 3/3] mpc85xx: fix label-mac-address for Enterasys WS-AP3710i The WS-AP3710i does not correctly expose its label-mac on eth0 anymore since the change to simpleLoader. Fix this by obtaining the label-mac from the U-Boot environment. Signed-off-by: David Bauer (cherry picked from commit e321e70ddcd82e0b4a5ad695b83a88d44cde02b4) --- target/linux/mpc85xx/base-files/etc/board.d/02_network | 4 ++++ .../linux/mpc85xx/files/arch/powerpc/boot/dts/ws-ap3710i.dts | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/target/linux/mpc85xx/base-files/etc/board.d/02_network b/target/linux/mpc85xx/base-files/etc/board.d/02_network index caf00ef414..2574ebc9b9 100644 --- a/target/linux/mpc85xx/base-files/etc/board.d/02_network +++ b/target/linux/mpc85xx/base-files/etc/board.d/02_network @@ -16,6 +16,10 @@ aerohive,hiveap-330|\ enterasys,ws-ap3715i) ucidef_set_interfaces_lan_wan "eth1" "eth0" ;; +enterasys,ws-ap3710i) + ucidef_set_interface_lan "eth0" + ucidef_set_label_macaddr "$(mtd_get_mac_ascii cfg1 ethaddr)" + ;; hpe,msm460) ucidef_set_interface_lan "eth0" ;; diff --git a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/ws-ap3710i.dts b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/ws-ap3710i.dts index 2eb6f6e21e..4c223bb602 100644 --- a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/ws-ap3710i.dts +++ b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/ws-ap3710i.dts @@ -15,7 +15,6 @@ led-failsafe = &led_power_red; led-running = &led_power_green; led-upgrade = &led_power_red; - label-mac-device = &enet0; }; chosen {