Skip to content

Commit

Permalink
Merge tag 'zynq-soc-for-v5.6' of https://github.com/Xilinx/linux-xlnx
Browse files Browse the repository at this point in the history
…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]>
  • Loading branch information
olofj committed Jan 21, 2020
2 parents 21473e1 + 6c6b3f1 commit 31a7d26
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions arch/arm/mach-zynq/platsmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include <linux/init.h>
#include <linux/io.h>
#include <asm/cacheflush.h>
#include <asm/smp_plat.h>
#include <asm/smp_scu.h>
#include <linux/irqchip/arm-gic.h>
#include "common.h"
Expand All @@ -30,6 +31,7 @@ int zynq_cpun_start(u32 address, int cpu)
{
u32 trampoline_code_size = &zynq_secondary_trampoline_end -
&zynq_secondary_trampoline;
u32 phy_cpuid = cpu_logical_map(cpu);

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

zynq_slcr_cpu_stop(cpu);
zynq_slcr_cpu_stop(phy_cpuid);
if (address) {
if (__pa(PAGE_OFFSET)) {
zero = ioremap(0, trampoline_code_size);
Expand Down Expand Up @@ -68,7 +70,7 @@ int zynq_cpun_start(u32 address, int cpu)
if (__pa(PAGE_OFFSET))
iounmap(zero);
}
zynq_slcr_cpu_start(cpu);
zynq_slcr_cpu_start(phy_cpuid);

return 0;
}
Expand Down

0 comments on commit 31a7d26

Please sign in to comment.