<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7651.59">
<TITLE>UEFI Compatibility Issues in Fedora 10</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

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

</BODY>
</HTML>