[ELF] Add ability to boot ELF images generated by wraplinux and mkelfImage
authorMichael Brown <mcb30@etherboot.org>
Mon, 9 Jun 2008 12:11:46 +0000 (13:11 +0100)
committerMichael Brown <mcb30@etherboot.org>
Mon, 9 Jun 2008 12:50:00 +0000 (13:50 +0100)
commit77a5cc6b1391df8aa63589c3b4c5efd2627296e9
tree5642ceaa317174e15e2f551fa5d0df0edbed7943
parentfe3162ab1c84bd641d6cef50fa3c2a9e1bc4321a
[ELF] Add ability to boot ELF images generated by wraplinux and mkelfImage

Delete ELF as a generic image type.  The method for invoking an
ELF-based image (as well as any tables that must be set up to allow it
to boot) will always depend on the specific architecture.  core/elf.c
now only provides the elf_load() function, to avoid duplicating
functionality between ELF-based image types.

Add arch/i386/image/elfboot.c, to handle the generic case of 32-bit
x86 ELF images.  We don't currently set up any multiboot tables, ELF
notes, etc.  This seems to be sufficient for loading kernels generated
using both wraplinux and coreboot's mkelfImage.

Note that while Etherboot 5.4 allowed ELF images to return, we don't.
There is no callback mechanism for the loaded image to shut down gPXE,
which means that we have to shut down before invoking the image.  This
means that we lose device state, protection against being trampled on,
etc.  It is not safe to continue afterwards.
src/arch/i386/image/elfboot.c [new file with mode: 0644]
src/arch/i386/include/bits/errfile.h
src/config.h
src/core/config.c
src/image/elf.c
src/include/gpxe/features.h