summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2008-04-16 05:52:29 +1000
committerPaul Mackerras <paulus@samba.org>2008-04-17 07:46:14 +1000
commitb18796d32a35ca4d996c584c3bb6d0a4f8a7d310 (patch)
tree99c03eaf2eda0da6d5766d2cedd961aa10cf7ff2
parent366234f657879aeb7a1e2ca582f2f24f3fae9269 (diff)
downloadop-kernel-dev-b18796d32a35ca4d996c584c3bb6d0a4f8a7d310.zip
op-kernel-dev-b18796d32a35ca4d996c584c3bb6d0a4f8a7d310.tar.gz
[POWERPC] bootwrapper: Use physical address in PHDR for uImage
Now that we properly set the physical address in the program header of the vmlinux ELF we can extract it to properly set the load and entry point for u-boot uImages. Before we always hard coded the load & entry point to 0. However there are situations that the kernel may be built with a non-zero physical address. We use objdump to extract the PHDR. We assume that there is only one PHDR in the vmlinux of type LOAD. Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rwxr-xr-xarch/powerpc/boot/wrapper5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
index 14a0182..d6c96d9 100755
--- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper
@@ -230,10 +230,13 @@ if [ -n "$version" ]; then
uboot_version="-n Linux-$version"
fi
+# physical offset of kernel image
+membase=`${CROSS}objdump -p "$kernel" | grep -m 1 LOAD | awk '{print $7}'`
+
case "$platform" in
uboot)
rm -f "$ofile"
- mkimage -A ppc -O linux -T kernel -C gzip -a 00000000 -e 00000000 \
+ mkimage -A ppc -O linux -T kernel -C gzip -a $membase -e $membase \
$uboot_version -d "$vmz" "$ofile"
if [ -z "$cacheit" ]; then
rm -f "$vmz"
OpenPOWER on IntegriCloud