mirror of https://github.com/acidanthera/audk.git
106 lines
3.3 KiB
INI
106 lines
3.3 KiB
INI
## @file
|
|
# Module produces PciCfgPpi2 on top of PciCfgPpi. It also updates the
|
|
# PciCfg2Ppi pointer in the EFI_PEI_SERVICES upon a installation of
|
|
# EcpPeiPciCfgPpi.
|
|
#
|
|
# EcpPeiPciCfgPpi is installed by a framework module which
|
|
# produce PciCfgPpi originally. Such framework module is updated based on the
|
|
# following rule to install EcpPeiPciCfgPpi instead of updating the PciCfg pointer
|
|
# in the Framework PeiServicesTable:
|
|
#
|
|
# Search pattern:
|
|
# PeiServices->PciCfg = <*>;
|
|
# Replace pattern:
|
|
# {
|
|
# static EFI_PEI_PPI_DESCRIPTOR gEcpPeiPciCfgPpiList = {
|
|
# (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
|
|
# &gEcpPeiPciCfgPpiGuid,
|
|
# <*>
|
|
# };
|
|
# (**PeiServices).InstallPpi (PeiServices, &gEcpPeiPciCfgPpiList);
|
|
# }
|
|
#
|
|
# In addition, the PeiServicesTable definition in PeiApi.h is updated to
|
|
#
|
|
# struct _EFI_PEI_SERVICES {
|
|
# EFI_TABLE_HEADER Hdr;
|
|
# ...
|
|
#
|
|
# //
|
|
# // Pointer to PPI interface
|
|
# //
|
|
# #if (PI_SPECIFICATION_VERSION < 0x00010000)
|
|
#
|
|
# PEI_CPU_IO_PPI *CpuIo;
|
|
# ECP_PEI_PCI_CFG_PPI *PciCfg; //Changed.
|
|
# #else
|
|
# ...
|
|
# #endif
|
|
#
|
|
# };
|
|
#
|
|
# This change enable the detection of code segment which invokes PeiServices->PciCfg->Modify.
|
|
# Such code causes a build break as ECP_PEI_PCI_CFG_PPI does not has "Modify" field.
|
|
# This should be updated to a call to PeiLibPciCfgModify as shown below:
|
|
#
|
|
# Search pattern:
|
|
# *->Modify(<*>);
|
|
# Replace pattern:
|
|
# PeiLibPciCfgModify(<*>);
|
|
#
|
|
# PIWG's PI specification replaces Inte's EFI Specification 1.10.
|
|
# EFI_PEI_PCI_CFG_PPI defined in Inte's EFI Specification 1.10 is replaced by
|
|
# EFI_PEI_PCI_CFG2_PPI in PI 1.0.
|
|
# This module produces PciCfgPpi on top of PciCfgPpi2. This module is used on platform when both of
|
|
# these two conditions are true:
|
|
# 1) Framework module present that produces PCI CFG PPI AND
|
|
# 2) PI module that produces PCI CFG2 is not present
|
|
#
|
|
#
|
|
# Copyright (c) 2006 - 2018, 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 = PciCfg2OnPciCfgThunk
|
|
FILE_GUID = 41401688-2862-431b-BAAC-6ECADAC384AB
|
|
MODULE_TYPE = PEIM
|
|
VERSION_STRING = 1.0
|
|
|
|
ENTRY_POINT = PeimInitializePciCfg2
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64 EBC
|
|
#
|
|
|
|
[Sources]
|
|
PciCfg2OnPciCfgThunk.c
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
IntelFrameworkPkg/IntelFrameworkPkg.dec
|
|
EdkCompatibilityPkg/EdkCompatibilityPkg.dec
|
|
|
|
[LibraryClasses]
|
|
PeimEntryPoint
|
|
DebugLib
|
|
|
|
[Ppis]
|
|
gEfiPciCfgPpiInServiceTableGuid
|
|
gEfiPciCfg2PpiGuid
|
|
gEcpPeiPciCfgPpiGuid
|
|
|
|
[Depex]
|
|
TRUE
|