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