From: Matt Tolentino - The help for CONFIG_EFI talks about requiring ELILO. On ia32? Is that correct? What's the scoop here? Yes, on EFI systems the ELILO loader is required to obtain platform config info (like the memory map, EFI config table, etc.) from the EFI interface to pass to the kernel as well as actually copying the kernel into memory and transferring control to it. In fact, that's what I've been using on the prototype machines I have. Grub and Lilo aren't very useful in a "pure" EFI environment, because they are not EFI applications and have no way to access EFI functionality. I'll attach a Kconfig help patch that might make this clearer... - Why do you say "dynamically at runtime through inspection of the boot parameters"? It seems to be using "LOADER_TYPE". What is that? Did you mean to allow efi to be disabled with a kernel boot parameter? If so, I don't see any code in there which will do this. Currently, the ELILO loader sets the boot parameter LOADER_TYPE to 0x50. This "id" isn't currently used (according to Documentation/i386/boot.txt) and I've currently hijacked it for proof of concept. I'll send mail to officially request the ID number shortly and update the boot protocol documentation to add EFI. So, if one wanted to set this to boot without EFI support, it could be done via the loader via a config option (as it sets the LOADER_TYPE). So, the decision as to whether or not to take the efi code path is based on how the loader sets this parameter. 25-akpm/arch/i386/Kconfig | 17 ++++++++++++----- 1 files changed, 12 insertions(+), 5 deletions(-) diff -puN arch/i386/Kconfig~ia32-eif-config-help-update arch/i386/Kconfig --- 25/arch/i386/Kconfig~ia32-eif-config-help-update Mon Oct 27 14:27:51 2003 +++ 25-akpm/arch/i386/Kconfig Mon Oct 27 14:29:18 2003 @@ -789,12 +789,19 @@ config EFI depends on ACPI default n ---help--- - This enables the the kernel to boot on EFI platforms using system configuration - passed to it from the firmware. This also enables the EFI runtime services to be - invoked. - This option is only useful on systems that have EFI firmware. In addition, you - must use the latest ELILO loader available at ftp.hpl.hp.com/pub/linux-ia64/. + This enables the the kernel to boot on EFI platforms using + system configuration information passed to it from the firmware. + This also enables the kernel to use any EFI runtime services that are + available (such as the EFI variable services). + + This option is only useful on systems that have EFI firmware + and will result in a kernel image that is ~8k larger. In addition, + you must use the latest ELILO loader available at + ftp.hpl.hp.com/pub/linux-ia64/ in order to take advantage of kernel + initialization using EFI information (neither GRUB nor LILO know + anything about EFI). However, even with this option, the resultant + kernel should continue to boot on existing non-EFI platforms. config HAVE_DEC_LOCK bool _