ppc64 iSeries: Move memory setup into iSeries device tree
authorMichael Ellerman <michael@ellerman.id.au>
Fri, 23 Sep 2005 05:00:20 +0000 (15:00 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Fri, 23 Sep 2005 05:00:20 +0000 (15:00 +1000)
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>
arch/ppc64/kernel/iSeries_setup.c

index 27faf4f0967af06d76808da8c06a0509e961b409..639f400d6b0cc86eb724332f44aee8340b80c2d3 100644 (file)
@@ -376,11 +376,6 @@ static void __init iSeries_init_early(void)
                }
        }
 
-       lmb_init();
-       lmb_add(0, systemcfg->physicalMemorySize);
-       lmb_analyze();
-       lmb_reserve(0, __pa(klimit));
-
        /* Initialize machine-dependency vectors */
 #ifdef CONFIG_SMP
        smp_init_iSeries();
@@ -1039,9 +1034,24 @@ void dt_prop_empty(struct iseries_flat_dt *dt, char *name)
 
 void build_flat_dt(struct iseries_flat_dt *dt)
 {
+       u64 tmp[2];
+
        dt_init(dt);
 
        dt_start_node(dt, "");
+
+       dt_prop_u32(dt, "#address-cells", 2);
+       dt_prop_u32(dt, "#size-cells", 2);
+
+       /* /memory */
+       dt_start_node(dt, "memory@0");
+       dt_prop_str(dt, "name", "memory");
+       dt_prop_str(dt, "device_type", "memory");
+       tmp[0] = 0;
+       tmp[1] = systemcfg->physicalMemorySize;
+       dt_prop_u64_list(dt, "reg", tmp, 2);
+       dt_end_node(dt);
+
        dt_end_node(dt);
 
        dt_push_u32(dt, OF_DT_END);