]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/Microvm/README
OvmfPkg: Enable 2 different CpuMpPei and CpuDxe drivers
[mirror_edk2.git] / OvmfPkg / Microvm / README
1
2 This is an *experimental* port of OVMF for the QEMU microvm
3 machine type.
4
5 microvm background info
6 -----------------------
7
8 microvm is designed for modern, virtio-based workloads. Most legacy
9 lpc/isa devices like pit and pic can be turned off. virtio-mmio
10 (i.e. '-device virtio-{blk,net,scsi,...}-device') is used for
11 storage/network/etc.
12
13 Optional pcie support is available and any pcie device supported by
14 QEMU can be plugged in (including virtio-pci if you prefer that over
15 virtio-mmio).
16
17 https://qemu.readthedocs.io/en/latest/system/i386/microvm.html
18 https://www.kraxel.org/blog/2020/10/qemu-microvm-acpi/
19
20 design issues
21 -------------
22
23 Not fully clear yet how to do hardware detection best. Right now
24 using device tree to find virtio-mmio devices and pcie host bridge,
25 can reuse existing ArmVirtPkg code that way. Needs patched QEMU.
26
27 features
28 --------
29 [working] serial console
30 [working] direct kernel boot
31 [working] virtio-mmio support
32 [in progress] pcie support
33
34 known limitations
35 -----------------
36 * rtc=on is required for now.
37 * can't use separate code/vars (actually an microvm limitation,
38 there is no pflash support).
39 * transitional virtio-pci devices do not work. microvm doesn't
40 support ioports on pcie, and ovmf doesn't initialize pcie devices
41 with ioports if there is no address space for them (even though
42 pcie devices are required to be functional without ioports).
43
44 usage
45 -----
46 qemu-system-x86_64 \
47 -nographic \
48 -machine microvm,acpi=on,pit=off,pic=off,rtc=on \
49 -bios /path/to/MICROVM.fd \
50 [ ... more args here ... ]