1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- This is an *experimental* port of OVMF for the QEMU microvm
- machine type.
- microvm background info
- -----------------------
- microvm is designed for modern, virtio-based workloads. Most legacy
- lpc/isa devices like pit and pic can be turned off. virtio-mmio
- (i.e. '-device virtio-{blk,net,scsi,...}-device') is used for
- storage/network/etc.
- Optional pcie support is available and any pcie device supported by
- QEMU can be plugged in (including virtio-pci if you prefer that over
- virtio-mmio).
- https://qemu.readthedocs.io/en/latest/system/i386/microvm.html
- https://www.kraxel.org/blog/2020/10/qemu-microvm-acpi/
- design issues
- -------------
- Not fully clear yet how to do hardware detection best. Right now
- using device tree to find virtio-mmio devices and pcie host bridge,
- can reuse existing ArmVirtPkg code that way. Needs patched QEMU.
- features
- --------
- [working] serial console
- [working] direct kernel boot
- [working] virtio-mmio support
- [working] pcie support
- known limitations
- -----------------
- * rtc=on is required for now.
- * can't use separate code/vars (actually an microvm limitation,
- there is no pflash support).
- * transitional virtio-pci devices do not work. microvm doesn't
- support ioports on pcie, and ovmf doesn't initialize pcie devices
- with ioports if there is no address space for them (even though
- pcie devices are required to be functional without ioports).
- usage
- -----
- qemu-system-x86_64 \
- -nographic \
- -machine microvm,acpi=on,pit=off,pic=off,rtc=on \
- -bios /path/to/MICROVM.fd \
- [ ... more args here ... ]
|