linux-mips
[Top] [All Lists]

Re: Moving kernel_entry to LOADADDR

To: Justin Carlson <justincarlson@cmu.edu>
Subject: Re: Moving kernel_entry to LOADADDR
From: Mike McDonald <mikemac@mikemac.com>
Date: Fri, 19 Oct 2001 08:56:04 -0700
Cc: linux-mips@oss.sgi.com
In-reply-to: Your message of "19 Oct 2001 11:21:41 EDT." <1003504901.29529.54.camel@gs256.sp.cs.cmu.edu>
Sender: owner-linux-mips@oss.sgi.com
>Subject: Re: Moving kernel_entry to LOADADDR
>From: Justin Carlson <justincarlson@cmu.edu>
>To: linux-mips@oss.sgi.com
>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
>> changed.
>
>
>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...
>
>-Justin

  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.

  Mike McDonald
  mikemac@mikemac.com

<Prev in Thread] Current Thread [Next in Thread>