Re: Creating new target for Cloud Hypervisor


Gerd Hoffmann
 

Hi,

So, what problem you are facing which makes you think a separate
target would work better?  The timer thing should be a non-issue as
we plan to switch over OvmfPkgX64 to use apic timer anyway.
Well I have a problem regarding SerialDxe because it breaks a bit QEMU
since adding it without removing the PciSerial registers two ways of
reading from serial.
Gotcha.

From microvm, you simply removed PciSerial since you know it doesn't
support LPC bridge, but I can't do the same here. Can you think of
any other way of properly handling this with a runtime switch?
Well, tianocore isn't really designed for this. Typically image builds
have to handle one specific platform only, so that kind of runtime
switches is not needed and support for it is not really present in
tianocore.

Virtualization is kind of special here as we have a single build
supporting multiple platforms (pc & q35 qemu machine types with various
config variants like sev/tdx on/off) to avoid the number of builds for
qemu explode and to make things less confusing for users.

So the ovmf runtime checks are open-coded in many places (all those
switch (mHostBridgeDevId) statements for example). There is
ovmf-specific code for PCI where alot of the code only exists to
allow for runtime-switching between PCI (pc) and PCIe (q35).

So, yes, I guess it makes sense to have a separate target. Avoids the
Serial issue, you can drop drivers, you can probably also simplify PCI
as I suspect you don't need the PCI/PCIe runtime switching, ...

take care,
Gerd

Join devel@edk2.groups.io to automatically receive all group messages.