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

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.eu
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+4 -2
+2
arch/arm/mach-zynq/headsmp.S
··· 7 7 #include <linux/init.h> 8 8 #include <asm/assembler.h> 9 9 10 + .arm 11 + 10 12 ENTRY(zynq_secondary_trampoline) 11 13 ARM_BE8(setend be) @ ensure we are in BE8 mode 12 14 ldr r0, zynq_secondary_trampoline_jump
+2 -2
arch/arm/mach-zynq/platsmp.c
··· 57 57 * 0x4: Jump by mov instruction 58 58 * 0x8: Jumping address 59 59 */ 60 - memcpy((__force void *)zero, &zynq_secondary_trampoline, 60 + memcpy_toio(zero, &zynq_secondary_trampoline, 61 61 trampoline_size); 62 62 writel(address, zero + trampoline_size); 63 63 ··· 81 81 82 82 static int zynq_boot_secondary(unsigned int cpu, struct task_struct *idle) 83 83 { 84 - return zynq_cpun_start(__pa_symbol(secondary_startup), cpu); 84 + return zynq_cpun_start(__pa_symbol(secondary_startup_arm), cpu); 85 85 } 86 86 87 87 /*