Message ID | 1398195639-29273-1-git-send-email-joelf@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
* Joel Fernandes <joelf@ti.com> [140422 12:41]: > 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> > Cc: Tony Lindgren <tony@atomide.com> > Tested-by: Nishanth Menon <nm@ti.com> > Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> > Signed-off-by: Joel Fernandes <joelf@ti.com> Thanks applying into omap-for-v3.15/fixes-v2. Tony
diff --git a/arch/arm/mach-omap2/omap-headsmp.S b/arch/arm/mach-omap2/omap-headsmp.S index 75e9295..40c5d5f 100644 --- a/arch/arm/mach-omap2/omap-headsmp.S +++ b/arch/arm/mach-omap2/omap-headsmp.S @@ -1,7 +1,7 @@ /* * Secondary CPU startup routine source file. * - * Copyright (C) 2009 Texas Instruments, Inc. + * Copyright (C) 2009-2014 Texas Instruments, Inc. * * Author: * Santosh Shilimkar <santosh.shilimkar@ti.com> @@ -28,9 +28,13 @@ * code. This routine also provides a holding flag into which * secondary core is held until we're ready for it to initialise. * The primary core will update this flag using a hardware -+ * register AuxCoreBoot0. + * register AuxCoreBoot0. */ ENTRY(omap5_secondary_startup) +.arm +THUMB( adr r9, BSYM(wait) ) @ CPU may be entered in ARM mode. +THUMB( bx r9 ) @ If this is a Thumb-2 kernel, +THUMB( .thumb ) @ switch to Thumb now. wait: ldr r2, =AUX_CORE_BOOT0_PA @ read from AuxCoreBoot0 ldr r0, [r2] mov r0, r0, lsr #5