README 1.6 KB

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