]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Compatibility/PciCfg2ToPciCfgThunk/PciCfg2ToPciCfgThunk.inf
Correct FeatureFlagExpress PCD format based on INF spec.
[mirror_edk2.git] / EdkCompatibilityPkg / Compatibility / PciCfg2ToPciCfgThunk / PciCfg2ToPciCfgThunk.inf
index 2a0e77ae21f6fa81c2eea346c9f2025a487c8677..ea1b5c89dcb5de486247654ac63cfa2795020d85 100644 (file)
@@ -1,9 +1,13 @@
 #/** @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. EcpPeiPciCfgPpi is installed in a framework module which\r
-# produce PciCfgPpi originally. This framework module is updated based on the \r
-# following rule:\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
 #             &gEcpPeiPciCfgPpiGuid,\r
 #             <*>\r
 #           };\r
-#           (**PeiServices).InstallPpi (PeiServices, gEcpPeiPciCfgPpiList);\r
+#           (**PeiServices).InstallPpi (PeiServices, &gEcpPeiPciCfgPpiList);\r
 #         }\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