[PATCH] PPC64: large INITRD causes kernel not to boot
authorMark Bellon <mbellon@mvista.com>
Tue, 6 Sep 2005 22:50:02 +0000 (15:50 -0700)
committerPaul Mackerras <paulus@samba.org>
Fri, 9 Sep 2005 12:11:37 +0000 (22:11 +1000)
commit3cc747e96480d4e26560e5bc59f2b9c9204ade0e
treed0251616720c901553226d20ab1c247e0c665bd3
parentf9526785d8a03fd0e21f9cfc951adc03bde1c395
[PATCH] PPC64: large INITRD causes kernel not to boot

In PPC64 there are number of problems in arch/ppc64/boot/main.c that
prevent a kernel from making use of a large (greater than ~16MB) INITRD.
This is 64 bit architecture and really large INITRD images should be
possible.

Simply put the existing code has a fixed reservation (claim) address and
once the kernel plus initrd image are large enough to pass this address
all sorts of bad things occur. The fix is the dynamically establish the
first claim address above the loaded kernel plus initrd (plus some
"padding" and rounding). If PROG_START is defined this will be used as
the minimum safe address - currently known to be 0x01400000 for the
firmwares tested so far.

Signed-off-by: Mark Bellon <mbellon@mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/ppc64/boot/main.c