+++ /dev/null
-## @file\r
-# Module produces PciCfgPpi2 on top of PciCfgPpi. It also updates the \r
-# PciCfg2Ppi pointer in the EFI_PEI_SERVICES upon a installation of\r
-# EcpPeiPciCfgPpi. \r
-#\r
-# EcpPeiPciCfgPpi is installed by a framework module which\r
-# produce PciCfgPpi originally. Such framework module is updated based on the \r
-# following rule to install EcpPeiPciCfgPpi instead of updating the PciCfg pointer\r
-# in the Framework PeiServicesTable: \r
-# \r
-# Search pattern:\r
-# PeiServices->PciCfg = <*>;\r
-# Replace pattern:\r
-# {\r
-# static EFI_PEI_PPI_DESCRIPTOR gEcpPeiPciCfgPpiList = {\r
-# (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
-# &gEcpPeiPciCfgPpiGuid,\r
-# <*>\r
-# };\r
-# (**PeiServices).InstallPpi (PeiServices, &gEcpPeiPciCfgPpiList);\r
-# }\r
-# \r
-# In addition, the PeiServicesTable definition in PeiApi.h is updated to\r
-# \r
-# struct _EFI_PEI_SERVICES {\r
-# EFI_TABLE_HEADER Hdr;\r
-# ...\r
-# \r
-# //\r
-# // Pointer to PPI interface\r
-# //\r
-# #if (PI_SPECIFICATION_VERSION < 0x00010000)\r
-# \r
-# PEI_CPU_IO_PPI *CpuIo;\r
-# ECP_PEI_PCI_CFG_PPI *PciCfg; //Changed.\r
-# #else\r
-# ...\r
-# #endif\r
-# \r
-# };\r
-# \r
-# This change enable the detection of code segment which invokes PeiServices->PciCfg->Modify.\r
-# Such code causes a build break as ECP_PEI_PCI_CFG_PPI does not has "Modify" field. \r
-# This should be updated to a call to PeiLibPciCfgModify as shown below:\r
-# \r
-# Search pattern:\r
-# *->Modify(<*>); \r
-# Replace pattern:\r
-# PeiLibPciCfgModify(<*>);\r
-#\r
-# PIWG's PI specification replaces Inte's EFI Specification 1.10.\r
-# EFI_PEI_PCI_CFG_PPI defined in Inte's EFI Specification 1.10 is replaced by\r
-# EFI_PEI_PCI_CFG2_PPI in PI 1.0.\r
-# This module produces PciCfgPpi on top of PciCfgPpi2. This module is used on platform when both of\r
-# these two conditions are true:\r
-# 1) Framework module present that produces PCI CFG PPI AND\r
-# 2) PI module that produces PCI CFG2 is not present\r
-#\r
-#\r
-# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
-#\r
-# This program and the accompanying materials\r
-# are licensed and made available under the terms and conditions of the BSD License\r
-# which accompanies this distribution. The full text of the license may be found at\r
-# http://opensource.org/licenses/bsd-license.php\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-#\r
-#\r
-##\r
-\r
-[Defines]\r
- INF_VERSION = 0x00010005\r
- BASE_NAME = PciCfg2OnPciCfgThunk\r
- FILE_GUID = 41401688-2862-431b-BAAC-6ECADAC384AB\r
- MODULE_TYPE = PEIM\r
- VERSION_STRING = 1.0\r
-\r
- ENTRY_POINT = PeimInitializePciCfg2\r
-\r
-#\r
-# The following information is for reference only and not required by the build tools.\r
-#\r
-# VALID_ARCHITECTURES = IA32 X64 EBC\r
-#\r
-\r
-[Sources]\r
- PciCfg2OnPciCfgThunk.c\r
-\r
-[Packages]\r
- MdePkg/MdePkg.dec\r
- IntelFrameworkPkg/IntelFrameworkPkg.dec\r
- EdkCompatibilityPkg/EdkCompatibilityPkg.dec\r
-\r
-[LibraryClasses]\r
- PeimEntryPoint\r
- DebugLib\r
-\r
-[Ppis]\r
- gEfiPciCfgPpiInServiceTableGuid\r
- gEfiPciCfg2PpiGuid\r
- gEcpPeiPciCfgPpiGuid\r
-\r
-[Depex]\r
- TRUE\r