All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot-Users] arm linux images with load address == entry point
@ 2007-03-15 15:55 Uwe Kleine-König
  2007-03-15 20:25 ` Wolfgang Denk
  0 siblings, 1 reply; 15+ messages in thread
From: Uwe Kleine-König @ 2007-03-15 15:55 UTC (permalink / raw)
  To: u-boot

Hello,

the make target "uImage" in the linux kernel calls mkimage as follows:

	 $(MKIMAGE) -A arm -O linux -T kernel \
	 -C none -a $(ZRELADDR) -e $(ZRELADDR) \
	 -n 'Linux-$(KERNELRELEASE)' -d $< $@

(see http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=arch/arm/boot/Makefile;h=ec9c400c7f82d171ba9ccf6e52cdb055bf1a50cb;hb=HEAD,
line 63)

i.e. sets the load address and the entry point to the same address.

This part is unchanged since it was introduced in 2003.


If I understand do_bootm and do_bootm_linux (for arm, in
lib_arm/armlinux.c) correctly, the first asserts that the image is
loaded to the load address[1] and the latter jumps to entry point.

For an image created with the above rule from the vanilla kernel, that
means, jump to the header (instead of the actual image@entry point +
0x40).

So I think the linux rule is wrong, or did I miss anything?

The U-Boot I have on my target here has somewhere after the crc check in
do_bootm the following:

        hdr->ih_load = htonl(addr);
        hdr->ih_ep = htonl(addr + 0x40);

(Actually it's still worse, load_addr instead of addr is used ...)
This works but is ugly.

I wonder how other people using U-Boot + Linux on ARM handle that.

Best regards
Uwe

PS: Linux uses entry point == load address == 0 for PowerPC.  Didn't
look in the PowerPC version of bootm_linux, but maybe it has the same
problem?

[1] For Linux this is not needed, because the decompressor (at least for
2.6) is position independant.  But that's another topic.
-- 
Uwe Kleine-K?nig

http://www.google.com/search?q=1+stone%3D

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2007-03-21 21:36 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-15 15:55 [U-Boot-Users] arm linux images with load address == entry point Uwe Kleine-König
2007-03-15 20:25 ` Wolfgang Denk
2007-03-15 21:13   ` Uwe Kleine-König
2007-03-15 21:25     ` Wolfgang Denk
2007-03-15 21:42     ` [U-Boot-Users] [PATCH] Fix the condition to detect if an image is already in its place Uwe Kleine-König
2007-03-15 21:53       ` Wolfgang Denk
2007-03-15 22:35         ` Uwe Kleine-König
2007-03-15 23:14           ` Wolfgang Denk
2007-03-16  9:02             ` Uwe Kleine-König
2007-03-16 20:10               ` Wolfgang Denk
2007-03-21 20:33                 ` Uwe Kleine-König
2007-03-21 20:57                   ` Wolfgang Denk
2007-03-21 21:17                     ` Uwe Kleine-König
2007-03-21 21:36                       ` Wolfgang Denk
2007-03-15 22:57   ` [U-Boot-Users] arm linux images with load address == entry point Uwe Kleine-König

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.