[POWERPC] Small cleanups to the cuboot bootwrapper code
This patch makes a few small cleanups to the cuboot code. - It removes the double layered selection of images, via cuboot-plat-y, instead having the cuboot platforms directly select a suitable image-y (this changes the name of the final cuboot image from plain cuImage to cuImage.<platform>). - Factors out some code in the wrapper that's potentially useful to platforms other than uboot. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Acked-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
0cd74f398a
commit
a6afacb6b8
3 changed files with 20 additions and 25 deletions
|
@ -148,7 +148,7 @@ all: $(KBUILD_IMAGE)
|
|||
|
||||
CPPFLAGS_vmlinux.lds := -Upowerpc
|
||||
|
||||
BOOT_TARGETS = zImage zImage.initrd uImage cuImage
|
||||
BOOT_TARGETS = zImage zImage.initrd uImage
|
||||
|
||||
PHONY += $(BOOT_TARGETS)
|
||||
|
||||
|
|
|
@ -129,7 +129,9 @@ image-$(CONFIG_PPC_CELLEB) += zImage.pseries
|
|||
image-$(CONFIG_PPC_CHRP) += zImage.chrp
|
||||
image-$(CONFIG_PPC_EFIKA) += zImage.chrp
|
||||
image-$(CONFIG_PPC_PMAC) += zImage.pmac
|
||||
image-$(CONFIG_DEFAULT_UIMAGE) += uImage cuImage
|
||||
image-$(CONFIG_PPC_83xx) += cuImage.83xx
|
||||
image-$(CONFIG_PPC_85xx) += cuImage.85xx
|
||||
image-$(CONFIG_DEFAULT_UIMAGE) += uImage
|
||||
|
||||
# For 32-bit powermacs, build the COFF and miboot images
|
||||
# as well as the ELF images.
|
||||
|
@ -162,15 +164,11 @@ $(obj)/zImage.initrd.ps3: vmlinux
|
|||
$(obj)/uImage: vmlinux $(wrapperbits)
|
||||
$(call if_changed,wrap,uboot)
|
||||
|
||||
cuboot-plat-$(CONFIG_83xx) += 83xx
|
||||
cuboot-plat-$(CONFIG_85xx) += 85xx
|
||||
cuboot-plat-y += unknown-platform
|
||||
|
||||
dts = $(if $(shell echo $(CONFIG_DEVICE_TREE) | grep '^/'),\
|
||||
,$(srctree)/$(src)/dts/)$(CONFIG_DEVICE_TREE)
|
||||
|
||||
$(obj)/cuImage: vmlinux $(wrapperbits)
|
||||
$(call if_changed,wrap,cuboot-$(word 1,$(cuboot-plat-y)),$(dts))
|
||||
$(obj)/cuImage.%: vmlinux $(wrapperbits)
|
||||
$(call if_changed,wrap,cuboot-$*,$(dts))
|
||||
|
||||
$(obj)/zImage: $(addprefix $(obj)/, $(image-y))
|
||||
@rm -f $@; ln $< $@
|
||||
|
@ -181,8 +179,7 @@ install: $(CONFIGURE) $(addprefix $(obj)/, $(image-y))
|
|||
sh -x $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" vmlinux System.map "$(INSTALL_PATH)" $<
|
||||
|
||||
# anything not in $(targets)
|
||||
clean-files += $(image-) $(initrd-) zImage zImage.initrd \
|
||||
cuImage.elf cuImage.bin.gz
|
||||
clean-files += $(image-) $(initrd-) zImage zImage.initrd cuImage.*
|
||||
|
||||
# clean up files cached by wrapper
|
||||
clean-kernel := vmlinux.strip vmlinux.bin
|
||||
|
|
|
@ -163,20 +163,19 @@ fi
|
|||
|
||||
vmz="$vmz$gzip"
|
||||
|
||||
case "$platform" in
|
||||
uboot|cuboot*)
|
||||
version=`${CROSS}strings "$kernel" | grep '^Linux version [-0-9.]' | \
|
||||
cut -d' ' -f3`
|
||||
if [ -n "$version" ]; then
|
||||
version="-n Linux-$version"
|
||||
fi
|
||||
esac
|
||||
# Extract kernel version information, some platforms want to include
|
||||
# it in the image header
|
||||
version=`${CROSS}strings "$kernel" | grep '^Linux version [-0-9.]' | \
|
||||
cut -d' ' -f3`
|
||||
if [ -n "$version" ]; then
|
||||
uboot_version="-n Linux-$version"
|
||||
fi
|
||||
|
||||
case "$platform" in
|
||||
uboot)
|
||||
rm -f "$ofile"
|
||||
mkimage -A ppc -O linux -T kernel -C gzip -a 00000000 -e 00000000 \
|
||||
$version -d "$vmz" "$ofile"
|
||||
$uboot_version -d "$vmz" "$ofile"
|
||||
if [ -z "$cacheit" ]; then
|
||||
rm -f "$vmz"
|
||||
fi
|
||||
|
@ -212,25 +211,24 @@ if [ "$platform" != "miboot" ]; then
|
|||
rm $tmp
|
||||
fi
|
||||
|
||||
# Some platforms need the zImage's entry point and base address
|
||||
base=0x`${CROSS}nm "$ofile" | grep ' _start$' | cut -d' ' -f1`
|
||||
entry=`${CROSS}objdump -f "$ofile" | grep '^start address ' | cut -d' ' -f3`
|
||||
|
||||
# post-processing needed for some platforms
|
||||
case "$platform" in
|
||||
pseries|chrp)
|
||||
$object/addnote "$ofile"
|
||||
;;
|
||||
pmaccoff)
|
||||
entry=`objdump -f "$ofile" | grep '^start address ' | \
|
||||
cut -d' ' -f3`
|
||||
${CROSS}objcopy -O aixcoff-rs6000 --set-start "$entry" "$ofile"
|
||||
$object/hack-coff "$ofile"
|
||||
;;
|
||||
cuboot*)
|
||||
base=`${CROSS}nm "$ofile" | grep ' _start$' | cut -d' ' -f1`
|
||||
entry=`${CROSS}objdump -f "$ofile" | grep '^start address ' | \
|
||||
cut -d' ' -f3`
|
||||
mv "$ofile" "$ofile".elf
|
||||
${CROSS}objcopy -O binary "$ofile".elf "$ofile".bin
|
||||
gzip -f -9 "$ofile".bin
|
||||
mkimage -A ppc -O linux -T kernel -C gzip -a "$base" -e "$entry" \
|
||||
$version -d "$ofile".bin.gz "$ofile"
|
||||
$uboot_version -d "$ofile".bin.gz "$ofile"
|
||||
;;
|
||||
esac
|
||||
|
|
Loading…
Reference in a new issue