Update the comments.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5261 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qwang12 2008-05-21 07:24:14 +00:00
parent 1e55f6a46b
commit 0004d1401e
2 changed files with 86 additions and 20 deletions

View File

@ -1,20 +1,54 @@
/** @file /** @file
Module produces PciCfgPpi2 on top of PciCfgPpi. It also updates the Module produces PciCfgPpi2 on top of PciCfgPpi. It also updates the
PciCfg2Ppi pointer in the EFI_PEI_SERVICES upon a installation of PciCfg2Ppi pointer in the EFI_PEI_SERVICES upon a installation of
EcpPeiPciCfgPpi. EcpPeiPciCfgPpi is installed in a framework module which EcpPeiPciCfgPpi.
produce PciCfgPpi originally. This framework module is updated based on the
following rule: EcpPeiPciCfgPpi is installed by a framework module which
Search pattern: produce PciCfgPpi originally. Such framework module is updated based on the
PeiServices->PciCfg = <*>; following rule to install EcpPeiPciCfgPpi instead of updating the PciCfg pointer
Replace pattern: in the Framework PeiServicesTable:
{
static EFI_PEI_PPI_DESCRIPTOR gEcpPeiPciCfgPpiList = { Search pattern:
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST), PeiServices->PciCfg = <*>;
&gEcpPeiPciCfgPpiGuid, Replace pattern:
<*> {
}; static EFI_PEI_PPI_DESCRIPTOR gEcpPeiPciCfgPpiList = {
(**PeiServices).InstallPpi (PeiServices, 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. 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_CFG_PPI defined in Inte's EFI Specification 1.10 is replaced by

View File

@ -1,9 +1,13 @@
#/** @file #/** @file
# Module produces PciCfgPpi2 on top of PciCfgPpi. It also updates the # Module produces PciCfgPpi2 on top of PciCfgPpi. It also updates the
# PciCfg2Ppi pointer in the EFI_PEI_SERVICES upon a installation of # PciCfg2Ppi pointer in the EFI_PEI_SERVICES upon a installation of
# EcpPeiPciCfgPpi. EcpPeiPciCfgPpi is installed in a framework module which # EcpPeiPciCfgPpi.
# produce PciCfgPpi originally. This framework module is updated based on the #
# following rule: # 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: # Search pattern:
# PeiServices->PciCfg = <*>; # PeiServices->PciCfg = <*>;
# Replace pattern: # Replace pattern:
@ -15,7 +19,35 @@
# }; # };
# (**PeiServices).InstallPpi (PeiServices, gEcpPeiPciCfgPpiList); # (**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. # 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_CFG_PPI defined in Inte's EFI Specification 1.10 is replaced by
# EFI_PEI_PCI_CFG2_PPI in PI 1.0. # EFI_PEI_PCI_CFG2_PPI in PI 1.0.