diff options
Diffstat (limited to 'arch/powerpc/boot/wrapper')
-rwxr-xr-x | arch/powerpc/boot/wrapper | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper index 65f685479175..39b27e5ef6c1 100755 --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper | |||
@@ -29,6 +29,7 @@ initrd= | |||
29 | dtb= | 29 | dtb= |
30 | dts= | 30 | dts= |
31 | cacheit= | 31 | cacheit= |
32 | binary= | ||
32 | gzip=.gz | 33 | gzip=.gz |
33 | 34 | ||
34 | # cross-compilation prefix | 35 | # cross-compilation prefix |
@@ -142,17 +143,23 @@ miboot|uboot) | |||
142 | isection=initrd | 143 | isection=initrd |
143 | ;; | 144 | ;; |
144 | cuboot*) | 145 | cuboot*) |
146 | binary=y | ||
145 | gzip= | 147 | gzip= |
146 | ;; | 148 | ;; |
147 | ps3) | 149 | ps3) |
148 | platformo="$object/ps3-head.o $object/ps3-hvcall.o $object/ps3.o" | 150 | platformo="$object/ps3-head.o $object/ps3-hvcall.o $object/ps3.o" |
149 | lds=$object/zImage.ps3.lds | 151 | lds=$object/zImage.ps3.lds |
152 | binary=y | ||
150 | gzip= | 153 | gzip= |
151 | ext=bin | 154 | ext=bin |
152 | objflags="-O binary --set-section-flags=.bss=contents,alloc,load,data" | 155 | objflags="-O binary --set-section-flags=.bss=contents,alloc,load,data" |
153 | ksection=.kernel:vmlinux.bin | 156 | ksection=.kernel:vmlinux.bin |
154 | isection=.kernel:initrd | 157 | isection=.kernel:initrd |
155 | ;; | 158 | ;; |
159 | ep88xc) | ||
160 | platformo="$object/fixed-head.o $object/$platform.o" | ||
161 | binary=y | ||
162 | ;; | ||
156 | esac | 163 | esac |
157 | 164 | ||
158 | vmz="$tmpdir/`basename \"$kernel\"`.$ext" | 165 | vmz="$tmpdir/`basename \"$kernel\"`.$ext" |
@@ -224,6 +231,11 @@ fi | |||
224 | base=0x`${CROSS}nm "$ofile" | grep ' _start$' | cut -d' ' -f1` | 231 | base=0x`${CROSS}nm "$ofile" | grep ' _start$' | cut -d' ' -f1` |
225 | entry=`${CROSS}objdump -f "$ofile" | grep '^start address ' | cut -d' ' -f3` | 232 | entry=`${CROSS}objdump -f "$ofile" | grep '^start address ' | cut -d' ' -f3` |
226 | 233 | ||
234 | if [ -n "$binary" ]; then | ||
235 | mv "$ofile" "$ofile".elf | ||
236 | ${CROSS}objcopy -O binary "$ofile".elf "$ofile".bin | ||
237 | fi | ||
238 | |||
227 | # post-processing needed for some platforms | 239 | # post-processing needed for some platforms |
228 | case "$platform" in | 240 | case "$platform" in |
229 | pseries|chrp) | 241 | pseries|chrp) |
@@ -234,8 +246,6 @@ coff) | |||
234 | $object/hack-coff "$ofile" | 246 | $object/hack-coff "$ofile" |
235 | ;; | 247 | ;; |
236 | cuboot*) | 248 | cuboot*) |
237 | mv "$ofile" "$ofile".elf | ||
238 | ${CROSS}objcopy -O binary "$ofile".elf "$ofile".bin | ||
239 | gzip -f -9 "$ofile".bin | 249 | gzip -f -9 "$ofile".bin |
240 | mkimage -A ppc -O linux -T kernel -C gzip -a "$base" -e "$entry" \ | 250 | mkimage -A ppc -O linux -T kernel -C gzip -a "$base" -e "$entry" \ |
241 | $uboot_version -d "$ofile".bin.gz "$ofile" | 251 | $uboot_version -d "$ofile".bin.gz "$ofile" |
@@ -259,11 +269,11 @@ ps3) | |||
259 | # then copied to offset 0x100. At runtime the bootwrapper program | 269 | # then copied to offset 0x100. At runtime the bootwrapper program |
260 | # copies the 0x100 bytes at __system_reset_kernel to addr 0x100. | 270 | # copies the 0x100 bytes at __system_reset_kernel to addr 0x100. |
261 | 271 | ||
262 | system_reset_overlay=0x`${CROSS}nm "$ofile" \ | 272 | system_reset_overlay=0x`${CROSS}nm "$ofile".elf \ |
263 | | grep ' __system_reset_overlay$' \ | 273 | | grep ' __system_reset_overlay$' \ |
264 | | cut -d' ' -f1` | 274 | | cut -d' ' -f1` |
265 | system_reset_overlay=`printf "%d" $system_reset_overlay` | 275 | system_reset_overlay=`printf "%d" $system_reset_overlay` |
266 | system_reset_kernel=0x`${CROSS}nm "$ofile" \ | 276 | system_reset_kernel=0x`${CROSS}nm "$ofile".elf \ |
267 | | grep ' __system_reset_kernel$' \ | 277 | | grep ' __system_reset_kernel$' \ |
268 | | cut -d' ' -f1` | 278 | | cut -d' ' -f1` |
269 | system_reset_kernel=`printf "%d" $system_reset_kernel` | 279 | system_reset_kernel=`printf "%d" $system_reset_kernel` |
@@ -272,8 +282,6 @@ ps3) | |||
272 | 282 | ||
273 | rm -f "$object/otheros.bld" | 283 | rm -f "$object/otheros.bld" |
274 | 284 | ||
275 | ${CROSS}objcopy -O binary "$ofile" "$ofile.bin" | ||
276 | |||
277 | msg=$(dd if="$ofile.bin" of="$ofile.bin" conv=notrunc \ | 285 | msg=$(dd if="$ofile.bin" of="$ofile.bin" conv=notrunc \ |
278 | skip=$overlay_dest seek=$system_reset_kernel \ | 286 | skip=$overlay_dest seek=$system_reset_kernel \ |
279 | count=$overlay_size bs=1 2>&1) | 287 | count=$overlay_size bs=1 2>&1) |