From 77a5cc6b1391df8aa63589c3b4c5efd2627296e9 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 9 Jun 2008 13:11:46 +0100 Subject: [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/include/gpxe/features.h | 1 + 1 file changed, 1 insertion(+) (limited to 'src/include') diff --git a/src/include/gpxe/features.h b/src/include/gpxe/features.h index a520131f1..54498b5fa 100644 --- a/src/include/gpxe/features.h +++ b/src/include/gpxe/features.h @@ -43,6 +43,7 @@ #define DHCP_EB_FEATURE_MULTIBOOT 0x19 /**< Multiboot format */ #define DHCP_EB_FEATURE_NBI 0x20 /**< NBI format */ #define DHCP_EB_FEATURE_PXE 0x21 /**< PXE format */ +#define DHCP_EB_FEATURE_ELF 0x22 /**< ELF format */ /** @} */ -- cgit v1.2.3-55-g7522