>Subject: Re: Moving kernel_entry to LOADADDR
>From: Justin Carlson <firstname.lastname@example.org>
>Date: 19 Oct 2001 11:21:41 -0400
>On Fri, 2001-10-19 at 11:11, Mike McDonald wrote:
>> Because a bare bones bootloader may not know anything about ELF. The
>> simplest solution is to just stick a "jmp start_kernel" at LOADADDR
>> right before the fill. Then the load address and the entry point are
>> the same. Once the exception vectors get loaded, they'll overwrite the
>> jmp, so no space is wasted and none of the LOADADDRs have to be
>This may be true, but grokking ELF far enough to find e_entry just a
>matter of looking at a fixed offset into the kernel image. Problems
>that require bootloaders to be simpler than that are pretty rare...
But they do exist, especially in the embedded world. For instance,
I've run linux with boot loader out of a 1MB flash into 8MB of RAM.
(VR4121 based system.) The kernel image stored in the flash had to be
a compressed raw memory image inorder to fit in the flash. (The flash
also had to have room to the initrd.) Adding ELF headers to the image
would probably have pushed the size over the limit.