Patchwork Booting uncompressed kernel image

login
register
mail settings
Submitter Luotao Fu
Date Jan. 26, 2009, 3:23 p.m.
Message ID <497DD577.9040209@pengutronix.de>
Download mbox | patch
Permalink /patch/20290/
State Rejected, archived
Delegated to: Grant Likely
Headers show

Comments

Luotao Fu - Jan. 26, 2009, 3:23 p.m.
Matteo Fortini wrote:
> Hi all,
> I built an uncompressed uImage using mkimage --no-gzip -C none in the
> wrapper scripts.
> Only, u-boot recognizes it as uncompressed and launches the kernel
> properly (it's around 4MB), but in the end linux just prints
> OK and stops.
Powerpc make compress the bin image with gzip first, before it generates
the image header.  If the u-boot reads the image header properly doesn't
mean that the kernel is really unpacked.
>
> Has anyone done the same?
me ;-) I did it with a mpc5200b board and linux 2.6.23. You can try the
patch attached to this mail. It worked for me[TM]. ;-)

Cheers
Luotao Fu

Patch

Index: arch/powerpc/boot/wrapper
===================================================================
--- arch/powerpc/boot/wrapper.orig
+++ arch/powerpc/boot/wrapper
@@ -133,7 +133,7 @@  coff)
     platformo=$object/of.o
     lds=$object/zImage.coff.lds
     ;;
-miboot|uboot)
+miboot|uboot|decuboot)
     # miboot and U-boot want just the bare bits, not an ELF binary
     ext=bin
     objflags="-O binary"
@@ -190,6 +190,19 @@  uboot)
     fi
     exit 0
     ;;
+decuboot)
+    rm -f "$ofile"
+    vmz_uncomp=`basename $vmz $gzip`
+    gunzip -c $vmz > $vmz_uncomp
+    mkimage -A ppc -O linux -T kernel -C none -a 00000000 -e 00000000 \
+	$uboot_version -d "$vmz_uncomp" "$ofile"
+    rm $vmz_uncomp
+    vmz="$vmz$gzip"
+    if [ -z "$cacheit" ]; then
+	rm -f "$vmz"
+    fi
+    exit 0
+    ;;
 esac
 
 addsec() {
Index: arch/powerpc/boot/Makefile
===================================================================
--- arch/powerpc/boot/Makefile.orig
+++ arch/powerpc/boot/Makefile
@@ -195,6 +195,9 @@  $(obj)/zImage.initrd.ps3: vmlinux  $(wra
 $(obj)/uImage: vmlinux $(wrapperbits)
 	$(call if_changed,wrap,uboot)
 
+$(obj)/nuImage: vmlinux $(wrapperbits)
+	$(call if_changed,wrap,decuboot)
+
 $(obj)/cuImage.%: vmlinux $(dts) $(wrapperbits)
 	$(call if_changed,wrap,cuboot-$*,$(dts))
 
Index: arch/powerpc/Makefile
===================================================================
--- arch/powerpc/Makefile.orig
+++ arch/powerpc/Makefile
@@ -148,7 +148,7 @@  all: $(KBUILD_IMAGE)
 
 CPPFLAGS_vmlinux.lds	:= -Upowerpc
 
-BOOT_TARGETS = zImage zImage.initrd uImage
+BOOT_TARGETS = zImage zImage.initrd uImage nuImage
 
 PHONY += $(BOOT_TARGETS)