There are customers interested in booting UEFI-aware operating system
on top of coreboot enabled hardware. Most Linux distros already have
UEFI support and can utilize runtime variables, runtime services and
secure boot. Having UEFI support on top of coreboot can help utilizing
UEFI drivers and OptionROMs designed specifically for this kind of
environment in binary form. It may also help in analyzing and learning
about internals for AGESA since it exposes UEFI interfaces.
We aim to present the work and analysis of enabling and booting
UEFI-aware operating system on top of platform which only supports
coreboot firmware. During presentation we will show typical problems
that can be faced during porting procedure. Especially how to handle
PCDs and hardware specific issues, like serial port enablement, RTC
and PCIe drivers problems.
We utilized CorebootPayloadPkg and CorebootModulePkg from TianoCore
framework and applied it as coreboot payload. As implementation
platform we choose PC Engines apu2, but result of our work can be
applied to other hardware. We used typical firmware debugging
techniques as well as automation to speed up development.
As a result we finished booting to UEFI shell. From that point we were
able to enable support for PCIe devices, install operating system on
persistent storage as well as boot over PXE. We also present results
of FWTS to show what is missing and what could be next step to get
fully UEFI compliant firmware.