Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0fdd717e authored by Scott Wood's avatar Scott Wood Committed by Paul Mackerras
Browse files

[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: default avatarScott Wood <scottwood@freescale.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 270429ba
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
@@ -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
+11 −2
Original line number Diff line number Diff line
@@ -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
+19 −2
Original line number Diff line number Diff line
@@ -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