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 <mail@david-bauer.net>
This commit is contained in:
David Bauer 2024-06-09 19:34:46 +02:00
parent d0620706f0
commit 3001d3c5d4
6 changed files with 20 additions and 18 deletions

View File

@ -63,8 +63,8 @@ define Device/enterasys_ws-ap3710i
DEVICE_MODEL := WS-AP3710i DEVICE_MODEL := WS-AP3710i
BLOCKSIZE := 128k BLOCKSIZE := 128k
KERNEL_NAME := simpleImage.ws-ap3710i KERNEL_NAME := simpleImage.ws-ap3710i
KERNEL_ENTRY := 0x1000000 KERNEL_ENTRY := 0x1500000
KERNEL_LOADADDR := 0x1000000 KERNEL_LOADADDR := 0x1500000
KERNEL = kernel-bin | uImage none KERNEL = kernel-bin | uImage none
KERNEL_INITRAMFS := kernel-bin | uImage none KERNEL_INITRAMFS := kernel-bin | uImage none
IMAGES := sysupgrade.bin IMAGES := sysupgrade.bin

View File

@ -48,13 +48,15 @@
--- a/arch/powerpc/boot/wrapper --- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper
@@ -326,7 +326,8 @@ adder875-redboot) @@ -331,6 +331,11 @@ simpleboot-tl-wdr4900-v1)
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"
link_address='0x1000000' link_address='0x1000000'
binary=y 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

View File

@ -47,12 +47,12 @@ WS-AP3825i AP.
--- a/arch/powerpc/boot/wrapper --- a/arch/powerpc/boot/wrapper
+++ b/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 binary=y
;; ;;
simpleboot-tl-wdr4900-v1|\ -simpleboot-tl-wdr4900-v1)
-simpleboot-ws-ap3710i) +simpleboot-tl-wdr4900-v1|\
+simpleboot-ws-ap3710i|\
+simpleboot-ws-ap3825i) +simpleboot-ws-ap3825i)
platformo="$object/fixed-head.o $object/simpleboot.o" platformo="$object/fixed-head.o $object/simpleboot.o"
link_address='0x1000000' link_address='0x1000000'

View File

@ -40,10 +40,10 @@
image-$(CONFIG_MVME7100) += dtbImage.mvme7100 image-$(CONFIG_MVME7100) += dtbImage.mvme7100
--- a/arch/powerpc/boot/wrapper --- a/arch/powerpc/boot/wrapper
+++ b/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-tl-wdr4900-v1|\
simpleboot-ws-ap3710i|\
+simpleboot-ws-ap3715i|\ +simpleboot-ws-ap3715i|\
simpleboot-ws-ap3825i) simpleboot-ws-ap3825i)
platformo="$object/fixed-head.o $object/simpleboot.o" platformo="$object/fixed-head.o $object/simpleboot.o"

View File

@ -53,5 +53,5 @@
;; ;;
+simpleboot-br200-wp|\ +simpleboot-br200-wp|\
simpleboot-tl-wdr4900-v1|\ simpleboot-tl-wdr4900-v1|\
simpleboot-ws-ap3710i|\
simpleboot-ws-ap3715i|\ simpleboot-ws-ap3715i|\
simpleboot-ws-ap3825i)

View File

@ -1,6 +1,6 @@
--- a/arch/powerpc/platforms/85xx/Kconfig --- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/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 This board is a VPN Gateway-Router with a
Freescale P1010 SoC. Freescale P1010 SoC.