aboutsummaryrefslogtreecommitdiffstats
path: root/xen
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2013-09-27 10:38:21 +0100
committerIan Campbell <ian.campbell@citrix.com>2013-09-27 16:49:43 +0100
commit09d1e8de8099ed2e3f75c8fe10750ad1b9b5264f (patch)
treeff816534993a41df993a2a9a6781b71e83804607 /xen
parentf474d3b4727c838ece492661be420387e4e55866 (diff)
downloadxen-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.c31
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,