mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-12-04 13:23:26 +01:00
51 lines
1.6 KiB
Plaintext
51 lines
1.6 KiB
Plaintext
|
|
||
|
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 ... ]
|