Revision: 14940
          http://sourceforge.net/p/edk2/code/14940
Author:   jljusten
Date:     2013-12-08 01:35:32 +0000 (Sun, 08 Dec 2013)
Log Message:
-----------
MdeModulePkg: introduce PcdPciDisableBusEnumeration

Platforms such as Xen already enumerates PCI bridges and devices. Use
this PCD to control EDK2 behavior.

PcdPciDisableBusEnumeration is placed under [PcdsFixedAtBuild,
PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx], so that it is
possible to alter it during runtime.

The default setting of this PCD is false (allow full PCI enumeration) to
preserve the same behavior before this change.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wei Liu <[email protected]>
Reviewed-by: Jordan Justen <[email protected]>
Reviewed-by: Michael Kinney <[email protected]>

Modified Paths:
--------------
    trunk/edk2/MdeModulePkg/Bus/Pci/PciBusDxe/PciBus.c
    trunk/edk2/MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
    trunk/edk2/MdeModulePkg/MdeModulePkg.dec

Modified: trunk/edk2/MdeModulePkg/Bus/Pci/PciBusDxe/PciBus.c
===================================================================
--- trunk/edk2/MdeModulePkg/Bus/Pci/PciBusDxe/PciBus.c  2013-12-06 16:13:13 UTC 
(rev 14939)
+++ trunk/edk2/MdeModulePkg/Bus/Pci/PciBusDxe/PciBus.c  2013-12-08 01:35:32 UTC 
(rev 14940)
@@ -284,7 +284,11 @@
           );
   }  
 
-  gFullEnumeration = (BOOLEAN) ((SearchHostBridgeHandle (Controller) ? FALSE : 
TRUE));
+  if (PcdGetBool (PcdPciDisableBusEnumeration)) {
+    gFullEnumeration = FALSE;
+  } else {
+    gFullEnumeration = (BOOLEAN) ((SearchHostBridgeHandle (Controller) ? FALSE 
: TRUE));
+  }
 
   //
   // Open Device Path Protocol for PCI root bridge

Modified: trunk/edk2/MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
===================================================================
--- trunk/edk2/MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf     2013-12-06 
16:13:13 UTC (rev 14939)
+++ trunk/edk2/MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf     2013-12-08 
01:35:32 UTC (rev 14940)
@@ -108,6 +108,7 @@
   gEfiMdeModulePkgTokenSpaceGuid.PcdSrIovSupport
   gEfiMdeModulePkgTokenSpaceGuid.PcdAriSupport
   gEfiMdeModulePkgTokenSpaceGuid.PcdMrIovSupport
+  gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration
 
 # [Event]
 #   ##

Modified: trunk/edk2/MdeModulePkg/MdeModulePkg.dec
===================================================================
--- trunk/edk2/MdeModulePkg/MdeModulePkg.dec    2013-12-06 16:13:13 UTC (rev 
14939)
+++ trunk/edk2/MdeModulePkg/MdeModulePkg.dec    2013-12-08 01:35:32 UTC (rev 
14940)
@@ -878,6 +878,9 @@
   ## This PCD specified whether the S.M.A.R.T feature of attached ATA hard 
disks are enabled.
   gEfiMdeModulePkgTokenSpaceGuid.PcdAtaSmartEnable|TRUE|BOOLEAN|0x00010065
 
+  ## This PCD specifies whether full PCI enumeration is disabled.
+  
gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE|BOOLEAN|0x10000048
+
 [PcdsPatchableInModule]
   ## Specify  memory size with page number for PEI code when 
   #  the feature of Loading Module at Fixed Address is enabled

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Sponsored by Intel(R) XDK 
Develop, test and display web and hybrid apps with a single code base.
Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to