I have been doing a lot of testing with UEFI-native booting to Linux recently, and while the results
have been quite positive, I have discovered a couple of issues that are preventing Fedora 10 from
being fully UEFI compatible.
The first issue is with the bootloader: GRUB will fail if memory cannot be allocated at address 1MB.
It is not required by UEFI that this address be made available to the OS, and as such GRUB should be
able to respond appropriately if 1MB is not available.
The second issue is far more pressing, and much more difficult to solve. The linux kernel will behave
incorrectly if more than 400k of runtime memory is declared by system firmware. The kernel attempts
to map all UEFI runtime memory into the kernel fixmap table, and any requests to map more than 400k
are silently ignored. If this memory is accessed later in the boot process (after transition to virtual
mode), the kernel will panic. It is my understanding that this mechanism was designed to enable kexec
functionality, but this mechanism is UEFI non-compliant. If Fedora is ever to be reliably booted on
UEFI systems, this issue must be addressed.
I've briefly contacted the LKML, but after very little discussion the issue was forgotten. I personally
don't know how to solve the runtime boot problem while still enabling kexec, but it was my hope
that if the Fedora community were involved a solution might be found.
- Jonathan Barkelew