Star,
> This description should be not correct as before the PPIs are also > installed after permanent memory is installed because of the > gEfiPeiMemoryDiscoveredPpiGuid depex. There is no deference of > the > publication. I'm trying to understand what you mean but am struggling. In the patch the install of the PPIs only occur if PeiServicesRegisterForShadow returns EFI_ALREADY_STARTED which means it only installs if permanent memory exists AND if the IPL PEIM is shadowed. > "S3 still need the PPIs in case platform have InstallPeiMemory() call > and compressed PEIM even at S3 path. So the code can't to do not > install > the PPIs at S3 path." > > More information to confirm the above argument is > gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnS3Boot. I see - this is not handled in the patch. So let's review some pseudocode before I submit another patch that is wrong... How about: 1. In the IPL entry point call NotifyPpi for gEfiPeiMemoryDiscoveredPpiGuid (with the EFI_PEI_PPI_DESCRIPTOR_NOTIFY_DISPATCH flag) 2. In the notify callback install the protocols The result would be: Pre-permanent memory: IPL would load and publish the IPL PPI and not decompression/extraction PPIs Post-permanent memory with no shadow: IPL PPI callback fires and additional PPIs are installed Post-permanent memory with shadow: Shadowed IPL entry point is called and the NotifyPpi callback occurs immediately (after entry point since it's a dispatch mode, not callback) For the case with shadowing does anything special need to be done to clean up the pre-shadow PEIM PPI notifications or is this inherent in the shadow process? Thanks, Eugene _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

