Michael, Let me check whether our internal code has added the S3 check before calling PeiInstallSmmAccessPpi(). Once that is done, I will merge this patch.
Thanks, Ray > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Michael Kubacki > Sent: Thursday, September 9, 2021 10:10 PM > To: devel@edk2.groups.io; Ni, Ray <ray...@intel.com>; Yao, Jiewen > <jiewen....@intel.com>; Chaganty, Rangasai V > <rangasai.v.chaga...@intel.com> > Subject: Re: [edk2-devel] [edk2-platforms][PATCH v1 1/1] > IntelSiliconPkg/PeiSmmAccessLib: Remove S3 requirement > > Ray, > > When do you think this patch will get merged? > > Thanks, > Michael > > On 8/20/2021 4:11 AM, Ni, Ray wrote: > > Michael, > > I am ok with the change that removes S3 check. I also confirmed that > > Jiewen's concern about inconsistent SMRAM state > doesn't exist. > > > > Reviewed-by: Ray Ni <ray...@intel.com> > > > > I agree with you that converting this lib to a PEIM is better. > > > > Thanks, > > Ray > > > >> -----Original Message----- > >> From: Michael Kubacki <mikub...@linux.microsoft.com> > >> Sent: Friday, August 20, 2021 3:45 AM > >> To: devel@edk2.groups.io; Yao, Jiewen <jiewen....@intel.com>; Ni, Ray > >> <ray...@intel.com>; Chaganty, Rangasai V > >> <rangasai.v.chaga...@intel.com> > >> Subject: Re: [edk2-devel] [edk2-platforms][PATCH v1 1/1] > >> IntelSiliconPkg/PeiSmmAccessLib: Remove S3 requirement > >> > >> Ray, > >> > >> In the end, PI modules are allowed to depend on non-deprecated PI PPIs. > >> The scope of this change is about the API that installs the PPI. So I do > >> not want to diverge the conversation about changing other code to avoid > >> the PPI. > >> > >> I've already been waiting since April to get other IntelSiliconPkg > >> changes merged (https://edk2.groups.io/g/devel/message/78600) and I > >> would like to keep this conversation focused on the patch. > >> > >> This conversation has taken several tangents as I tried to clear up in > >> this message: https://edk2.groups.io/g/devel/message/79544. I did not > >> see a response, please read that if you have not. > >> > >> The maintainability issues of the code have become evident. The code is > >> coupling unnecessary assumptions and dependencies and that is increasing > >> the difficulty of understanding and modifying the code. > >> > >> The goal of this change was for the PeiInstallSmmAccessPpi() function to > >> simply install the PPI without the boot mode being BOOT_ON_S3_RESUME > >> which it already documents should be the case. > >> > >> Because the existing code attempted to couple platform design > >> assumptions into a generic silicon package, we had to talk about: > >> > >> - Historical platform S3 requirements > >> - Interface documentation that is inaccurate > >> - Clarification around security ambiguity and implications to modifying > >> the implementation > >> - General dependencies for Standalone MM > >> - Potential synchronization issues between the PI Spec defined > >> interfaces EFI_SMARAM_HOB_DESCRIPTOR_BLOCK and EFI_PEI_MM_ACCESS_PPI > >> - The role of MM Access PPI in other architecture boot flows > >> > >> In the process, some of these topics did yield issues for follow up: > >> > >> 1. The documentation interface should accurately reflect actual behavior. > >> 2. The potential synchronization issue should be better understood and > >> resolved. Note that this issue is not specific to non-S3 flows. PEIMs on > >> S3 flows could easily read the HOB. > >> > >> BZ for 1: https://bugzilla.tianocore.org/show_bug.cgi?id=3575 > >> BZ for 2: https://bugzilla.tianocore.org/show_bug.cgi?id=3576 > >> > >> It also seems the library would be better as a PEIM but that's another > >> topic. > >> > >> Thanks, > >> Michael > >> > >> On 8/19/2021 10:27 AM, Yao, Jiewen wrote: > >>> Do you want to open/close/lock SMRAM? If yes, then you need PPI. > >>> If no, then you don’t need PPI. Hob should be enough to provide such info. > >>> > >>> Thank you > >>> Yao Jiewen > >>> > >>>> -----Original Message----- > >>>> From: Ni, Ray <ray...@intel.com> > >>>> Sent: Thursday, August 19, 2021 6:02 PM > >>>> To: Yao, Jiewen <jiewen....@intel.com>; Michael Kubacki > >>>> <michael.kuba...@outlook.com>; devel@edk2.groups.io; > >>>> mikub...@linux.microsoft.com; Chaganty, Rangasai V > >>>> <rangasai.v.chaga...@intel.com> > >>>> Subject: RE: [edk2-devel] [edk2-platforms][PATCH v1 1/1] > >>>> IntelSiliconPkg/PeiSmmAccessLib: Remove S3 requirement > >>>> > >>>> Jiewen, > >>>> We have MmAccess PPI and gEfiMmPeiSmramMemoryReserveGuid HOB. > >>>> > >>>> If Standalone IPL can get the SMRAM range from the HOB, what's the > >>>> purpose > >>>> of MmAccess PPI? > >>>> > >>>> X86 silicon doesn't rely on MmAccess.Close/Lock to close SMRAM anymore. > >>>> Does ARM need? > >>>> > >>>> Michael, > >>>> Have you considered to remove the dep on MmAccess PPI from standalone MM? > >>>> > >>>> Thanks, > >>>> Ray > >>>> > >>>> -----Original Message----- > >>>> From: Yao, Jiewen <jiewen....@intel.com> > >>>> Sent: Thursday, August 19, 2021 10:02 AM > >>>> To: Michael Kubacki <michael.kuba...@outlook.com>; devel@edk2.groups.io; > >>>> Ni, Ray <ray...@intel.com>; mikub...@linux.microsoft.com; Chaganty, > >>>> Rangasai V <rangasai.v.chaga...@intel.com> > >>>> Subject: RE: [edk2-devel] [edk2-platforms][PATCH v1 1/1] > >>>> IntelSiliconPkg/PeiSmmAccessLib: Remove S3 requirement > >>>> > >>>> The history was that we didn’t need MmAccessPei without S3. > >>>> MmAccessPei was added for S3 resume purpose only. > >>>> > >>>> Today, if there is real use case to rely on MmAccessPei in normal boot > >>>> path. > >>>> Then we can add it. > >>>> > >>>> I could see the potential impact is: If MmAccessPei changes the SMRAM > >>>> attribute in normal boot path, it MUST be reflected in the SmramHob. > >>>> Otherwise, > >>>> there is inconsistency issue in PEI/DXE, when DXE consumes the SmramHob. > >>>> This is NOT required in S3, because we don’t run DXE in S3 path. > >>>> > >>>> Thank you > >>>> Yao Jiewen > >>>> > >>>>> -----Original Message----- > >>>>> From: Michael Kubacki <michael.kuba...@outlook.com> > >>>>> Sent: Thursday, August 19, 2021 2:47 AM > >>>>> To: devel@edk2.groups.io; Ni, Ray <ray...@intel.com>; > >>>>> mikub...@linux.microsoft.com; Chaganty, Rangasai V > >>>>> <rangasai.v.chaga...@intel.com>; Yao, Jiewen <jiewen....@intel.com> > >>>>> Subject: Re: [edk2-devel] [edk2-platforms][PATCH v1 1/1] > >>>>> IntelSiliconPkg/PeiSmmAccessLib: Remove S3 requirement > >>>>> > >>>>> Jiewen/Sai, are you thinking about this? > >>>>> > >>>>> Thanks, > >>>>> Michael > >>>>> > >>>>> On 8/12/2021 1:20 AM, Ni, Ray wrote: > >>>>>> Michael, > >>>>>> I need Jiewen's input on why MmAccess and MmCommunication PPIs were > >>>>>> not > >>>>> installed in normal boot path. Without understanding the reason, I > >>>>> don't have confidence to approve the change. > >>>>>> > >>>>>> Sai, > >>>>>> Do you see other impacts to Intel platforms with this behavior change? > >>>>>> > >>>>>> Thanks, > >>>>>> Ray > >>>>>> > >>>>>> -----Original Message----- > >>>>>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of > >>>>>> Michael > >>>>> Kubacki > >>>>>> Sent: Tuesday, August 10, 2021 11:36 PM > >>>>>> To: devel@edk2.groups.io; Ni, Ray <ray...@intel.com>; Chaganty, > >>>>>> Rangasai V > >>>>> <rangasai.v.chaga...@intel.com> > >>>>>> Cc: Yao, Jiewen <jiewen....@intel.com> > >>>>>> Subject: Re: [edk2-devel] [edk2-platforms][PATCH v1 1/1] > >>>>> IntelSiliconPkg/PeiSmmAccessLib: Remove S3 requirement > >>>>>> > >>>>>> Installation is a platform decision. The buried dependency on boot > >>>>>> mode in this > >>>>> particular function is just a roadblock platforms have to work around. > >>>>> The role of this API is to install the PPI. > >>>>>> > >>>>>> Thanks, > >>>>>> Michael > >>>>>> > >>>>>> On 8/9/2021 9:47 PM, Ni, Ray wrote: > >>>>>>> Michael, > >>>>>>> Allowing the gPeiSmmAccessPpiGuid PPI installation in normal boot > >>>>>>> will further allow gEfiPeiSmmCommunicationPpiGuid installation in > >>>>>>> normal path, > >>>>> while without your change neither of the PPIs is installed in normal > >>>>> boot. > >>>>>>> > >>>>>>> + Jiewen for potential security concern. > >>>>>>> > >>>>>>> Thanks, > >>>>>>> Ray > >>>>>>> > >>>>>>>> -----Original Message----- > >>>>>>>> From: Chaganty, Rangasai V <rangasai.v.chaga...@intel.com> > >>>>>>>> Sent: Tuesday, August 10, 2021 6:46 AM > >>>>>>>> To: mikub...@linux.microsoft.com; devel@edk2.groups.io > >>>>>>>> Cc: Ni, Ray <ray...@intel.com> > >>>>>>>> Subject: RE: [edk2-platforms][PATCH v1 1/1] > >>>>>>>> IntelSiliconPkg/PeiSmmAccessLib: Remove S3 requirement > >>>>>>>> > >>>>>>>> Reviewed-by: Sai Chaganty <rangasai.v.chaga...@intel.com> > >>>>>>>> > >>>>>>>> -----Original Message----- > >>>>>>>> From: mikub...@linux.microsoft.com <mikub...@linux.microsoft.com> > >>>>>>>> Sent: Monday, August 09, 2021 6:40 AM > >>>>>>>> To: devel@edk2.groups.io > >>>>>>>> Cc: Ni, Ray <ray...@intel.com>; Chaganty, Rangasai V > >>>>>>>> <rangasai.v.chaga...@intel.com> > >>>>>>>> Subject: [edk2-platforms][PATCH v1 1/1] > >>>>>>>> IntelSiliconPkg/PeiSmmAccessLib: Remove S3 requirement > >>>>>>>> > >>>>>>>> From: Michael Kubacki <michael.kuba...@microsoft.com> > >>>>>>>> > >>>>>>>> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3539 > >>>>>>>> > >>>>>>>> PeiInstallSmmAccessPpi() currently requires the boot mode be set > >>>>>>>> to S3 to > >>>>> actually install gEfiPeiMmAccessPpiGuid. > >>>>>>>> > >>>>>>>> This change removes this requirement in the function > >>>>>>>> implementation for > >>>>> two reasons: > >>>>>>>> > >>>>>>>> 1. Practical use cases exist to require this PPI in cases other than > >>>>>>>> the boot mode being set to BOOT_ON_S3_RESUME. > >>>>>>>> > >>>>>>>> 2. It is poor API design to implicitly bury this requirement within > >>>>>>>> a function whose responsibility is to install the PPI. The > >>>>>>>> caller > >>>>>>>> can easily place arbitrary constraints around whether to call > >>>>>>>> based on conditions such as the boot mode being > >>>>>>>> BOOT_ON_S3_RESUME. > >>>>>>>> > >>>>>>>> Cc: Ray Ni <ray...@intel.com> > >>>>>>>> Cc: Rangasai V Chaganty <rangasai.v.chaga...@intel.com> > >>>>>>>> Signed-off-by: Michael Kubacki <michael.kuba...@microsoft.com> > >>>>>>>> --- > >>>>>>>> > >>>>> Silicon/Intel/IntelSiliconPkg/Feature/SmmAccess/Library/PeiSmmAccessLi > >>>>> b/PeiS > >>>>> mmAccessLib.c | 12 ------------ > >>>>>>>> 1 file changed, 12 deletions(-) > >>>>>>>> > >>>>>>>> diff --git > >>>>>>>> a/Silicon/Intel/IntelSiliconPkg/Feature/SmmAccess/Library/PeiSmmAc > >>>>>>>> ces > >>>>>>>> sLib/PeiSmmAccessLib.c > >>>>>>>> b/Silicon/Intel/IntelSiliconPkg/Feature/SmmAccess/Library/PeiSmmAc > >>>>>>>> ces sLib/PeiSmmAccessLib.c index d9bf4fba983e..4df0d695fdaf 100644 > >>>>>>>> --- > >>>>>>>> a/Silicon/Intel/IntelSiliconPkg/Feature/SmmAccess/Library/PeiSmmAc > >>>>>>>> ces > >>>>>>>> sLib/PeiSmmAccessLib.c > >>>>>>>> +++ b/Silicon/Intel/IntelSiliconPkg/Feature/SmmAccess/Library/PeiS > >>>>>>>> +++ mmA > >>>>>>>> +++ cce > >>>>>>>> +++ ssLib/PeiSmmAccessLib.c > >>>>>>>> @@ -252,19 +252,7 @@ PeiInstallSmmAccessPpi ( > >>>>>>>> EFI_SMRAM_HOB_DESCRIPTOR_BLOCK *DescriptorBlock; > >>>>>>>> SMM_ACCESS_PRIVATE_DATA *SmmAccessPrivate; > >>>>>>>> VOID *HobList; > >>>>>>>> - EFI_BOOT_MODE BootMode; > >>>>>>>> > >>>>>>>> - Status = PeiServicesGetBootMode (&BootMode); > >>>>>>>> - if (EFI_ERROR (Status)) { > >>>>>>>> - // > >>>>>>>> - // If not in S3 boot path. do nothing > >>>>>>>> - // > >>>>>>>> - return EFI_SUCCESS; > >>>>>>>> - } > >>>>>>>> - > >>>>>>>> - if (BootMode != BOOT_ON_S3_RESUME) { > >>>>>>>> - return EFI_SUCCESS; > >>>>>>>> - } > >>>>>>>> // > >>>>>>>> // Initialize private data > >>>>>>>> // > >>>>>>>> -- > >>>>>>>> 2.28.0.windows.1 > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>> > >>> > >>> > >>> > >>> > > > > > > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#80441): https://edk2.groups.io/g/devel/message/80441 Mute This Topic: https://groups.io/mt/84768258/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-