+ Class_Library: Remove PeCoffLoader library class and its instances.\r
+\r
+ Code Change :\r
+ 1) Remove MdeModulePkg/Include/Library/PeCoffLoaderLib.h\r
+ 2) Remove MdeModulePkg/Library/DxePeCoffLoaderFromHobLib and PeiDxePeCoffLoaderLib instance\r
+ 3) Modify PeiCore, DxeIpl and DxeCore to use PeCoffLib in place of PeCoffLoaderLib.\r
+\r
+ Possible Impacts:\r
+ 1) All modules don't use PeCoffloader library class any longer to load PeImage. \r
+ If necessary, they should use PeCoffLib of MdePkg to load PeImage.\r
+\r
+==========================================================================================\r
+EDK_3931: Non-Compatible: klu2\r
+ \r
+ Class_PIEnable[5]: New library class for S3Resume and Recovery for DxeIpl PEIM.\r
+ \r
+ Code Change:\r
+ 1) Add new library class \r
+ a) MdeModulePkg/Include/Library/S3Lib.h\r
+ b) MdeModulePkg/Include/Library/RecoveryLib.h\r
+ 2) Add NULL library instances for MdeModulePkg:\r
+ a) MdeModulePkg/Library/PeiS3LibNull/PeiS3LibNull.inf.\r
+ b) MdeModulePkg/Library/PeiRecoveryLibNull/PeiRecoveryLibNull.inf\r
+ 3) Add framework implement library instances:\r
+ a) IntelFrameworkModulePkg/Library/PeiS3Lib/PeiS3Lib.inf\r
+ b) IntelFrameworkModulePkg/Library/PeiRecovery/PeiRecovery.inf\r
+ \r
+ Possible Impacts:\r
+ 1) In DSC file, real platform should select:\r
+ S3Lib library class -> IntelFrameworkModulePkg/Library/PeiS3Lib/PeiS3Lib.inf\r
+ RecoveryLib library class -> IntelFrameworkModulePkg/Library/PeiRecovery/PeiRecovery.inf\r
+ \r
+ Nt32 platform should select:\r
+ S3Lib library class -> MdeModulePkg/Library/PeiS3LibNull/PeiS3LibNull.inf.\r
+ RecoveryLib library class -> MdeModulePkg/Library/PeiRecoveryLibNull/PeiRecoveryLibNull.inf\r
+ \r
+==========================================================================================\r
+EDK_3922: Non-Compatible: qwang12, klu2\r
+ Class_PIEnable[2]: Update PEI core to only consume EFI_PEI_FIRMWARE_VOLUME_INFO_PPI\r
+\r
+ Code Change :\r
+ 1) Update PEI core to consume EFI_PEI_FIRMWARE_VOLUME_INFO_PPI to get the location of new FVs other than BFV\r
+ reported by PEIMs . \r
+\r
+ Possible Impacts:\r
+ 1) Platform code that is going to inform PEI core about the new FVs other than BFV should install \r
+ EFI_PEI_FIRMWARE_VOLUME_INFO_PPI. A library function named PeiPiLibBuildPiFvInfoPpi() defined in \r
+ MdePkg\Include\Library\PeiPiLib.h can be used to install the PPI. \r
+ There are two notes worth mentioning:\r
+ 1) Platform PEIMs should report at least FVs containing DXE_CORE and all other PEIM to PEI Core if they\r
+ are not in the BFV. \r
+ 2) PEI core will dispatch PEIMs in the FV reported by PeiPiLibBuildPiFvInfoPpi() and invoke BuildFvHob () to build the \r
+ FV HOB for this FV (see Section 4.8.1.2 of Vol 1 named Multiple Firmware Volume Support for details). \r
+ If PEIM only want to inform DXE core about the existance of the new FV, it should call BuildFvHob instead.\r
+ \r
+ \r
+ Class_PIEnable[3]: Update PEI core to support RegisterForShadow feature introduced by PI spec\r
+\r
+ Code Change :\r
+ 1) DXEIPL no longer produce EFI_PEI_FV_FILE_LOADER_PPI defined in Framework PEI CIS.\r
+\r
+ Possible Impacts:\r
+\r
+ 1)All PEIMs that need to shadow itself into memory and rerun the entry point should be updated to call RegisterForShadow\r
+ (PeiServicesLibRegisterForShadow () is a helper function).\r
+ 2)The depex of PEIMs that including EFI_PEI_FV_FILE_LOADER_PPI (or gEfiPeiFvFileLoaderPpiGuid) should be removed.\r
+ \r
+\r
+ Class_PIEnable[4]: Update PEI core to produce other new features defined in PI spec\r
+\r
+ Code Change :\r
+ 1) Add the following services: FfsGetFileInfo, FfsFindFileByName and FfsGetVolumeInfo\r
+\r
+ Possible Impacts:\r
+\r
+ 1) Platform code is recommended to make use of these new PI features. The functions in MdePkg/Include/Library/PeiServicesLib.h are \r
+ recommended as PeiServices is saved for every PEI Services API invokation.\r
+\r
+==========================================================================================\r
+EDK_3871: Non-Compatible: klu2\r
+ \r
+ Class_PIEnable[1]: Use new entry point for PeiCore defined in PI specification.\r
+ \r
+ Code Change:\r
+ 1) PeiMain module use PeiCoreEntryPoint library class but *not* original OldPeiCoreEntryPoint.\r
+ 2) The memory service in PeiMain module get temporary memory base and size from parameter of PeiCore's\r
+ Entry point directly but *not* computed from stack's base.\r
+ \r
+ Possible Impacts:\r
+ 1) Platform should select MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf for \r
+ PeiMain module.\r
+ 2) The SecCore module should provide parameters for new entry point defined in \r
+ MdePkg\Include\Library\PeiCoreEntryPoint.h\r
+ \r
+==========================================================================================\r
+EDK_3866: Compatible: qhuang8\r
+\r
+ Class_UefiEnable[0]: Uefi2.1 feature - Add Hardware Error Record Persistence Support \r
+ Code Change :\r
+ 1) Modify MdeModulePkg/Universal/Variable/RuntimeDxe\r
+ 2) Modify MdeModulePkg/Universal/Variable/EmuRuntimeDxe\r