diff options
author | Zhang Zhuoyu <Zhuoyu.Zhang@freescale.com> | 2014-10-21 07:11:40 (GMT) |
---|---|---|
committer | Matthew Weigel <Matthew.Weigel@freescale.com> | 2014-12-11 18:38:49 (GMT) |
commit | db4f06cb334bbd91a9ba26f79137292b3597aec8 (patch) | |
tree | eb40d07c9debced123462c1749014aafd8e33131 /arch/arm/mach-imx/platsmp.c | |
parent | 673581d1ac66bce8d14567b9b539fb956f7e580d (diff) | |
download | linux-fsl-qoriq-db4f06cb334bbd91a9ba26f79137292b3597aec8.tar.xz |
ARM:LS1021aQDS: add CPU hotplug platform support
This is only a CPU pseudo-hotplug, and incompatible with kexec mechanics.
As per the discussion with Russell King in opensource community, CPU hotplug
should reset the secondary core to be compatible with kexec.
"In the kexec case, when the secondary CPU wakeup, the code it is executing
can already been overwritten, which then means that the CPU ends up executing
some random code instead."
For LS102x platforms, resetting core can be realized, but come across cache
coherence problem which is still unresolved, we will submit another patch to
implement CPU hotplug by resetting core once cache coherence issue resloved.
Signed-off-by: Zhang Zhuoyu <Zhuoyu.Zhang@freescale.com>
---
Patch Sent Upstream
url: https://lkml.org/lkml/2014/9/26/422
Change-Id: I36509f99299f874ef0df891a33c907a749649527
Reviewed-on: http://git.am.freescale.net:8181/21918
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Yang Li <LeoLi@freescale.com>
Reviewed-by: Zhengxiong Jin <Jason.Jin@freescale.com>
Diffstat (limited to 'arch/arm/mach-imx/platsmp.c')
-rw-r--r-- | arch/arm/mach-imx/platsmp.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/platsmp.c b/arch/arm/mach-imx/platsmp.c index fd41b8d..c412178 100644 --- a/arch/arm/mach-imx/platsmp.c +++ b/arch/arm/mach-imx/platsmp.c @@ -136,4 +136,8 @@ static void __init ls1021a_smp_prepare_cpus(unsigned int max_cpus) struct smp_operations ls1021a_smp_ops __initdata = { .smp_prepare_cpus = ls1021a_smp_prepare_cpus, .smp_boot_secondary = ls1021a_boot_secondary, +#ifdef CONFIG_HOTPLUG_CPU + .cpu_die = ls1021a_cpu_die, + .cpu_kill = ls1021a_cpu_kill, +#endif }; |