From 5f856ccc34df25060d36a5a81b7b45b574d86e35 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Sun, 3 Dec 2023 20:09:24 +0100 Subject: [PATCH] arch: powerpc: simpleboot: prevent overwrite of CPU1 spin-table Don't overwrite the spin-table of additional CPU cores with loader-heap. U-Boot places the spin-table for CPU1 on P1020 SoCs in the top 1MB of system-memory. Instead of parsing reserved-memory (which would be considerable more work), reduce the available system-memory for the loader by 1MB. This prevents the loader from overwriting the spin-table of additional CPU cores on these platforms. Linux itself needs to be made aware by this using reserved-memory definitions. This patch is required for using CPU1 on the Extreme Networks WS-AP3825i. Signed-off-by: David Bauer --- arch/powerpc/boot/simpleboot.c | 5 +++++ 1 file changed, 5 insertions(+) --- a/arch/powerpc/boot/simpleboot.c +++ b/arch/powerpc/boot/simpleboot.c @@ -65,6 +65,11 @@ void platform_init(unsigned long r3, uns if (sizeof(void *) == 4 && memsize64 >= 0x100000000ULL) memsize64 = 0xffffffff; + /* Reserve upper 1 MB of memory for CPU1 spin-table */ + if (memsize64 > 0x100000) { + memsize64 = memsize64 - 0x100000; + } + /* finally, setup the timebase */ node = fdt_node_offset_by_prop_value(_dtb_start, -1, "device_type", "cpu", sizeof("cpu"));