powerpc/ps3: Do not adjust the wrapper load address
authorStephen Rothwell <sfr@canb.auug.org.au>
Tue, 20 Mar 2012 03:13:51 +0000 (14:13 +1100)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 21 Mar 2012 00:16:13 +0000 (11:16 +1100)
Commit c55aef0e5bc6 "powerpc/boot: Change the load address for the wrapper
to fit the kernel" adjusted the laod address if the uncompressed kernel
was too large.  Ps3 does not compress the kernel and uses a different
linker script, so do not adjust the load address in that case.

fixes this build error:

powerpc64-linux-ld: section .text loaded at [0000000000e00000,0000000000e0721b] overlaps section .kernel:dtb loaded at [0000000000e00000,0000000000e0066f]

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/boot/wrapper

index f090e6d..6761c74 100755 (executable)
@@ -144,6 +144,7 @@ tmp=$tmpdir/zImage.$$.o
 ksection=.kernel:vmlinux.strip
 isection=.kernel:initrd
 link_address='0x400000'
+make_space=y
 
 case "$platform" in
 pseries)
@@ -210,6 +211,7 @@ ps3)
     ksection=.kernel:vmlinux.bin
     isection=.kernel:initrd
     link_address=''
+    make_space=n
     pie=
     ;;
 ep88xc|ep405|ep8248e)
@@ -278,17 +280,19 @@ else
     rm -f $vmz.$$
 fi
 
-# Round the size to next higher MB limit
-round_size=$(((strip_size + 0xfffff) & 0xfff00000))
+if [ "$make_space" = "y" ]; then
+       # Round the size to next higher MB limit
+       round_size=$(((strip_size + 0xfffff) & 0xfff00000))
 
-round_size=0x$(printf "%x" $round_size)
-link_addr=$(printf "%d" $link_address)
+       round_size=0x$(printf "%x" $round_size)
+       link_addr=$(printf "%d" $link_address)
 
-if [ $link_addr -lt $strip_size ]; then
-    echo "INFO: Uncompressed kernel (size 0x$(printf "%x\n" $strip_size))" \
-               "overlaps the address of the wrapper($link_address)"
-    echo "INFO: Fixing the link_address of wrapper to ($round_size)"
-    link_address=$round_size
+       if [ $link_addr -lt $strip_size ]; then
+           echo "INFO: Uncompressed kernel (size 0x$(printf "%x\n" $strip_size))" \
+                       "overlaps the address of the wrapper($link_address)"
+           echo "INFO: Fixing the link_address of wrapper to ($round_size)"
+           link_address=$round_size
+       fi
 fi
 
 vmz="$vmz$gzip"