mirror of https://github.com/acidanthera/audk.git
929804b172
It's a UINT8 (enum) PCD telling where the PcdVideoHorizontalResolution and PcdVideoVerticalResolution values are coming from. It can be: 0 (unset aka default from dsc file), or 1 (from PlatformConfig), or 2 (set by Video Driver). It will be used by video drivers to avoid overriding PlatformConfig values, or override each others values in case multiple display devices are present. The underlying problem this tries to solve is that the GOP protocol has no way to indicate the preferred video mode. On physical hardware this isn't much of a problem because using the highest resolution available works just fine as that is typically the native display resolution But in a virtual machine you don't want come up with a huge 4k window by default just because the virtual vga is able to handle that. Cutting down the video mode list isn't a great solution either as that would also remove the modes from the platform configuration so the user wouldn't be able to pick a resolution higher than the default any more. So with patch drivers can use use PcdVideoHorizontalResolution and PcdVideoVerticalResolution to indicate what the preferred display resolution is, without overwriting the user preferences from PlatformConfig if present. A possible alternative approach would be to extend the GOP protocol, but I'm not sure this is a good plan given this is mostly a problem for virtual machines and using PCDs allows to keep this local to OvmfPkg. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Ard Biesheuvel <ardb@kernel.org> |
||
---|---|---|
.. | ||
MicrovmX64.dsc | ||
MicrovmX64.fdf | ||
README |
README
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 ... ]