[coreboot] Time for a new project

Jordan Crouse jordan.crouse at amd.com
Sun Apr 13 06:04:20 CEST 2008

On 13/04/08 04:15 +0200, Segher Boessenkool wrote:
> > 3) We need a equivalent solution for the NAME segment in SELF - the
> > payload chooser must be able to get a human friendly name for each
> > payload without decompressing the entire payload into memory.
> If you want this name to be part of the binary (and we can discuss
> endlessly whether that is a good idea or not -- let's just accept the
> answer is "yes" :-) ), for ELF, you would do this using a PT_NOTE
> normally.  It's easy to make sure that note sits at the start of the
> file, too.

But if it was part of the binary, then we would have to decompress 
at least part of the binary to find it, no?

> > The only
> > requirement is that there only be one ENTRY segment, which is fine,
> > because thats exactly how many entry points we have.
> Would it not make sense to put the entry point info in the file header,
> not in a segment header, then?

Well - first of all, I think you are confused.  There is no SELF file -
you won't see a .self file by itself.  It is an internal format, suitable
only for inclusion in a LAR.  This is part of the simplicity.  So no 
file means no file header.  But even if there was, I would argue that
having the load address in the segment list isn't really hurting us.

It pulls double duty - it identifies the end of the segment list,
and it gives us the load address, right when we need it, after we
have finished loading the data and code.  

> > We already know what endianism, word size and architecture we're going 
> > to
> > run on - SELF is not intended to be portable.
> It is nice to have a file header that describes the basic format of
> the file.  You don't *have* to check it if you do not want to.
> One important case where you actually want to *use* this info is when
> you have an architecture that can execute both 32-bit and 64-bit 
> programs.

Again - not a file format, so no file header.  And I would argue that
if we ever reach the point where we legitmately think that we want
to start a payload in 64 bit mode, that the architecture flag should
probably be in the LAR header, and not in the SELF.

Jordan Crouse
Systems Software Development Engineer 
Advanced Micro Devices, Inc.

More information about the coreboot mailing list