aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc64
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2005-09-23 01:00:20 -0400
committerStephen Rothwell <sfr@canb.auug.org.au>2005-09-23 01:00:20 -0400
commit3ab42407fe0628c7880b21eff057566390865319 (patch)
tree2e5f9aa35cf7603a4298f2940d9ec53b588ca6b3 /arch/ppc64
parent4762713a93fa8706c31b0897c1340e7dc282d8fb (diff)
ppc64 iSeries: Move memory setup into iSeries device tree
This patch adds the required nodes to the iSeries device tree to allow early_init_devtree() to do the lmb setup for us. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Diffstat (limited to 'arch/ppc64')
-rw-r--r--arch/ppc64/kernel/iSeries_setup.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/arch/ppc64/kernel/iSeries_setup.c b/arch/ppc64/kernel/iSeries_setup.c
index 27faf4f0967a..639f400d6b0c 100644
--- a/arch/ppc64/kernel/iSeries_setup.c
+++ b/arch/ppc64/kernel/iSeries_setup.c
@@ -376,11 +376,6 @@ static void __init iSeries_init_early(void)
376 } 376 }
377 } 377 }
378 378
379 lmb_init();
380 lmb_add(0, systemcfg->physicalMemorySize);
381 lmb_analyze();
382 lmb_reserve(0, __pa(klimit));
383
384 /* Initialize machine-dependency vectors */ 379 /* Initialize machine-dependency vectors */
385#ifdef CONFIG_SMP 380#ifdef CONFIG_SMP
386 smp_init_iSeries(); 381 smp_init_iSeries();
@@ -1039,9 +1034,24 @@ void dt_prop_empty(struct iseries_flat_dt *dt, char *name)
1039 1034
1040void build_flat_dt(struct iseries_flat_dt *dt) 1035void build_flat_dt(struct iseries_flat_dt *dt)
1041{ 1036{
1037 u64 tmp[2];
1038
1042 dt_init(dt); 1039 dt_init(dt);
1043 1040
1044 dt_start_node(dt, ""); 1041 dt_start_node(dt, "");
1042
1043 dt_prop_u32(dt, "#address-cells", 2);
1044 dt_prop_u32(dt, "#size-cells", 2);
1045
1046 /* /memory */
1047 dt_start_node(dt, "memory@0");
1048 dt_prop_str(dt, "name", "memory");
1049 dt_prop_str(dt, "device_type", "memory");
1050 tmp[0] = 0;
1051 tmp[1] = systemcfg->physicalMemorySize;
1052 dt_prop_u64_list(dt, "reg", tmp, 2);
1053 dt_end_node(dt);
1054
1045 dt_end_node(dt); 1055 dt_end_node(dt);
1046 1056
1047 dt_push_u32(dt, OF_DT_END); 1057 dt_push_u32(dt, OF_DT_END);