Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: 8302/1: Add a secondary_startup that assumes ARM mode

Some platforms always enter the kernel in ARM mode even if the
kernel is compiled for THUMB2. Add a small wrapper on top of
secondary_startup() that switches into THUMB2 mode.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by

Stephen Boyd and committed by
Russell King
bafe5865 ada63d40

+7
+7
arch/arm/kernel/head.S
··· 346 346 347 347 #if defined(CONFIG_SMP) 348 348 .text 349 + ENTRY(secondary_startup_arm) 350 + .arm 351 + THUMB( adr r9, BSYM(1f) ) @ Kernel is entered in ARM. 352 + THUMB( bx r9 ) @ If this is a Thumb-2 kernel, 353 + THUMB( .thumb ) @ switch to Thumb now. 354 + THUMB(1: ) 349 355 ENTRY(secondary_startup) 350 356 /* 351 357 * Common entry point for secondary CPUs. ··· 391 385 THUMB( add r12, r10, #PROCINFO_INITFUNC ) 392 386 THUMB( ret r12 ) 393 387 ENDPROC(secondary_startup) 388 + ENDPROC(secondary_startup_arm) 394 389 395 390 /* 396 391 * r6 = &secondary_data