mirror of
https://github.com/adulau/aha.git
synced 2024-12-29 12:16:20 +00:00
[POWERPC] bootwrapper: Add a cuboot platform and a cuImage target
The cuImage target will build a uImage with bootwrapper code and a device tree. The default device tree and platform file are determined by the kernel configuration. Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
270429baa9
commit
0fdd717ed4
4 changed files with 34 additions and 5 deletions
|
@ -148,7 +148,7 @@ all: $(KBUILD_IMAGE)
|
|||
|
||||
CPPFLAGS_vmlinux.lds := -Upowerpc
|
||||
|
||||
BOOT_TARGETS = zImage zImage.initrd uImage
|
||||
BOOT_TARGETS = zImage zImage.initrd uImage cuImage
|
||||
|
||||
PHONY += $(BOOT_TARGETS)
|
||||
|
||||
|
|
3
arch/powerpc/boot/.gitignore
vendored
3
arch/powerpc/boot/.gitignore
vendored
|
@ -18,6 +18,9 @@ kernel-vmlinux.strip.c
|
|||
kernel-vmlinux.strip.gz
|
||||
mktree
|
||||
uImage
|
||||
cuImage
|
||||
cuImage.bin.gz
|
||||
cuImage.elf
|
||||
zImage
|
||||
zImage.chrp
|
||||
zImage.coff
|
||||
|
|
|
@ -129,7 +129,7 @@ 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
|
||||
image-$(CONFIG_DEFAULT_UIMAGE) += uImage cuImage
|
||||
|
||||
# For 32-bit powermacs, build the COFF and miboot images
|
||||
# as well as the ELF images.
|
||||
|
@ -162,6 +162,14 @@ $(obj)/zImage.initrd.ps3: vmlinux
|
|||
$(obj)/uImage: vmlinux $(wrapperbits)
|
||||
$(call if_changed,wrap,uboot)
|
||||
|
||||
cuboot-plat-y += unknown-platform
|
||||
|
||||
dts = $(if $(shell echo $(CONFIG_) | grep '^/'),\
|
||||
,$(srctree)/$(src)/dts/)$(CONFIG_DEVICE_TREE)
|
||||
|
||||
$(obj)/cuImage: vmlinux $(wrapperbits)
|
||||
$(call if_changed,wrap,cuboot-$(word 1,$(cuboot-plat-y)),$(dts))
|
||||
|
||||
$(obj)/zImage: $(addprefix $(obj)/, $(image-y))
|
||||
@rm -f $@; ln $< $@
|
||||
$(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y))
|
||||
|
@ -171,7 +179,8 @@ install: $(CONFIGURE) $(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
|
||||
clean-files += $(image-) $(initrd-) zImage zImage.initrd \
|
||||
cuImage.elf cuImage.bin.gz
|
||||
|
||||
# clean up files cached by wrapper
|
||||
clean-kernel := vmlinux.strip vmlinux.bin
|
||||
|
|
|
@ -141,6 +141,9 @@ miboot|uboot)
|
|||
ksection=image
|
||||
isection=initrd
|
||||
;;
|
||||
cuboot*)
|
||||
gzip=
|
||||
;;
|
||||
esac
|
||||
|
||||
vmz="$tmpdir/`basename \"$kernel\"`.$ext"
|
||||
|
@ -161,13 +164,17 @@ fi
|
|||
vmz="$vmz$gzip"
|
||||
|
||||
case "$platform" in
|
||||
uboot)
|
||||
rm -f "$ofile"
|
||||
uboot|cuboot*)
|
||||
version=`${CROSS}strings "$kernel" | grep '^Linux version [-0-9.]' | \
|
||||
cut -d' ' -f3`
|
||||
if [ -n "$version" ]; then
|
||||
version="-n Linux-$version"
|
||||
fi
|
||||
esac
|
||||
|
||||
case "$platform" in
|
||||
uboot)
|
||||
rm -f "$ofile"
|
||||
mkimage -A ppc -O linux -T kernel -C gzip -a 00000000 -e 00000000 \
|
||||
$version -d "$vmz" "$ofile"
|
||||
if [ -z "$cacheit" ]; then
|
||||
|
@ -216,4 +223,14 @@ pmaccoff)
|
|||
${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"
|
||||
;;
|
||||
esac
|
||||
|
|
Loading…
Reference in a new issue