Hi Colleagues,
Kudos to this community! Great progress has been made to make Linuxboot feature
rich (here Linuxboot is a broader term including coreboot, Linuxboot, heads/systemboot,
NERF etc.). I propose us doing a production readiness review to reach consensus.
Following is an attempt for your feedback (is the list complete? Is the assessment
accurate?):
* Hardware error detection/handling, power management. Needed by hyperscaler
deployment. The heavy lifting of RAS and power management features are done by
SMM. We need to have alternatives to get away from SMM completely.
One way is to move such logic to kernel. On the other hand, PRM is one of Intel
proposed methods to replace SMM [1].
* TPM, measured boot. Needed by hyperscaler deployment. Work is on-going. We
need enough measurements in all components of the Linuxboot stack.
* BMC coordination. Needed by hyperscaler deployment. Needs to report boot status
and do other needed handshaking with BMC. Since different hypderscalers use different
BMC FW (such as openBMC vs. uBMC) and different communication methods (such as
IPMI, SEL, redfish), host FW side needs to be inclusive and configurable.
* OptionRom. Needed by industry adoption. PCIe card vendors provide their device
firmware through OptionRom. Linuxboot invokes it in user space. Is it feature complete?
* Host FW upgrade. Needed by industry adoption. UEFI enables host firmware upgrade
at OS runtime through UEFI capsule update which is a runtime service. Hyperscaler does
host FW upgrade through BMC only. For general user community, probably it is okay
to do in-band host firmware upgrade through kernel.
* Secure boot. Needed by industry adoption. Can coreboot securely load payloads?
Can Linuxboot be set up to boot OS by calling kexec_file_load()? Also need support
for secure boot related provisioning, manufacturing process. UEFI answers such needs
with secure variable mgmt., and various modes (such as setup mode, audit mode).
What is our design? What's the difference from user's perspective?
* Configuration mgmt. Needed by industry adoption. Boot configurations need to be
managed in both boot time and runtime. The variable storage needs to be fault tolerant.
User may not want variable storage to be updated during host firmware upgrade process.
* CMD line interface. Needed by Industry adoption. Do we support similar functionalities
enabled by UEFI shell commands, albeit through Linux shell commands?
* GUI. Needed by industry adoption. Is there a framework to enable GUI, similar like UEFI’s HII
(Human Interface Infrastructure) framework?
PS. Thanks for the feedbacks from Ron and FB team.
Thanks,
Jonathan