Where possible, update our existing BSPs to boot using EFI. This will support development of efilinux as well as help us prepare for the newer boards which will be EFI only.
As for Design. We need to replace syslinux and GRUB on systems that support EFI with an EFI boot loader. I'm proposing efilinux as it is small and supports our embedded model well. It does not have a menu system like elilo or egrub, but every EFI BIOS I have used to date allows for the use of a startup.nsh script which allows for modification of boot behavior. We have initial recipes for gnu-efi and efilinux (thanks Paul E.). They now build, but the resulting binary doesn't work. It is possible this is related to building with gcc 4.6 as Matt Fleming (efilinux author) has not built with 4.6 himself. Next steps include resolving the build issue, then auditing all the supported BSPs to determine which can boot over EFI. Following that, updating the dependencies and the README.hardware to reflect booting via EFI will complete the process.
Tom, would you mind provide a "Design Review" of Comment 1 and let me know if you have any concerns with this approach.
efilinux now builds and boots EFI enabled kernels successfully.
For EFI testing, I suppose to define a BSP list, by defining which BSP will have EFI and legacy BIOS support, which BSP will only have EFI support. Then QA will test if these BSPs image could boot with EFI or legacy BIOS. Moreover, QA will check if EFI and PCBIOS flags are set correct for these BSPs.
We now have full boot support for EFI integrated into bootimg. What remains is to make the installer EFI aware.
Marking as resolved, will open a new bug for creating the installer.
Bug 1919 has been opened to track the EFI installer.
EFI is workable in 1.2 M2 testing.