[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
@ -148,7 +148,7 @@ all: $(KBUILD_IMAGE)
|
|||||||
|
|
||||||
CPPFLAGS_vmlinux.lds := -Upowerpc
|
CPPFLAGS_vmlinux.lds := -Upowerpc
|
||||||
|
|
||||||
BOOT_TARGETS = zImage zImage.initrd uImage
|
BOOT_TARGETS = zImage zImage.initrd uImage cuImage
|
||||||
|
|
||||||
PHONY += $(BOOT_TARGETS)
|
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
|
kernel-vmlinux.strip.gz
|
||||||
mktree
|
mktree
|
||||||
uImage
|
uImage
|
||||||
|
cuImage
|
||||||
|
cuImage.bin.gz
|
||||||
|
cuImage.elf
|
||||||
zImage
|
zImage
|
||||||
zImage.chrp
|
zImage.chrp
|
||||||
zImage.coff
|
zImage.coff
|
||||||
|
@ -129,7 +129,7 @@ image-$(CONFIG_PPC_CELLEB) += zImage.pseries
|
|||||||
image-$(CONFIG_PPC_CHRP) += zImage.chrp
|
image-$(CONFIG_PPC_CHRP) += zImage.chrp
|
||||||
image-$(CONFIG_PPC_EFIKA) += zImage.chrp
|
image-$(CONFIG_PPC_EFIKA) += zImage.chrp
|
||||||
image-$(CONFIG_PPC_PMAC) += zImage.pmac
|
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
|
# For 32-bit powermacs, build the COFF and miboot images
|
||||||
# as well as the ELF images.
|
# as well as the ELF images.
|
||||||
@ -162,6 +162,14 @@ $(obj)/zImage.initrd.ps3: vmlinux
|
|||||||
$(obj)/uImage: vmlinux $(wrapperbits)
|
$(obj)/uImage: vmlinux $(wrapperbits)
|
||||||
$(call if_changed,wrap,uboot)
|
$(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))
|
$(obj)/zImage: $(addprefix $(obj)/, $(image-y))
|
||||||
@rm -f $@; ln $< $@
|
@rm -f $@; ln $< $@
|
||||||
$(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y))
|
$(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)" $<
|
sh -x $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" vmlinux System.map "$(INSTALL_PATH)" $<
|
||||||
|
|
||||||
# anything not in $(targets)
|
# 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 up files cached by wrapper
|
||||||
clean-kernel := vmlinux.strip vmlinux.bin
|
clean-kernel := vmlinux.strip vmlinux.bin
|
||||||
|
@ -141,6 +141,9 @@ miboot|uboot)
|
|||||||
ksection=image
|
ksection=image
|
||||||
isection=initrd
|
isection=initrd
|
||||||
;;
|
;;
|
||||||
|
cuboot*)
|
||||||
|
gzip=
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
vmz="$tmpdir/`basename \"$kernel\"`.$ext"
|
vmz="$tmpdir/`basename \"$kernel\"`.$ext"
|
||||||
@ -161,13 +164,17 @@ fi
|
|||||||
vmz="$vmz$gzip"
|
vmz="$vmz$gzip"
|
||||||
|
|
||||||
case "$platform" in
|
case "$platform" in
|
||||||
uboot)
|
uboot|cuboot*)
|
||||||
rm -f "$ofile"
|
|
||||||
version=`${CROSS}strings "$kernel" | grep '^Linux version [-0-9.]' | \
|
version=`${CROSS}strings "$kernel" | grep '^Linux version [-0-9.]' | \
|
||||||
cut -d' ' -f3`
|
cut -d' ' -f3`
|
||||||
if [ -n "$version" ]; then
|
if [ -n "$version" ]; then
|
||||||
version="-n Linux-$version"
|
version="-n Linux-$version"
|
||||||
fi
|
fi
|
||||||
|
esac
|
||||||
|
|
||||||
|
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 00000000 -e 00000000 \
|
||||||
$version -d "$vmz" "$ofile"
|
$version -d "$vmz" "$ofile"
|
||||||
if [ -z "$cacheit" ]; then
|
if [ -z "$cacheit" ]; then
|
||||||
@ -216,4 +223,14 @@ pmaccoff)
|
|||||||
${CROSS}objcopy -O aixcoff-rs6000 --set-start "$entry" "$ofile"
|
${CROSS}objcopy -O aixcoff-rs6000 --set-start "$entry" "$ofile"
|
||||||
$object/hack-coff "$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
|
esac
|
||||||
|
Loading…
Reference in New Issue
Block a user