Borhan Tuğsan Balcı

A low level enthusiast focusing on Windows internals, UEFI, Hypervisors, SMM and security.

Minimalist UEFI Implementation for Virtual Machines

We all know the OVMF TianoCore2. The great virtual machine firmware framework used by VirtualBox and KVM (by default). It's a complete and beautiful reference implementation of the UEFI spec. But do we need the PEI phase? The SEC phase in a virtual machine? That we can directly start from a DXE (or PEI phase to setup DXE environment) that skips SEC phase and legacy burdens (via usage of VMCS/VMCB or corresponding control structure for firmware) directly. Hypervisor provides the ACPI tables and PCIe configuration space. So firmware is used more as a "get it done" layer to boot a modern OS than a full implementation.