The first two patches should fix <https://github.com/tianocore/edk2/issues/32>, based on Marcel's analysis in that item. (Thanks a lot for that again!) These patches are (and should be) independent of -D USE_OLD_PCI_HOST; that is, they are active regardless of the fallback that we're temporarily retaining.
Michał, can you please test if the series solves your issue? Then, based on the first two patches, the other three expose ECAM to the firmware modules proper (DXE and later). These do depend on USE_OLD_PCI_HOST==FALSE (which is the default now, and the only supported build in the mid term). I tested & regression tested the series in a bunch of scenarios; the most interesting is probably the usual physical GPU assignment. On Q35, the core PciHostBridgeDxe now permits access to the full extended config space, and it works all right with the PCIe GTX750. Gabriel, can you please check if your Q35 OSX guest(s) continue working with this? Public branch: <https://github.com/lersek/edk2/commits/pcie_issue32_v1>. Cc: Gabriel Somlo <so...@cmu.edu> Cc: Jordan Justen <jordan.l.jus...@intel.com> Cc: Marcel Apfelbaum <mar...@redhat.com> Cc: Michał Zegan <webczat_...@poczta.onet.pl> Cc: Ruiyu Ni <ruiyu...@intel.com> Thanks! Laszlo Laszlo Ersek (5): OvmfPkg: IndustryStandard/Q35MchIch9.h: add PCIEXBAR macros OvmfPkg: PlatformPei: enable PCIEXBAR (aka MMCONFIG / ECAM) on Q35 OvmfPkg: add DxePciLibI440FxQ35 OvmfPkg: match PCI config access to machine type (if not USE_OLD_PCI_HOST) OvmfPkg: PciHostBridgeLib: permit access to the full extended config space OvmfPkg/Include/IndustryStandard/Q35MchIch9.h | 8 + OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf | 47 ++++++ {MdePkg/Library/BasePciLibCf8 => OvmfPkg/Library/DxePciLibI440FxQ35}/PciLib.c | 161 +++++++++++++++----- OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.c | 4 +- OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.inf | 1 + OvmfPkg/OvmfPkgIa32.dsc | 29 ++++ OvmfPkg/OvmfPkgIa32X64.dsc | 29 ++++ OvmfPkg/OvmfPkgX64.dsc | 29 ++++ OvmfPkg/PlatformPei/Platform.c | 81 ++++++++++ OvmfPkg/PlatformPei/PlatformPei.inf | 3 + 10 files changed, 356 insertions(+), 36 deletions(-) create mode 100644 OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf copy {MdePkg/Library/BasePciLibCf8 => OvmfPkg/Library/DxePciLibI440FxQ35}/PciLib.c (85%) -- 1.8.3.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel