diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2013-09-27 10:38:21 +0100 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2013-09-27 16:49:43 +0100 |
commit | 09d1e8de8099ed2e3f75c8fe10750ad1b9b5264f (patch) | |
tree | ff816534993a41df993a2a9a6781b71e83804607 /xen | |
parent | f474d3b4727c838ece492661be420387e4e55866 (diff) | |
download | xen-09d1e8de8099ed2e3f75c8fe10750ad1b9b5264f.tar.gz xen-09d1e8de8099ed2e3f75c8fe10750ad1b9b5264f.tar.bz2 xen-09d1e8de8099ed2e3f75c8fe10750ad1b9b5264f.zip |
xen: arm: implement smp initialisation callbacks for exynos5
These were removed in "xen: arm: rewrite start of day page table and cpu
bring up".
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Reviewed-by: Julien Grall <julien.grall@linaro.org>
Diffstat (limited to 'xen')
-rw-r--r-- | xen/arch/arm/platforms/exynos5.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/xen/arch/arm/platforms/exynos5.c b/xen/arch/arm/platforms/exynos5.c index 36d2325463..a2bf91686f 100644 --- a/xen/arch/arm/platforms/exynos5.c +++ b/xen/arch/arm/platforms/exynos5.c @@ -65,6 +65,35 @@ static int exynos5_specific_mapping(struct domain *d) return 0; } +static int __init exynos5_smp_init(void) +{ + void __iomem *sysram; + + sysram = ioremap_nocache(S5P_PA_SYSRAM, PAGE_SIZE); + if ( !sysram ) + { + dprintk(XENLOG_ERR, "Unable to map exynos5 MMIO\n"); + return -EFAULT; + } + + printk("Set SYSRAM to %"PRIpaddr" (%p)\n", + __pa(init_secondary), init_secondary); + writel(__pa(init_secondary), sysram); + + iounmap(sysram); + + return 0; +} + +static int __init exynos5_cpu_up(int cpu) +{ + /* Nothing to do here, the generic sev() will suffice to kick CPUs + * out of either the firmware or our own smp_up_cpu gate, + * depending on where they have ended up. */ + + return 0; +} + static void exynos5_reset(void) { void __iomem *pmu; @@ -107,6 +136,8 @@ PLATFORM_START(exynos5, "SAMSUNG EXYNOS5") .compatible = exynos5_dt_compat, .init_time = exynos5_init_time, .specific_mapping = exynos5_specific_mapping, + .smp_init = exynos5_smp_init, + .cpu_up = exynos5_cpu_up, .reset = exynos5_reset, .quirks = exynos5_quirks, .blacklist_dev = exynos5_blacklist_dev, |