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

Reply via email to