]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ARM: zynq: Support smp in thumb mode
authorLuis Araneda <luaraneda@gmail.com>
Thu, 8 Aug 2019 12:52:42 +0000 (08:52 -0400)
committerMichal Simek <michal.simek@xilinx.com>
Wed, 14 Aug 2019 07:40:35 +0000 (09:40 +0200)
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.
This is related to the fix applied to SoCFPGA by
commit 5616f36713ea
("ARM: SoCFPGA: Fix secondary CPU startup in thumb2 kernel")

Additionally, start secondary CPUs on secondary_startup_arm
to automatically switch from ARM to thumb on a thumb kernel

Signed-off-by: Luis Araneda <luaraneda@gmail.com>
Suggested-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
arch/arm/mach-zynq/headsmp.S
arch/arm/mach-zynq/platsmp.c

index ab85003cf9ad21f56c8c34949a4a2981d878b8d8..3449e0d1f9900db4890489dd39a77ffc05599115 100644 (file)
@@ -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
index a7cfe07156f467fc188e6ecaf1d8f4d3640cefa7..38728badabd43144b5cec9c4091def374a095168 100644 (file)
@@ -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);
 }
 
 /*