mirror of
https://github.com/torvalds/linux.git
synced 2024-11-30 16:11:38 +00:00
5f595063af
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 5616f36713
("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>
24 lines
615 B
ArmAsm
24 lines
615 B
ArmAsm
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (c) 2013 Steffen Trumtrar <s.trumtrar@pengutronix.de>
|
|
* Copyright (c) 2012-2013 Xilinx
|
|
*/
|
|
#include <linux/linkage.h>
|
|
#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
|
|
ARM_BE8(rev r0, r0)
|
|
bx r0
|
|
.globl zynq_secondary_trampoline_jump
|
|
zynq_secondary_trampoline_jump:
|
|
/* Space for jumping address */
|
|
.word 0 /* cpu 1 */
|
|
.globl zynq_secondary_trampoline_end
|
|
zynq_secondary_trampoline_end:
|
|
ENDPROC(zynq_secondary_trampoline)
|