On 06. 08. 19 5:07, Luis Araneda wrote:
Add .arm directive to headsmp.S to ensure that the CPU starts in 32-bit ARM mode and the correct code size is copied on smp bring-up
Additionally, start secondary CPUs on secondary_startup_arm to automatically switch from ARM to thumb on a thumb kernel
Suggested-by: Michal Simek michal.simek@xilinx.com Signed-off-by: Luis Araneda luaraneda@gmail.com
arch/arm/mach-zynq/headsmp.S | 2 ++ arch/arm/mach-zynq/platsmp.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/arch/arm/mach-zynq/headsmp.S b/arch/arm/mach-zynq/headsmp.S index ab85003cf9ad..3449e0d1f990 100644 --- a/arch/arm/mach-zynq/headsmp.S +++ b/arch/arm/mach-zynq/headsmp.S @@ -7,6 +7,8 @@ #include <linux/init.h> #include <asm/assembler.h>
- .arm
ENTRY(zynq_secondary_trampoline) ARM_BE8(setend be) @ ensure we are in BE8 mode ldr r0, zynq_secondary_trampoline_jump diff --git a/arch/arm/mach-zynq/platsmp.c b/arch/arm/mach-zynq/platsmp.c index a7cfe07156f4..38728badabd4 100644 --- a/arch/arm/mach-zynq/platsmp.c +++ b/arch/arm/mach-zynq/platsmp.c @@ -81,7 +81,7 @@ EXPORT_SYMBOL(zynq_cpun_start); static int zynq_boot_secondary(unsigned int cpu, struct task_struct *idle) {
- return zynq_cpun_start(__pa_symbol(secondary_startup), cpu);
- return zynq_cpun_start(__pa_symbol(secondary_startup_arm), cpu);
} /*
It is really a question if this should go to stable tree. It is pretty much new feature. Will be good to also add link to similar patch for example this one 5616f36713ea77f57ae908bf2fef641364403c9f.
M