powerpc: Change the default link address for pSeries zImage kernels
Currently we set the start of the .text section to be 4Mb for pSeries. In situations where the zImage is > 8Mb we'll fail to boot (due to overlapping with OF). Move .text in a zImage from 4MB to 64MB (well past OF). We still will not be able to load large zImage unless we also move OF, to that end, add a note to the zImage ELF to move OF to 32Mb. If this is the very first kernel booted then we'll need to move OF manually by setting real-base. Signed-off-by: Tony Breeds <tony@bakeyournoodle.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
committed by
Paul Mackerras
parent
c230328def
commit
9b09c6d909
@@ -138,14 +138,20 @@ objflags=-S
|
||||
tmp=$tmpdir/zImage.$$.o
|
||||
ksection=.kernel:vmlinux.strip
|
||||
isection=.kernel:initrd
|
||||
link_address='0x400000'
|
||||
|
||||
case "$platform" in
|
||||
pmac|pseries|chrp)
|
||||
pseries)
|
||||
platformo=$object/of.o
|
||||
link_address='0x4000000'
|
||||
;;
|
||||
pmac|chrp)
|
||||
platformo=$object/of.o
|
||||
;;
|
||||
coff)
|
||||
platformo=$object/of.o
|
||||
lds=$object/zImage.coff.lds
|
||||
link_address='0x500000'
|
||||
;;
|
||||
miboot|uboot)
|
||||
# miboot and U-boot want just the bare bits, not an ELF binary
|
||||
@@ -190,6 +196,7 @@ ps3)
|
||||
objflags="-O binary --set-section-flags=.bss=contents,alloc,load,data"
|
||||
ksection=.kernel:vmlinux.bin
|
||||
isection=.kernel:initrd
|
||||
link_address=''
|
||||
;;
|
||||
ep88xc|ep405|ep8248e)
|
||||
platformo="$object/fixed-head.o $object/$platform.o"
|
||||
@@ -272,7 +279,10 @@ if [ -n "$dtb" ]; then
|
||||
fi
|
||||
|
||||
if [ "$platform" != "miboot" ]; then
|
||||
${CROSS}ld -m elf32ppc -T $lds -o "$ofile" \
|
||||
if [ -n "$link_address" ] ; then
|
||||
text_start="-Ttext $link_address --defsym _start=$link_address"
|
||||
fi
|
||||
${CROSS}ld -m elf32ppc -T $lds $text_start -o "$ofile" \
|
||||
$platformo $tmp $object/wrapper.a
|
||||
rm $tmp
|
||||
fi
|
||||
|
Reference in New Issue
Block a user