From a06d0bb58eb919d43a6b8f1ef0625241d3ed7531 Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Fri, 8 Apr 2016 11:45:00 +0200 Subject: [PATCH] ArmVirtPkg/BaseCachingPciExpressLib: depend on PciPcdProducerLib Make BaseCachingPciExpressLib depend on PciPcdProducerLib, so that we have a chance to populate PcdPciExpressBaseAddress based on the contents of the device tree. Also update the platforms under ArmVirtPkg that support PCI to use the special MAX_UINT64 value as the build time default for PcdPciExpressBaseAddress. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel Reviewed-by: Laszlo Ersek --- ArmVirtPkg/ArmVirtQemu.dsc | 6 +++++- ArmVirtPkg/ArmVirtQemuKernel.dsc | 6 +++++- .../BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf | 2 ++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc index bb99426226..f2eccf8cca 100644 --- a/ArmVirtPkg/ArmVirtQemu.dsc +++ b/ArmVirtPkg/ArmVirtQemu.dsc @@ -66,6 +66,7 @@ !if $(SECURE_BOOT_ENABLE) == TRUE FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf !endif + PciPcdProducerLib|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf [LibraryClasses.common.UEFI_DRIVER] UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf @@ -219,7 +220,10 @@ gArmPlatformTokenSpaceGuid.PcdPciIoTranslation|0x0 gArmPlatformTokenSpaceGuid.PcdPciMmio32Base|0x0 gArmPlatformTokenSpaceGuid.PcdPciMmio32Size|0x0 - gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0x0 + + # set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that this + # PCD and PcdPciDisableBusEnumeration above have not been assigned yet + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFFFF # # Set video resolution for boot options and for text setup. diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc index d6c73d9608..107627e6a6 100644 --- a/ArmVirtPkg/ArmVirtQemuKernel.dsc +++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc @@ -65,6 +65,7 @@ !if $(SECURE_BOOT_ENABLE) == TRUE FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf !endif + PciPcdProducerLib|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf [LibraryClasses.common.UEFI_DRIVER] UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf @@ -204,7 +205,10 @@ gArmPlatformTokenSpaceGuid.PcdPciIoTranslation|0x0 gArmPlatformTokenSpaceGuid.PcdPciMmio32Base|0x0 gArmPlatformTokenSpaceGuid.PcdPciMmio32Size|0x0 - gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0x0 + + # set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that this + # PCD and PcdPciDisableBusEnumeration above have not been assigned yet + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFFFF # # Set video resolution for boot options and for text setup. diff --git a/ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf b/ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf index f6a346d49f..b32554a111 100644 --- a/ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf +++ b/ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf @@ -33,6 +33,7 @@ PciExpressLib.c [Packages] + ArmVirtPkg/ArmVirtPkg.dec MdePkg/MdePkg.dec [LibraryClasses] @@ -40,6 +41,7 @@ PcdLib DebugLib IoLib + PciPcdProducerLib [Pcd] gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress ## CONSUMES -- 2.39.2