summaryrefslogtreecommitdiffstats
path: root/arch/ppc64/kernel/iSeries_setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ppc64/kernel/iSeries_setup.c')
-rw-r--r--arch/ppc64/kernel/iSeries_setup.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/arch/ppc64/kernel/iSeries_setup.c b/arch/ppc64/kernel/iSeries_setup.c
index 99e4307..27faf4f 100644
--- a/arch/ppc64/kernel/iSeries_setup.c
+++ b/arch/ppc64/kernel/iSeries_setup.c
@@ -359,12 +359,6 @@ static void __init iSeries_init_early(void)
*/
iommu_init_early_iSeries();
- /*
- * Initialize the table which translate Linux physical addresses to
- * AS/400 absolute addresses
- */
- build_iSeries_Memory_Map();
-
iSeries_get_cmdline();
/* Save unparsed command line copy for /proc/cmdline */
@@ -894,6 +888,11 @@ static int iseries_dedicated_idle(void)
void __init iSeries_init_IRQ(void) { }
#endif
+static int __init iseries_probe(int platform)
+{
+ return PLATFORM_ISERIES_LPAR == platform;
+}
+
struct machdep_calls __initdata iseries_md = {
.setup_arch = iSeries_setup_arch,
.get_cpuinfo = iSeries_get_cpuinfo,
@@ -909,6 +908,7 @@ struct machdep_calls __initdata iseries_md = {
.get_rtc_time = iSeries_get_rtc_time,
.calibrate_decr = iSeries_calibrate_decr,
.progress = iSeries_progress,
+ .probe = iseries_probe,
/* XXX Implement enable_pmcs for iSeries */
};
@@ -1047,9 +1047,17 @@ void build_flat_dt(struct iseries_flat_dt *dt)
dt_push_u32(dt, OF_DT_END);
}
-void __init iSeries_early_setup(void)
+void * __init iSeries_early_setup(void)
{
iSeries_fixup_klimit();
+ /*
+ * Initialize the table which translate Linux physical addresses to
+ * AS/400 absolute addresses
+ */
+ build_iSeries_Memory_Map();
+
build_flat_dt(&iseries_dt);
+
+ return (void *) __pa(&iseries_dt);
}
OpenPOWER on IntegriCloud