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

Reply via email to