Platforms such as Xen already enumerates PCI bridges and devices. Use
this PCD to control EDK2 behavior.
The default behavior is to allow full PCI enumeration. This is the same
behavior as before this change.
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Laszlo Ersek <lersek@redhat.com>
);\r
} \r
\r
- gFullEnumeration = (BOOLEAN) ((SearchHostBridgeHandle (Controller) ? FALSE : TRUE));\r
+ if (PcdGetBool (PcdPciAllowFullEnumeration))\r
+ gFullEnumeration = (BOOLEAN) ((SearchHostBridgeHandle (Controller) ? FALSE : TRUE));\r
+ else\r
+ gFullEnumeration = FALSE;\r
\r
//\r
// Open Device Path Protocol for PCI root bridge\r
gEfiMdeModulePkgTokenSpaceGuid.PcdSrIovSupport\r
gEfiMdeModulePkgTokenSpaceGuid.PcdAriSupport\r
gEfiMdeModulePkgTokenSpaceGuid.PcdMrIovSupport\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdPciAllowFullEnumeration\r
\r
# [Event]\r
# ##\r
## This PCD specifies whether the Multi Root I/O virtualization support.\r
gEfiMdeModulePkgTokenSpaceGuid.PcdMrIovSupport|FALSE|BOOLEAN|0x10000046\r
\r
+ ## This PCD specifies whether full PCI enumeration is allowed.\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdPciAllowFullEnumeration|TRUE|BOOLEAN|0x10000048\r
+\r
[PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]\r
## Single root I/O virtualization virtual function memory BAR alignment\r
# BITN set indicates 2 of n+12 power\r