I think there is a bug, even in the latest (3.13.0-23.45) revision.
It probably affects any 32-bit EFI system.
One easy way to fix it is to insert the following line in efi_32.c:efi_map_region():
set_bit(EFI_OLD_MEMMAP, &x86_efi_facility);
This helps ensure that the function efi.c:runtime_code_page_mkexec() is called by efi_enter_virtual_mode().
I have rebuilt the kernel with this change and my machine runs fine now.
A temporary workaround is to use the efi=old_map kernel parameter.
I think there is a bug, even in the latest (3.13.0-23.45) revision.
It probably affects any 32-bit EFI system.
One easy way to fix it is to insert the following line in efi_32. c:efi_map_ region( ):
This helps ensure that the function efi.c:runtime_ code_page_ mkexec( ) is called by efi_enter_ virtual_ mode().
I have rebuilt the kernel with this change and my machine runs fine now.
A temporary workaround is to use the efi=old_map kernel parameter.