[U-Boot-Users] boot uncompressed uImage

Wolfgang Denk wd at denx.de
Wed Apr 27 12:17:22 CEST 2005


In message <1114593987.6981.25.camel at localhost> you wrote:
> 
> i builded compressed image using montavista's tools :

Well, actually you should ask MV support for help, then.

> /bin/sh /usr/src/linux-2.4.20_mvlcee31/scripts/mkuboot.sh -A arm -O
> linux -T kernel \
> -C none -a 0x10008000 -e 0x10008000 \
> -n 'Linux-2.4.20_mvlcee31-omap730_gsm_gprs' \
> -d /usr/src/linux-2.4.20_mvlcee31/arch/arm/boot/zImage uImage

Normally the build command should look something like this:

...
arm-linux-ld -p -X -T arch/arm/vmlinux.lds arch/arm/kernel/head-armv.o arch/arm/kernel/init_task.o init/main.o init/version.o init/do_mounts.o \
        --start-group \
        arch/arm/kernel/kernel.o arch/arm/mm/mm.o arch/arm/mach-s3c2400/s3c2400.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o \
         drivers/serial/serial.o drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/scsi/scsidrv.o drivers/mtd/mtdlink.o drivers/i2c/i2c.o drivers/usb/usbdrv.o drivers/media/media.o \
        net/network.o \
        arch/arm/nwfpe/math-emu.o arch/arm/lib/lib.a /work/TRAB/lib/lib.a \
        --end-group \
        -o vmlinux
...
arm-linux-objcopy -O binary -R .note -R .comment -S /work/TRAB/vmlinux piggy
gzip -9 < piggy > piggy.gz
...
mkimage -A arm -O linux -T kernel -C gzip -a 0x0c008000\
-e 0x0c008000 -n 'ARM Linux-2.4.27' \
-d compressed/piggy.gz uImage


I'm not sure if  your  "zImage"  is  equivalent  to  our  "piggy.gz",
Normally  this  is  NOT the case. What you have might work, but it is
not the "correct" way to build an ARM image.

> tftp 0x10000000 uImage

This is dangerous - The "bootm" command will copy your image from the
downlaod address (0x10000000)  tpo  the  load  address  (0x10008000).
Given  the  size of the kernel image this is an overlapping area. The
behaviour is undefined.

> but i want to install uncompressed image, so i do:
> 
> 1.
> /bin/sh /usr/src/linux-2.4.20_mvlcee31/scripts/mkuboot.sh -A arm -O
> linux -T kernel \
> -C none -a 0x10008000 -e 0x10008000 \
> -n 'Linux-2.4.20_mvlcee31-omap730_gsm_gprs' \
> -d /usr/src/linux-2.4.20_mvlcee31/vmlinux uImage

This is definitely wrong, as "vmlinux" is an ELF file, while you need
the raw binary image.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
While money can't buy happiness, it certainly lets  you  choose  your
own form of misery.




More information about the U-Boot mailing list