summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/Microvm
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2021-12-13 09:16:58 +0100
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-12-13 12:16:32 +0000
commite07d27e24d5dc9b11260d81bc2d2444d194baf62 (patch)
treee88b5ab12d74d7e13f80393d92ef1fde80abe1ba /OvmfPkg/Microvm
parent2a68abf6eec28f4d1b9f7ad30e1baa1ea3d11965 (diff)
downloadedk2-e07d27e24d5dc9b11260d81bc2d2444d194baf62.tar.gz
edk2-e07d27e24d5dc9b11260d81bc2d2444d194baf62.tar.bz2
edk2-e07d27e24d5dc9b11260d81bc2d2444d194baf62.zip
OvmfPkg/Microvm: add README
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3599 Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Jiewen Yao <Jiewen.yao@intel.com> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Diffstat (limited to 'OvmfPkg/Microvm')
-rw-r--r--OvmfPkg/Microvm/README50
1 files changed, 50 insertions, 0 deletions
diff --git a/OvmfPkg/Microvm/README b/OvmfPkg/Microvm/README
new file mode 100644
index 0000000000..540d39f2ec
--- /dev/null
+++ b/OvmfPkg/Microvm/README
@@ -0,0 +1,50 @@
+
+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
+ [in progress] 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 ... ]