diff options
| author | Harith G <harith.g@alifsemi.com> | 2024-09-18 06:57:53 +0100 |
|---|---|---|
| committer | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2024-11-12 16:38:47 +0000 |
| commit | 9e9b0cf9319b4db143014477b0bc4b39894248f1 (patch) | |
| tree | 8ff9b5e969b58ffc963010d9419ac1adb797f3e2 /arch/arm/kernel/head.S | |
| parent | ed6cbe6e5563452f305e89c15846820f2874e431 (diff) | |
| download | linux-9e9b0cf9319b4db143014477b0bc4b39894248f1.tar.gz linux-9e9b0cf9319b4db143014477b0bc4b39894248f1.tar.bz2 linux-9e9b0cf9319b4db143014477b0bc4b39894248f1.zip | |
ARM: 9420/1: smp: Fix SMP for xip kernels
Fix the physical address calculation of the following to get smp working
on xip kernels.
- secondary_data needed for secondary cpu bootup.
- secondary_startup address passed through psci.
- identity mapped code region needed for enabling mmu for secondary cpus.
Signed-off-by: Harith George <harith.g@alifsemi.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'arch/arm/kernel/head.S')
| -rw-r--r-- | arch/arm/kernel/head.S | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 28873cda464f..f22c50d4bd41 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S @@ -411,7 +411,11 @@ ENTRY(secondary_startup) /* * Use the page tables supplied from __cpu_up. */ +#ifdef CONFIG_XIP_KERNEL + ldr r3, =(secondary_data + PLAT_PHYS_OFFSET - PAGE_OFFSET) +#else adr_l r3, secondary_data +#endif mov_l r12, __secondary_switched ldrd r4, r5, [r3, #0] @ get secondary_data.pgdir ARM_BE8(eor r4, r4, r5) @ Swap r5 and r4 in BE: |
