Skip to content

Commit da0159f

Browse files
Joel Fernandestmlind
authored andcommitted
ARM: OMAP5: Switch to THUMB mode if needed on secondary CPU
On my DRA7 system, when the kernel is built in Thumb-2 mode, the secondary CPU (Cortex A15) fails to come up causing SMP boot on second CPU to timeout. This seems to be because the CPU is in ARM mode once the ROM hands over control to the kernel. Switch to Thumb-2 mode if required once the kernel is control of secondary CPU. On OMAP4 on the other hand, it appears to be in Thumb-2 mode on entry so this is not required and SMP boot works as is. Also corrected a spurious '+' and updated copyright information. Cc: Santosh Shilimkar <santosh.shilimkar@ti.com> Cc: Russell King <linux@arm.linux.org.uk> Cc: Nishanth Menon <nm@ti.com> Tested-by: Nishanth Menon <nm@ti.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Joel Fernandes <joelf@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
1 parent 1ff3859 commit da0159f

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

arch/arm/mach-omap2/omap-headsmp.S

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* Secondary CPU startup routine source file.
33
*
4-
* Copyright (C) 2009 Texas Instruments, Inc.
4+
* Copyright (C) 2009-2014 Texas Instruments, Inc.
55
*
66
* Author:
77
* Santosh Shilimkar <santosh.shilimkar@ti.com>
@@ -28,9 +28,13 @@
2828
* code. This routine also provides a holding flag into which
2929
* secondary core is held until we're ready for it to initialise.
3030
* The primary core will update this flag using a hardware
31-
+ * register AuxCoreBoot0.
31+
* register AuxCoreBoot0.
3232
*/
3333
ENTRY(omap5_secondary_startup)
34+
.arm
35+
THUMB( adr r9, BSYM(wait) ) @ CPU may be entered in ARM mode.
36+
THUMB( bx r9 ) @ If this is a Thumb-2 kernel,
37+
THUMB( .thumb ) @ switch to Thumb now.
3438
wait: ldr r2, =AUX_CORE_BOOT0_PA @ read from AuxCoreBoot0
3539
ldr r0, [r2]
3640
mov r0, r0, lsr #5

0 commit comments

Comments
 (0)