Skip to content

Commit 31a7d26

Browse files
committed
Merge tag 'zynq-soc-for-v5.6' of https://github.com/Xilinx/linux-xlnx into arm/soc
ARM: Xilinx Zynq SoC patches for v5.6 - Fix cpuid handling logic in platform SMP startup code * tag 'zynq-soc-for-v5.6' of https://github.com/Xilinx/linux-xlnx: ARM: zynq: use physical cpuid in zynq_slcr_cpu_stop/start Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Olof Johansson <[email protected]>
2 parents 21473e1 + 6c6b3f1 commit 31a7d26

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

arch/arm/mach-zynq/platsmp.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include <linux/init.h>
1616
#include <linux/io.h>
1717
#include <asm/cacheflush.h>
18+
#include <asm/smp_plat.h>
1819
#include <asm/smp_scu.h>
1920
#include <linux/irqchip/arm-gic.h>
2021
#include "common.h"
@@ -30,6 +31,7 @@ int zynq_cpun_start(u32 address, int cpu)
3031
{
3132
u32 trampoline_code_size = &zynq_secondary_trampoline_end -
3233
&zynq_secondary_trampoline;
34+
u32 phy_cpuid = cpu_logical_map(cpu);
3335

3436
/* MS: Expectation that SLCR are directly map and accessible */
3537
/* Not possible to jump to non aligned address */
@@ -39,7 +41,7 @@ int zynq_cpun_start(u32 address, int cpu)
3941
u32 trampoline_size = &zynq_secondary_trampoline_jump -
4042
&zynq_secondary_trampoline;
4143

42-
zynq_slcr_cpu_stop(cpu);
44+
zynq_slcr_cpu_stop(phy_cpuid);
4345
if (address) {
4446
if (__pa(PAGE_OFFSET)) {
4547
zero = ioremap(0, trampoline_code_size);
@@ -68,7 +70,7 @@ int zynq_cpun_start(u32 address, int cpu)
6870
if (__pa(PAGE_OFFSET))
6971
iounmap(zero);
7072
}
71-
zynq_slcr_cpu_start(cpu);
73+
zynq_slcr_cpu_start(phy_cpuid);
7274

7375
return 0;
7476
}

0 commit comments

Comments
 (0)