Feature #9664

Updated by Joshua M. Clulow over 3 years ago

Some hardware (like intel atom based) have UEFI32 firmware but can start 64-bit kernel, would like to be able to boot from such systems. 

 For code base it means we need to provide multiboot2 trampoline for 32-bit code, which is not that hard; we still only load the 64-bit kernels. The interesting part is later on, when we are implementing access to EFI Runtime Services from kernel - then we need to switch to 32-bit mode and back. EFI System table accesses are also to be done using native (32-bit) pointers. 

 As a an visible change, we will build following binaries: 

 The current @/boot/boot1.efi@ /boot/boot1.efi will be replaced by two new files: by: 

 * @/boot/bootia32.efi@ /boot/bootia32.efi 
 * @/boot/bootx64.efi@ /boot/bootx64.efi 

 The current @/boot/loader.efi@ /boot/loader.efi will also be replaced,    replaced by: 

 * @/boot/loader32.efi@ 
 * @/boot/loader64.efi@ /boot/loader32.efi 

 For users of the current @boot1.efi@, boot1.efi this change is a flag day because we have no automated ESP update and boot code in ESP will need to should be updated manually.