summaryrefslogtreecommitdiff
path: root/arch/arm/mach-socfpga/spl_agilex.c
diff options
context:
space:
mode:
authorMichael Walle <michael@walle.cc>2020-06-01 21:53:24 +0200
committerPriyanka Jain <priyanka.jain@nxp.com>2020-07-27 14:16:27 +0530
commitb27f48540e634ee7c3f3300e95d0fc688c00a50d (patch)
tree2d6c3c0b61ca705b60876b535c26016ffa2e9227 /arch/arm/mach-socfpga/spl_agilex.c
parente0152dbed683ed02af9294551fd4f03823ef7a5a (diff)
downloadu-boot-b27f48540e634ee7c3f3300e95d0fc688c00a50d.tar.gz
armv8: layerscape: fix spin-table support
Spin tables are broken with bootefi. This is because - in contrast to the booti call chain - there is no call to smp_kick_all_cpus(). Due to this missing call the secondary CPUs are never released from their "wait for interrupt state", see secondary_boot_func() in lowlevel.S. Originally, this "wait for interrupt" is there to make sure, the spin table is cleared before the secondary cores read it for the first time. But the boot flow for the layerscape architecture is different from that. The CPUs are release from their BootROM _after_ U-Boot's spin-table is cleared, see fsl_layerscape_wake_seconday_cores() in mp.c. Thus, there is no need to wait for this interrupt and no need for kicking all cores on cpu_release. An atomic 64bit write to the spin-table and a "sev" is sufficient. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
Diffstat (limited to 'arch/arm/mach-socfpga/spl_agilex.c')
0 files changed, 0 insertions, 0 deletions