On some of the larger kernels we are starting to see a space squeeze.
authorPaul Nasrat <pnasrat@redhat.com>
Fri, 17 Aug 2007 14:22:00 +0000 (15:22 +0100)
committerPaul Nasrat <pauln@enki.eridu>
Fri, 17 Aug 2007 14:22:00 +0000 (15:22 +0100)
The kernel is currently being put at 20MBs and on some of the newer
pSeries systems we are getting real-bases at 32MBs (plus AIX 5.3 has
real-base at 32MB, so if AIX is ever booted, everything gets shifted).

If the uncompressed kernel+initrd is larger than 12MBs then we see
truncation (typical on install kernels).

This patch moves the KERNELADDR to 0x00C00000 (12MB).  If real-base is
12MB and is loaed there, yaboot will keep going up by a megabyte until
prom_claim finds space.  And the uncompressed kernel should be
indifferent where it's loaded because there's nothing at 32MB (ie it
will operate as it does today).  If OF is loaded at 32MB then the 12MB
region is free and the uncompressed kernel will have more space to grow.

I have tested this on numerous pSeries boxes.  I have not tested on
anything else.

Signed-off-by: Jake Moilanen <moilanen@austin.ibm.com>

index 14ee597..ce0dc06 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -20,8 +20,8 @@ TEXTADDR      = 0x200000
 # Malloc block at 3Mb -> 4Mb
 MALLOCADDR     = 0x300000
 MALLOCSIZE     = 0x100000
-# Load kernel at 20Mb and ramdisk just after
-KERNELADDR     = 0x01400000
+# Load kernel and ramdisk at real-base.  If there is overlap, will retry until find open space
+KERNELADDR     = 0x00C00000
 # Set this to the prefix of your cross-compiler, if you have one.
 # Else leave it empty.