Skip to contentSkip to conversation

boot uncompressed uImage

U-Boot-Users 朱成 3 participants 4 messages Apr 27, 2005

lore
Share & tools
lore

朱成

author
#0 lore raw

hello,all

i builded compressed image using montavista's tools :

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/arch/arm/boot/zImage uImage

2.
tftp 0x10000000 uImage
(i used u-boot-1.1.2, 0x10000000 is physical address)

3.
bootm
and kernel could boot successfully.

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

2.
tftp 0x10000000 uImage

3.
bootm

but kernel booting failed, and u-boot rebooted!

shall i change 0x10008000 to sth. and do something else?

thanks!

#1 lore raw

Review

Quoted 8 lines · ??

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 \

(quoted diff) +0 -3
-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

I'm gonna risk making a fool out of myself since I've never actually worked with ARM, but...

vmlinux is (for all other platforms I've used) an ELF image, not a raw binary. In order to be usable for u-boot, you need to run

<path-to-your-cross>objcopy -S -O binary vmlinux vmlinux.bin

and then use the resulting vmlinux.bin instead.

/
Leif

author
#2 lore raw
Quoted 10 lines

I'm gonna risk making a fool out of myself since I've never actually worked with ARM, but...

vmlinux is (for all other platforms I've used) an ELF image, not a raw binary. In order to be usable for u-boot, you need to run

<path-to-your-cross>objcopy -S -O binary vmlinux vmlinux.bin

and then use the resulting vmlinux.bin instead.

ok, i do it successfully! thanks!

#3 lore raw
In reply to 朱成
Quoted 2 lines · In message <1114593987.6981.25.camel@localhost> you wrote:

i builded compressed image using montavista's tools :

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

Review

Quoted 5 lines

/bin/sh /usr/src/linux-2.4.20_mvlcee31/scripts/mkuboot.sh -A arm -O linux -T kernel \

(quoted diff) +0 -3
-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.

Quoted 1 line

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.

Review

Quoted 8 lines

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 \

(quoted diff) +0 -3
-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

Signature · 4 lines
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.