From: Matt Tolentino <metolent@snoqualmie.dp.intel.com>

 - 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

_