Commit e8606cd4 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'zynq-soc-for-v5.4' of https://github.com/Xilinx/linux-xlnx into arm/soc

ARM: Xilinx Zynq SoC patches for v5.4

- Add support for SMP in thumb mode
- Fix SMP trampoline code when FORTIFY_SOURCE is enabled

* tag 'zynq-soc-for-v5.4' of https://github.com/Xilinx/linux-xlnx:
  ARM: zynq: Use memcpy_toio instead of memcpy on smp bring-up
  ARM: zynq: Support smp in thumb mode

Link: https://lore.kernel.org/r/8e00ba70-9403-4bf7-2870-a94758e37346@monstr.euSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents a3a2902f b7005d4e
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h> #include <asm/assembler.h>
.arm
ENTRY(zynq_secondary_trampoline) ENTRY(zynq_secondary_trampoline)
ARM_BE8(setend be) @ ensure we are in BE8 mode ARM_BE8(setend be) @ ensure we are in BE8 mode
ldr r0, zynq_secondary_trampoline_jump ldr r0, zynq_secondary_trampoline_jump
......
...@@ -57,7 +57,7 @@ int zynq_cpun_start(u32 address, int cpu) ...@@ -57,7 +57,7 @@ int zynq_cpun_start(u32 address, int cpu)
* 0x4: Jump by mov instruction * 0x4: Jump by mov instruction
* 0x8: Jumping address * 0x8: Jumping address
*/ */
memcpy((__force void *)zero, &zynq_secondary_trampoline, memcpy_toio(zero, &zynq_secondary_trampoline,
trampoline_size); trampoline_size);
writel(address, zero + trampoline_size); writel(address, zero + trampoline_size);
...@@ -81,7 +81,7 @@ EXPORT_SYMBOL(zynq_cpun_start); ...@@ -81,7 +81,7 @@ EXPORT_SYMBOL(zynq_cpun_start);
static int zynq_boot_secondary(unsigned int cpu, struct task_struct *idle) 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);
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment