If the device tree contains a PSCI node, we bring up secondary CPUs
by invoking the appropriate PSCI handler.
This will take priority over platform specific functions (which could
call the PSCI wrapper themselves if needed), so any PSCI enablement
of a platform will automatically be used (as on Linux).
Signed-off-by: Andre Przywara <andre.przywara@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
int __init arch_cpu_init(int cpu, struct dt_device_node *dn)
{
- /* TODO handle PSCI init */
+ /* Not needed on ARM32, as there is no relevant information in
+ * the CPU device tree node for ARMv7 CPUs.
+ */
return 0;
}
#include <asm/platform.h>
#include <xen/device_tree.h>
#include <xen/init.h>
+#include <asm/psci.h>
extern const struct platform_desc _splatform[], _eplatform[];
#ifdef CONFIG_ARM_32
int __init platform_cpu_up(int cpu)
{
+ if ( psci_available )
+ return call_psci_cpu_on(cpu);
+
if ( platform && platform->cpu_up )
return platform->cpu_up(cpu);