Skip to content

Latest commit

 

History

History
38 lines (28 loc) · 1.58 KB

mu_msvm_uefi.md

File metadata and controls

38 lines (28 loc) · 1.58 KB

UEFI: mu_msvm

OpenVMM currently uses the mu_msvm UEFI firmware package in order to support booting and running modern EFI-boot capable operating systems.

In the future, it would be useful to also support alternative UEFI firmware
packages, such as [OVMF].

Please reach out of if this is something you may be interested in helping out
with!

Two OpenVMM components work in tandem in order to load and run the mu_msvm UEFI firmware:

  • Pre-boot: the VMM's UEFI firmware loader does 3 things:

    1. Writes the mu_msvm UEFI firmware package into guest RAM
    2. Writes VM topology information, and mu_msvm-specific config data into guest RAM
    3. Initializes register state such that the VM will begin executing from UEFI
  • At runtime: the UEFI code within the Guest interfaces with a bespoke firmware_uefi device in order to implement certain UEFI services, such as NVRam variable support, watchdog timers, logging, etc.

Acquiring a copy of mu_msvm

The cargo xflowey restore-packages script will automatically pull down a precompiled copy of the mu_msvm UEFI firmware from the microsoft/mu_msvm GitHub repo.

Alternatively, for those that wish to manually download / build mu_msvm: follow the instructions over on the microsoft/mu_msvm repo, and ensure the package is extracted into the .packages/ directory in the same manner as the cargo xflowey restore-packages script.