Hi,
So why ovmf should be different? IMHO it should operate like seabios and NOT do pci ressource allocation when running on xen. Ressources are already handled already by hvmloader. Doing it again is (a) pointless and (b) creates problems like the one we are discussion right now.
Agreed. But the protocol to allocate PCI resources seems to be mandatory according to UEFI spec [0].
--- page 16 The following protocols are mandatory if the system supports PCI devices or slots: • EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL • EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL --
I'm more than happy to disable that allocation protocol if there's a way.
Disabling isn't going to fly I suspect. But maybe it is possible to add a read-only mode to these protocols, so they just enumerate the pci bus(es), read the pci bar registers and create whatever data structures ovmf needs to drive the pci devices. But don't try to manage the pci ressources.
That would also be useful when running tianocore as coreboot payload, which is a simliar situation: coreboot already did the pci enumeration and tianocore doesn't need to do it again (Cc'ing coreboot list).
cheers, Gerd