mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 07:22:33 +00:00
42 lines
1.4 KiB
Diff
42 lines
1.4 KiB
Diff
|
From 5f856ccc34df25060d36a5a81b7b45b574d86e35 Mon Sep 17 00:00:00 2001
|
||
|
From: David Bauer <mail@david-bauer.net>
|
||
|
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 <mail@david-bauer.net>
|
||
|
---
|
||
|
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"));
|