Extend parameter list of PciHostBridgeUtilityGetRootBridges() with DmaAbove4G, NoExtendedConfigSpace to support for ArmVirtPkg.
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3059 Cc: Jordan Justen <jordan.l.jus...@intel.com> Cc: Laszlo Ersek <ler...@redhat.com> Cc: Ard Biesheuvel <ard.biesheu...@arm.com> Signed-off-by: Jiahui Cen <cenjia...@huawei.com> Signed-off-by: Yubo Miao <miaoy...@huawei.com> --- OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf | 4 --- OvmfPkg/Include/Library/PciHostBridgeUtilityLib.h | 24 ++++++++------ OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.c | 5 +++ OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.c | 34 +++++++++++--------- 4 files changed, 39 insertions(+), 28 deletions(-) diff --git a/OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf b/OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf index fdae8cfe872e..83a734c1725e 100644 --- a/OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf +++ b/OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf @@ -39,9 +39,5 @@ [LibraryClasses] DebugLib DevicePathLib MemoryAllocationLib - PcdLib PciLib QemuFwCfgLib - -[Pcd] - gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId diff --git a/OvmfPkg/Include/Library/PciHostBridgeUtilityLib.h b/OvmfPkg/Include/Library/PciHostBridgeUtilityLib.h index 2b7d5d3725c3..a0ea44d96a67 100644 --- a/OvmfPkg/Include/Library/PciHostBridgeUtilityLib.h +++ b/OvmfPkg/Include/Library/PciHostBridgeUtilityLib.h @@ -102,23 +102,27 @@ PciHostBridgeUtilityUninitRootBridge ( /** Utility function to return all the root bridge instances in an array. - @param[out] Count The number of root bridge instances. + @param[out] Count The number of root bridge instances. - @param[in] Attributes Initial attributes. + @param[in] Attributes Initial attributes. - @param[in] AllocAttributes Allocation attributes. + @param[in] AllocAttributes Allocation attributes. - @param[in] Io IO aperture. + @param[in] DmaAbove4G DMA above 4GB memory. - @param[in] Mem MMIO aperture. + @param[in] NoExtendedConfigSpace No Extended Config Space. - @param[in] MemAbove4G MMIO aperture above 4G. + @param[in] Io IO aperture. - @param[in] PMem Prefetchable MMIO aperture. + @param[in] Mem MMIO aperture. - @param[in] PMemAbove4G Prefetchable MMIO aperture above 4G. + @param[in] MemAbove4G MMIO aperture above 4G. - @return All the root bridge instances in an array. + @param[in] PMem Prefetchable MMIO aperture. + + @param[in] PMemAbove4G Prefetchable MMIO aperture above 4G. + + @return All the root bridge instances in an array. **/ PCI_ROOT_BRIDGE * EFIAPI @@ -126,6 +130,8 @@ PciHostBridgeUtilityGetRootBridges ( OUT UINTN *Count, IN UINT64 Attributes, IN UINT64 AllocationAttributes, + IN BOOLEAN DmaAbove4G, + IN BOOLEAN NoExtendedConfigSpace, IN PCI_ROOT_BRIDGE_APERTURE *Io, IN PCI_ROOT_BRIDGE_APERTURE *Mem, IN PCI_ROOT_BRIDGE_APERTURE *MemAbove4G, diff --git a/OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.c b/OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.c index 6ac41ff853a9..91b9e6baa1e8 100644 --- a/OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.c +++ b/OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.c @@ -9,6 +9,9 @@ **/ #include <PiDxe.h> +#include <IndustryStandard/Pci.h> +#include <IndustryStandard/Q35MchIch9.h> + #include <Protocol/PciHostBridgeResourceAllocation.h> #include <Protocol/PciRootBridgeIo.h> @@ -80,6 +83,8 @@ PciHostBridgeGetRootBridges ( Count, Attributes, AllocationAttributes, + FALSE, + PcdGet16 (PcdOvmfHostBridgePciDevId) != INTEL_Q35_MCH_DEVICE_ID, &Io, &Mem, &MemAbove4G, diff --git a/OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.c b/OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.c index b1e74a469d50..1d78984b83ad 100644 --- a/OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.c +++ b/OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.c @@ -12,12 +12,10 @@ #include <IndustryStandard/Acpi10.h> #include <IndustryStandard/Pci.h> -#include <IndustryStandard/Q35MchIch9.h> #include <Library/BaseMemoryLib.h> #include <Library/DebugLib.h> #include <Library/DevicePathLib.h> #include <Library/MemoryAllocationLib.h> -#include <Library/PcdLib.h> #include <Library/PciHostBridgeUtilityLib.h> #include <Library/PciLib.h> #include <Library/QemuFwCfgLib.h> @@ -192,23 +190,27 @@ PciHostBridgeUtilityUninitRootBridge ( /** Utility function to return all the root bridge instances in an array. - @param[out] Count The number of root bridge instances. + @param[out] Count The number of root bridge instances. - @param[in] Attributes Initial attributes. + @param[in] Attributes Initial attributes. - @param[in] AllocAttributes Allocation attributes. + @param[in] AllocAttributes Allocation attributes. - @param[in] Io IO aperture. + @param[in] DmaAbove4G DMA above 4GB memory. - @param[in] Mem MMIO aperture. + @param[in] NoExtendedConfigSpace No Extended Config Space. - @param[in] MemAbove4G MMIO aperture above 4G. + @param[in] Io IO aperture. - @param[in] PMem Prefetchable MMIO aperture. + @param[in] Mem MMIO aperture. - @param[in] PMemAbove4G Prefetchable MMIO aperture above 4G. + @param[in] MemAbove4G MMIO aperture above 4G. - @return All the root bridge instances in an array. + @param[in] PMem Prefetchable MMIO aperture. + + @param[in] PMemAbove4G Prefetchable MMIO aperture above 4G. + + @return All the root bridge instances in an array. **/ PCI_ROOT_BRIDGE * EFIAPI @@ -216,6 +218,8 @@ PciHostBridgeUtilityGetRootBridges ( OUT UINTN *Count, IN UINT64 Attributes, IN UINT64 AllocationAttributes, + IN BOOLEAN DmaAbove4G, + IN BOOLEAN NoExtendedConfigSpace, IN PCI_ROOT_BRIDGE_APERTURE *Io, IN PCI_ROOT_BRIDGE_APERTURE *Mem, IN PCI_ROOT_BRIDGE_APERTURE *MemAbove4G, @@ -295,8 +299,8 @@ PciHostBridgeUtilityGetRootBridges ( Attributes, Attributes, AllocationAttributes, - FALSE, - PcdGet16 (PcdOvmfHostBridgePciDevId) != INTEL_Q35_MCH_DEVICE_ID, + DmaAbove4G, + NoExtendedConfigSpace, (UINT8) LastRootBridgeNumber, (UINT8) (RootBridgeNumber - 1), Io, @@ -322,8 +326,8 @@ PciHostBridgeUtilityGetRootBridges ( Attributes, Attributes, AllocationAttributes, - FALSE, - PcdGet16 (PcdOvmfHostBridgePciDevId) != INTEL_Q35_MCH_DEVICE_ID, + DmaAbove4G, + NoExtendedConfigSpace, (UINT8) LastRootBridgeNumber, PCI_MAX_BUS, Io, -- 2.29.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#70525): https://edk2.groups.io/g/devel/message/70525 Mute This Topic: https://groups.io/mt/79941635/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-