Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <[email protected]>
Cc: Jeff Fan <[email protected]>
Cc: Feng Tian <[email protected]>
---
 .../PciHostBridgeLibNull/PciHostBridgeLibNull.c    | 104 +++++++++++++++++++++
 .../PciHostBridgeLibNull/PciHostBridgeLibNull.inf  |  36 +++++++
 .../PciHostBridgeLibNull/PciHostBridgeLibNull.uni  | Bin 0 -> 1836 bytes
 MdeModulePkg/MdeModulePkg.dsc                      |   3 +-
 4 files changed, 142 insertions(+), 1 deletion(-)
 create mode 100644 
MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.c
 create mode 100644 
MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.inf
 create mode 100644 
MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.uni

diff --git a/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.c 
b/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.c
new file mode 100644
index 0000000..b70bdb5
--- /dev/null
+++ b/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.c
@@ -0,0 +1,104 @@
+/** @file
+  Null instance of PCI Host Bridge Library with empty functions.
+
+  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+  This program and the accompanying materials are
+  licensed and made available under the terms and conditions of
+  the BSD License which accompanies this distribution.  The full
+  text of the license may be found at
+  http://opensource.org/licenses/bsd-license.php.
+  
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+#include <PiDxe.h>
+#include <Library/PciHostBridgeLib.h>
+#include <Library/DebugLib.h>
+
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR16 
*mPciHostBridgeLibAcpiAddressSpaceTypeStr[] = {
+  L"Mem", L"I/O", L"Bus"
+};
+
+/**
+  Return all the root bridge instances in an array.
+
+  @param Count  Return the count of root bridge instances.
+
+  @return All the root bridge instances in an array.
+          The array should be passed into PciHostBridgeFreeRootBridges()
+          when it's not used. 
+**/
+PCI_ROOT_BRIDGE *
+EFIAPI
+PciHostBridgeGetRootBridges (
+  UINTN *Count
+  )
+{
+  *Count = 0;
+  return NULL;
+}
+
+/**
+  Free the root bridge instances array returned from 
PciHostBridgeGetRootBridges().
+
+  @param  The root bridge instances array.
+  @param  The count of the array.
+**/
+VOID
+EFIAPI
+PciHostBridgeFreeRootBridges (
+  PCI_ROOT_BRIDGE *Bridges,
+  UINTN           Count
+  )
+{
+  return;
+}
+
+/**
+  Inform the platform that the resource conflict happens.
+
+  @param HostBridgeHandle Handle of the Host Bridge.
+  @param Configuration    Pointer to PCI I/O and PCI memory resource 
descriptors.
+                          The Configuration contains the resources for all the
+                          root bridges. The resource for each root bridge is
+                          terminated with END descriptor and an additional END
+                          is appended indicating the end of the entire 
resources.
+                          The resource descriptor field values follow the 
description
+                          in 
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL.SubmitResources().
+**/
+VOID
+EFIAPI
+PciHostBridgeResourceConflict (
+  EFI_HANDLE                        HostBridgeHandle,
+  VOID                              *Configuration
+  )
+{
+  EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *Descriptor;
+  UINTN                             RootBridgeIndex;
+  DEBUG ((EFI_D_ERROR, "PciHostBridge: Resource conflict happens!\n"));
+
+  RootBridgeIndex = 0;
+  Descriptor = (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *) Configuration;
+  while (Descriptor->Desc == ACPI_ADDRESS_SPACE_DESCRIPTOR) {
+    DEBUG ((EFI_D_INFO, "RootBridge[%d]:\n", RootBridgeIndex++));
+    for (; Descriptor->Desc == ACPI_ADDRESS_SPACE_DESCRIPTOR; Descriptor++) {
+      ASSERT (Descriptor->ResType <
+              sizeof (mPciHostBridgeLibAcpiAddressSpaceTypeStr) / sizeof 
(mPciHostBridgeLibAcpiAddressSpaceTypeStr[0])
+              );
+      DEBUG ((EFI_D_ERROR, " %s: Length/Alignment = 0x%lx / 0x%lx\n",
+              mPciHostBridgeLibAcpiAddressSpaceTypeStr[Descriptor->ResType], 
Descriptor->AddrLen, Descriptor->AddrRangeMax));
+      if (Descriptor->ResType == ACPI_ADDRESS_SPACE_TYPE_MEM) {
+        DEBUG ((EFI_D_ERROR, "     Granularity/SpecificFlag = %ld / %02x%s\n",
+                Descriptor->AddrSpaceGranularity, Descriptor->SpecificFlag,
+                ((Descriptor->SpecificFlag & 
EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE) != 0) ? L" 
(Prefetchable)" : L""
+                ));
+      }
+    }
+    //
+    // Skip the END descriptor for root bridge
+    //
+    ASSERT (Descriptor->Desc == ACPI_END_TAG_DESCRIPTOR);
+    Descriptor = (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *) 
((EFI_ACPI_END_TAG_DESCRIPTOR *) Descriptor + 1);
+  }
+}
diff --git a/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.inf 
b/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.inf
new file mode 100644
index 0000000..6b30211
--- /dev/null
+++ b/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.inf
@@ -0,0 +1,36 @@
+## @file
+#  Null instance of PCI Host Bridge Library with empty functions.
+#
+#  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+#
+#  This program and the accompanying materials
+#  are licensed and made available under the terms and conditions of the BSD 
License
+#  which accompanies this distribution. The full text of the license may be 
found at
+#  http://opensource.org/licenses/bsd-license.php
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR 
IMPLIED.
+#
+#
+##
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = PciHostBridgeLibNull
+  MODULE_UNI_FILE                = PciHostBridgeLibNull.uni
+  FILE_GUID                      = A19A6C36-7053-4E2C-8BD0-E8286230E473
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = PciHostBridgeLib
+
+#
+# The following information is for reference only and not required by the 
build tools.
+#
+#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
+#
+
+[Sources]
+  PciHostBridgeLibNull.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
diff --git a/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.uni 
b/MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.uni
new file mode 100644
index 
0000000000000000000000000000000000000000..8a06bb720f625b8ce126e41a5092dd75ddfcc0cc
GIT binary patch
literal 1836
zcmdUvPjAye5XI+=#CKSw7eH+S9C|<qku(M@ppFtpg;Qn6O=`($E5}g!<)Oc~j_neP
z#0h~S@1L33nKy6W=EwJe4b1U9;pgnNEiJdg&g`K*z$)LdeZf+&%I(57R$0QlAja7x
z@y;f8WFhlA_VPO$SxIzeD<AcNb&4h7yTN<SzOr*xXSTL0*0L_Cqr4T~OJAwqqWD+Q
z9D(!-^y+p+N9z3%Jv?T9Zcpu*9ojzYkbWw<6^lAka!O;;cH74@-16LI+h8p@x8W=8
zD`RGTdkMc&dvy;xF&J{99r;TttbC0%d)-;aEZ%i<2`Cpth=2KRICnw3!y;6wm$NF!
z*0HY})ae4B6d*kaQ<q<-Gar+HHzBTIOc`}fH!N?-x<OLcT6@$DN+DCEbkeAyQCo9v
zWHTF+N9yXZbXc!F7YoK;yUoEMmXxdJOSPn3b)AB<sjGX5x133#^-B=uZ^Z0k`k9xS
zOKCgx-7o2?W<ZFlJG@Fc6*uw1zd32D=2r2g@2=0;lKUC#aKFKlf;_W>9Z#Pu=X@O_
zF)uU#%>?yC_LgyIAK8a6>EKdxj5S1Gb5?=pcg{b+nDvyHCPT-4h@Jx?W<GPoN;=lq
zV^&^e?J<x1Uc3D}m`?C3Yve0BJ0WW7ksV_X$*LTYuRdib?6Rq5Osry5wT^m2tg3%z
zeve1U_5OlwmAZ?-KDBwe>>*rCP?Ktod1Vc6&FuVt<iOiy)3?`ZrhYp$f2U-M$T25d
zV5cAwUt)F$TQPWk_uJzR^#)eld%~zUBPAS=OGtZk)M)VU{~Pz(-v6v`sb)sUQq-iq
Lsr!2WANsxpGLj(o

literal 0
HcmV?d00001

diff --git a/MdeModulePkg/MdeModulePkg.dsc b/MdeModulePkg/MdeModulePkg.dsc
index 0e3e5eb..4b093e4 100644
--- a/MdeModulePkg/MdeModulePkg.dsc
+++ b/MdeModulePkg/MdeModulePkg.dsc
@@ -2,7 +2,7 @@
 # EFI/PI Reference Module Package for All Architectures
 #
 # (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
-# Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
 #
 #    This program and the accompanying materials
 #    are licensed and made available under the terms and conditions of the BSD 
License
@@ -96,6 +96,7 @@
   
S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf
   
CpuExceptionHandlerLib|MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.inf
   
PlatformBootManagerLib|MdeModulePkg/Library/PlatformBootManagerLibNull/PlatformBootManagerLibNull.inf
+  
PciHostBridgeLib|MdeModulePkg/Library/PciHostBridgeLibNull/PciHostBridgeLibNull.inf
   
TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
   
AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
   VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
-- 
2.6.2.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to