[PATCH 6/19] ppc64: Build iSeries memory map and bolt mappings earlier

Michael Ellerman michael at ellerman.id.au
Tue Jul 26 18:58:40 EST 2005


Move the building of the iSeries memory map and the call to
iSeries_bolt_kernel() into iSeries_early_setup(). This allows us to make
Hypervisor calls much earlier during boot.

---

 arch/ppc64/kernel/iSeries_setup.c |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)

Index: work/arch/ppc64/kernel/iSeries_setup.c
===================================================================
--- work.orig/arch/ppc64/kernel/iSeries_setup.c
+++ work/arch/ppc64/kernel/iSeries_setup.c
@@ -355,12 +355,6 @@ static void __init iSeries_init_early(vo
 	 */
 	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 */
@@ -378,9 +372,6 @@ static void __init iSeries_init_early(vo
 		}
 	}
 
-	/* Bolt kernel mappings for all of memory (or just a bit if we've got a limit) */
-	iSeries_bolt_kernel(0, systemcfg->physicalMemorySize);
-
 	lmb_init();
 	lmb_add(0, systemcfg->physicalMemorySize);
 	lmb_analyze();
@@ -954,5 +945,14 @@ void __init iSeries_early_setup(void)
 	iSeries_fixup_klimit();
 
 	ppc_md = iseries_md;
+
+	/*
+	 * Initialize the table which translate Linux physical addresses to
+	 * AS/400 absolute addresses
+	 */
+	build_iSeries_Memory_Map();
+
+	/* Bolt mappings for all of memory (or some if we've got a limit) */
+	iSeries_bolt_kernel(0, systemcfg->physicalMemorySize);
 }
 



More information about the Linuxppc64-dev mailing list