Files
system76-edk2/EdkCompatibilityPkg/Compatibility/PciCfg2OnPciCfgThunk/PciCfg2OnPciCfgThunk.inf
Chen A Chen bc7c34afb1 EdkCompatibilityPkg: Removing ipf from edk2.
Removing rules for Ipf sources file:
* Remove the source file which path with "ipf" and also listed in
  [Sources.IPF] section of INF file.
* Remove the source file which listed in [Components.IPF] section
  of DSC file and not listed in any other [Components] section.
* Remove the embedded Ipf code for MDE_CPU_IPF.

Removing rules for Inf file:
* Remove IPF from VALID_ARCHITECTURES comments.
* Remove DXE_SAL_DRIVER from LIBRARY_CLASS in [Defines] section.
* Remove the INF which only listed in [Components.IPF] section in DSC.
* Remove statements from [BuildOptions] that provide IPF specific flags.
* Remove any IPF sepcific sections.

Removing rules for Dec file:
* Remove [Includes.IPF] section from Dec.

Removing rules for Dsc file:
* Remove IPF from SUPPORTED_ARCHITECTURES in [Defines] section of DSC.
* Remove any IPF specific sections.
* Remove statements from [BuildOptions] that provide IPF specific flags.

The following rules are specially proposed by package owner:
* Remove CommonIpf.dsc file.
* Update Common.dsc file, to remove the section with IPF key.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chen A Chen <chen.a.chen@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
2018-09-25 23:43:46 +08:00

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