From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com []) by mx.groups.io with SMTP id smtpd.web10.14650.1596185716899366598 for ; Fri, 31 Jul 2020 01:55:17 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=fail (domain: intel.com, ip: , mailfrom: qi1.zhang@intel.com) IronPort-SDR: qDCbpwRq+xE9rrA3FMel3U07dsGJKyn2XfYEPFP3kTuAP+3KRh7cpKQ+NqbTP2/WAeY0alHM0C aMPpy9jzrlWQ== X-IronPort-AV: E=McAfee;i="6000,8403,9698"; a="213281393" X-IronPort-AV: E=Sophos;i="5.75,417,1589266800"; d="scan'208";a="213281393" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jul 2020 01:55:01 -0700 IronPort-SDR: Vismm0oHmGzup22telZy+8Io+rx5XosJFpA1ykxKGHFlHRHY676BiyFXw+oadiDXuoDZ2SVE3w E7FjR3Sn1Neg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,417,1589266800"; d="scan'208";a="490953582" Received: from shwdesssddpdqi.ccr.corp.intel.com ([10.239.9.10]) by fmsmga006.fm.intel.com with ESMTP; 31 Jul 2020 01:54:59 -0700 From: "Qi Zhang" To: devel@edk2.groups.io Cc: Jiewen Yao , Chasel Chiu , Nate DeSimone , Star Zeng , Qi Zhang Subject: [PATCH 7/9] IntelFsp2WraperPkg/Fsp{m|s}WrapperPeim: Add FspBin measurement. Date: Fri, 31 Jul 2020 16:54:35 +0800 Message-Id: <20200731085437.16070-8-qi1.zhang@intel.com> X-Mailer: git-send-email 2.26.2.windows.1 In-Reply-To: <20200731085437.16070-1-qi1.zhang@intel.com> References: <20200731085437.16070-1-qi1.zhang@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Jiewen Yao REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2376 Cc: Jiewen Yao Cc: Chasel Chiu Cc: Nate DeSimone Cc: Star Zeng Cc: Qi Zhang Signed-off-by: Jiewen Yao --- .../FspmWrapperPeim/FspmWrapperPeim.c | 115 +++++++++++++++++- .../FspmWrapperPeim/FspmWrapperPeim.inf | 20 ++- .../FspsWrapperPeim/FspsWrapperPeim.c | 96 ++++++++++++++- .../FspsWrapperPeim/FspsWrapperPeim.inf | 27 ++-- 4 files changed, 239 insertions(+), 19 deletions(-) diff --git a/IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.c b/IntelF= sp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.c index 265b77ed60..1533971d7f 100644 --- a/IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.c +++ b/IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.c @@ -3,7 +3,7 @@ register TemporaryRamDonePpi to call TempRamExit API, and register Memor= yDiscoveredPpi=0D notify to call FspSiliconInit API.=0D =0D - Copyright (c) 2014 - 2018, Intel Corporation. All rights reserved.
=0D + Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.
=0D SPDX-License-Identifier: BSD-2-Clause-Patent=0D =0D **/=0D @@ -25,11 +25,14 @@ #include =0D #include =0D #include =0D +#include =0D =0D #include =0D #include =0D #include =0D #include =0D +#include =0D +#include =0D #include =0D #include =0D #include =0D @@ -147,7 +150,21 @@ FspmWrapperInit ( VOID=0D )=0D {=0D - EFI_STATUS Status;=0D + EFI_STATUS Status;=0D + EFI_PEI_FIRMWARE_VOLUME_INFO_MEASUREMENT_EXCLUDED_PPI *MeasurementExclud= edFvPpi;=0D + EFI_PEI_PPI_DESCRIPTOR *MeasurementExclud= edPpiList;=0D +=0D + MeasurementExcludedFvPpi =3D AllocatePool (sizeof(*MeasurementExcludedFv= Ppi));=0D + ASSERT(MeasurementExcludedFvPpi !=3D NULL);=0D + MeasurementExcludedFvPpi->Count =3D 1;=0D + MeasurementExcludedFvPpi->Fv[0].FvBase =3D PcdGet32 (PcdFspmBaseAddress)= ;=0D + MeasurementExcludedFvPpi->Fv[0].FvLength =3D ((EFI_FIRMWARE_VOLUME_HEADE= R *) (UINTN) PcdGet32 (PcdFspmBaseAddress))->FvLength;=0D +=0D + MeasurementExcludedPpiList =3D AllocatePool (sizeof(*MeasurementExcluded= PpiList));=0D + ASSERT(MeasurementExcludedPpiList !=3D NULL);=0D + MeasurementExcludedPpiList->Flags =3D EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_P= EI_PPI_DESCRIPTOR_TERMINATE_LIST;=0D + MeasurementExcludedPpiList->Guid =3D &gEfiPeiFirmwareVolumeInfoMeasurem= entExcludedPpiGuid;=0D + MeasurementExcludedPpiList->Ppi =3D MeasurementExcludedFvPpi;=0D =0D Status =3D EFI_SUCCESS;=0D =0D @@ -155,6 +172,9 @@ FspmWrapperInit ( Status =3D PeiFspMemoryInit ();=0D ASSERT_EFI_ERROR (Status);=0D } else {=0D + Status =3D PeiServicesInstallPpi (MeasurementExcludedPpiList);=0D + ASSERT_EFI_ERROR (Status);=0D +=0D PeiServicesInstallFvInfoPpi (=0D NULL,=0D (VOID *)(UINTN) PcdGet32 (PcdFspmBaseAddress),=0D @@ -167,6 +187,92 @@ FspmWrapperInit ( return Status;=0D }=0D =0D +/**=0D + This function is called after TCG installed PPI.=0D +=0D + @param[in] PeiServices Pointer to PEI Services Table.=0D + @param[in] NotifyDesc Pointer to the descriptor for the Notification= event that=0D + caused this function to execute.=0D + @param[in] Ppi Pointer to the PPI data associated with this f= unction.=0D +=0D + @retval EFI_STATUS Always return EFI_SUCCESS=0D +**/=0D +EFI_STATUS=0D +EFIAPI=0D +TcgPpiNotify (=0D + IN EFI_PEI_SERVICES **PeiServices,=0D + IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDesc,=0D + IN VOID *Ppi=0D + );=0D +=0D +EFI_PEI_NOTIFY_DESCRIPTOR mTcgPpiNotifyDesc =3D {=0D + (EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | EFI_PEI_PPI_DESCRIPTOR_TERMINA= TE_LIST),=0D + &gEdkiiTcgPpiGuid,=0D + TcgPpiNotify=0D +};=0D +=0D +/**=0D + This function is called after TCG installed PPI.=0D +=0D + @param[in] PeiServices Pointer to PEI Services Table.=0D + @param[in] NotifyDesc Pointer to the descriptor for the Notification= event that=0D + caused this function to execute.=0D + @param[in] Ppi Pointer to the PPI data associated with this f= unction.=0D +=0D + @retval EFI_STATUS Always return EFI_SUCCESS=0D +**/=0D +EFI_STATUS=0D +EFIAPI=0D +TcgPpiNotify (=0D + IN EFI_PEI_SERVICES **PeiServices,=0D + IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDesc,=0D + IN VOID *Ppi=0D + )=0D +{=0D + UINT32 FspMeasureMask;=0D + FSP_INFO_HEADER *FspHeaderPtr;=0D +=0D + DEBUG ((DEBUG_INFO, "TcgPpiNotify FSPM\n"));=0D +=0D + FspMeasureMask =3D PcdGet32 (PcdFspMeasurementConfig);=0D + if (FspMeasureMask & FSP_MEASURE_FSP) {=0D + if (FspMeasureMask & FSP_MEASURE_FSPT) {=0D + if(FspMeasureMask & FSP_MEASURE_FSPUPD) {=0D + FspHeaderPtr =3D (FSP_INFO_HEADER *) FspFindFspHeader (PcdGet32 (P= cdFsptBaseAddress));=0D + if (FspHeaderPtr =3D=3D NULL) {=0D + return EFI_DEVICE_ERROR;=0D + }=0D + DEBUG ((DEBUG_INFO, "FSPT: CfgRegionOffset 0x%x, CfgRegionSize 0x%= x\n", FspHeaderPtr->CfgRegionOffset, FspHeaderPtr->CfgRegionSize));=0D + DEBUG ((DEBUG_INFO, "FSPT: PcdFsptBaseAddress 0x%x, ImageBase 0x%x= \n", PcdGet32(PcdFsptBaseAddress), FspHeaderPtr->ImageBase));=0D + MeasureFspFirmwareBlobWithCfg ("FSPT", PcdGet32(PcdFsptBaseAddress= ),=0D + (UINT32)((EFI_FIRMWARE_VOLUME_HEADE= R *) (UINTN) PcdGet32 (PcdFsptBaseAddress))->FvLength,=0D + FspHeaderPtr->CfgRegionOffset, FspH= eaderPtr->CfgRegionSize);=0D + } else {=0D + DEBUG ((DEBUG_ERROR, "\n QIZ: Measure FSPT\n"));=0D + MeasureFspFirmwareBlob (0, "FSPT", PcdGet32(PcdFsptBaseAddress),=0D + (UINT32)((EFI_FIRMWARE_VOLUME_HEADER *) (U= INTN) PcdGet32 (PcdFsptBaseAddress))->FvLength);=0D + }=0D + }=0D + if (FspMeasureMask & FSP_MEASURE_FSPM) {=0D + if(FspMeasureMask & FSP_MEASURE_FSPUPD) {=0D + FspHeaderPtr =3D (FSP_INFO_HEADER *) FspFindFspHeader (PcdGet32 (P= cdFspmBaseAddress));=0D + if (FspHeaderPtr =3D=3D NULL) {=0D + return EFI_DEVICE_ERROR;=0D + }=0D + MeasureFspFirmwareBlobWithCfg ("FSPM", PcdGet32(PcdFspmBaseAddress= ),=0D + (UINT32)((EFI_FIRMWARE_VOLUME_HEADE= R *) (UINTN) PcdGet32 (PcdFspmBaseAddress))->FvLength,=0D + FspHeaderPtr->CfgRegionOffset, FspH= eaderPtr->CfgRegionSize);=0D + }=0D + else {=0D + MeasureFspFirmwareBlob (0, "FSPM", PcdGet32(PcdFspmBaseAddress),=0D + (UINT32)((EFI_FIRMWARE_VOLUME_HEADER *) (U= INTN) PcdGet32 (PcdFspmBaseAddress))->FvLength);=0D + }=0D + }=0D + }=0D +=0D + return EFI_SUCCESS;=0D +}=0D +=0D /**=0D This is the entrypoint of PEIM=0D =0D @@ -182,8 +288,13 @@ FspmWrapperPeimEntryPoint ( IN CONST EFI_PEI_SERVICES **PeiServices=0D )=0D {=0D + EFI_STATUS Status;=0D +=0D DEBUG((DEBUG_INFO, "FspmWrapperPeimEntryPoint\n"));=0D =0D + Status =3D PeiServicesNotifyPpi (&mTcgPpiNotifyDesc);=0D + ASSERT_EFI_ERROR (Status);=0D +=0D FspmWrapperInit ();=0D =0D return EFI_SUCCESS;=0D diff --git a/IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.inf b/Inte= lFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.inf index dce7ef3d0b..c3578397b6 100644 --- a/IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.inf +++ b/IntelFsp2WrapperPkg/FspmWrapperPeim/FspmWrapperPeim.inf @@ -6,7 +6,7 @@ # register TemporaryRamDonePpi to call TempRamExit API, and register Memor= yDiscoveredPpi=0D # notify to call FspSiliconInit API.=0D #=0D -# Copyright (c) 2014 - 2019, Intel Corporation. All rights reserved.
= =0D +# Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.
= =0D #=0D # SPDX-License-Identifier: BSD-2-Clause-Patent=0D #=0D @@ -44,17 +44,22 @@ TimerLib=0D FspWrapperApiLib=0D FspWrapperApiTestLib=0D + FspMeasurementLib=0D =0D [Packages]=0D MdePkg/MdePkg.dec=0D + MdeModulePkg/MdeModulePkg.dec=0D UefiCpuPkg/UefiCpuPkg.dec=0D + SecurityPkg/SecurityPkg.dec=0D IntelFsp2Pkg/IntelFsp2Pkg.dec=0D IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec=0D =0D [Pcd]=0D - gIntelFsp2WrapperTokenSpaceGuid.PcdFspmBaseAddress ## CONSUMES=0D - gIntelFsp2WrapperTokenSpaceGuid.PcdFspmUpdDataAddress ## CONSUMES=0D - gIntelFsp2WrapperTokenSpaceGuid.PcdFspModeSelection ## CONSUMES=0D + gIntelFsp2WrapperTokenSpaceGuid.PcdFspmBaseAddress ## CONSUMES=0D + gIntelFsp2WrapperTokenSpaceGuid.PcdFspmUpdDataAddress ## CONSUMES=0D + gIntelFsp2WrapperTokenSpaceGuid.PcdFspModeSelection ## CONSUMES=0D + gIntelFsp2WrapperTokenSpaceGuid.PcdFsptBaseAddress ## CONSUMES=0D + gIntelFsp2WrapperTokenSpaceGuid.PcdFspMeasurementConfig ## CONSUMES=0D =0D [Sources]=0D FspmWrapperPeim.c=0D @@ -63,5 +68,10 @@ gFspHobGuid ## PRODUCES ## HOB=0D gFspApiPerformanceGuid ## SOMETIMES_CONSUMES ## GUID=0D =0D +[Ppis]=0D + gEdkiiTcgPpiGuid ## NOTIFY=0D + gEfiPeiFirmwareVolumeInfoMeasurementExcludedPpiGuid ## PRODUCES=0D +=0D [Depex]=0D - gEfiPeiMasterBootModePpiGuid=0D + gEfiPeiMasterBootModePpiGuid AND=0D + gPeiTpmInitializationDonePpiGuid=0D diff --git a/IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.c b/IntelF= sp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.c index b20f0805a0..688c82a6c8 100644 --- a/IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.c +++ b/IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.c @@ -3,7 +3,7 @@ register TemporaryRamDonePpi to call TempRamExit API, and register Memor= yDiscoveredPpi=0D notify to call FspSiliconInit API.=0D =0D - Copyright (c) 2014 - 2019, Intel Corporation. All rights reserved.
=0D + Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.
=0D SPDX-License-Identifier: BSD-2-Clause-Patent=0D =0D **/=0D @@ -24,12 +24,15 @@ #include =0D #include =0D #include =0D +#include =0D =0D #include =0D #include =0D #include =0D #include =0D #include =0D +#include =0D +#include =0D #include =0D #include =0D #include =0D @@ -379,7 +382,25 @@ FspsWrapperInitDispatchMode ( VOID=0D )=0D {=0D - EFI_STATUS Status;=0D + EFI_STATUS Status;=0D + EFI_PEI_FIRMWARE_VOLUME_INFO_MEASUREMENT_EXCLUDED_PPI *MeasurementExclud= edFvPpi;=0D + EFI_PEI_PPI_DESCRIPTOR *MeasurementExclud= edPpiList;=0D +=0D + MeasurementExcludedFvPpi =3D AllocatePool (sizeof(*MeasurementExcludedFv= Ppi));=0D + ASSERT(MeasurementExcludedFvPpi !=3D NULL);=0D + MeasurementExcludedFvPpi->Count =3D 1;=0D + MeasurementExcludedFvPpi->Fv[0].FvBase =3D PcdGet32 (PcdFspsBaseAddress)= ;=0D + MeasurementExcludedFvPpi->Fv[0].FvLength =3D ((EFI_FIRMWARE_VOLUME_HEADE= R *) (UINTN) PcdGet32 (PcdFspsBaseAddress))->FvLength;=0D +=0D + MeasurementExcludedPpiList =3D AllocatePool (sizeof(*MeasurementExcluded= PpiList));=0D + ASSERT(MeasurementExcludedPpiList !=3D NULL);=0D + MeasurementExcludedPpiList->Flags =3D EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_P= EI_PPI_DESCRIPTOR_TERMINATE_LIST;=0D + MeasurementExcludedPpiList->Guid =3D &gEfiPeiFirmwareVolumeInfoMeasurem= entExcludedPpiGuid;=0D + MeasurementExcludedPpiList->Ppi =3D MeasurementExcludedFvPpi;=0D +=0D + Status =3D PeiServicesInstallPpi (MeasurementExcludedPpiList);=0D + ASSERT_EFI_ERROR (Status);=0D +=0D //=0D // FSP-S Wrapper running in Dispatch mode and reports FSP-S FV to PEI di= spatcher.=0D //=0D @@ -398,6 +419,72 @@ FspsWrapperInitDispatchMode ( return Status;=0D }=0D =0D +/**=0D + This function is called after TCG installed PPI.=0D +=0D + @param[in] PeiServices Pointer to PEI Services Table.=0D + @param[in] NotifyDesc Pointer to the descriptor for the Notification= event that=0D + caused this function to execute.=0D + @param[in] Ppi Pointer to the PPI data associated with this f= unction.=0D +=0D + @retval EFI_STATUS Always return EFI_SUCCESS=0D +**/=0D +EFI_STATUS=0D +EFIAPI=0D +TcgPpiNotify (=0D + IN EFI_PEI_SERVICES **PeiServices,=0D + IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDesc,=0D + IN VOID *Ppi=0D + );=0D +=0D +EFI_PEI_NOTIFY_DESCRIPTOR mTcgPpiNotifyDesc =3D {=0D + (EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | EFI_PEI_PPI_DESCRIPTOR_TERMINA= TE_LIST),=0D + &gEdkiiTcgPpiGuid,=0D + TcgPpiNotify=0D +};=0D +=0D +/**=0D + This function is called after TCG installed PPI.=0D +=0D + @param[in] PeiServices Pointer to PEI Services Table.=0D + @param[in] NotifyDesc Pointer to the descriptor for the Notification= event that=0D + caused this function to execute.=0D + @param[in] Ppi Pointer to the PPI data associated with this f= unction.=0D +=0D + @retval EFI_STATUS Always return EFI_SUCCESS=0D +**/=0D +EFI_STATUS=0D +EFIAPI=0D +TcgPpiNotify (=0D + IN EFI_PEI_SERVICES **PeiServices,=0D + IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDesc,=0D + IN VOID *Ppi=0D + )=0D +{=0D + UINT32 FspMeasureMask;=0D + FSP_INFO_HEADER *FspHeaderPtr;=0D +=0D + DEBUG ((DEBUG_INFO, "TcgPpiNotify FSPS\n"));=0D +=0D + FspMeasureMask =3D PcdGet32 (PcdFspMeasurementConfig);=0D + if ((FspMeasureMask & FSP_MEASURE_FSP) && (FspMeasureMask & FSP_MEASURE_= FSPS)) {=0D + if(FspMeasureMask & FSP_MEASURE_FSPUPD) {=0D + FspHeaderPtr =3D (FSP_INFO_HEADER *) FspFindFspHeader (PcdGet32 (Pcd= FspsBaseAddress));=0D + if (FspHeaderPtr =3D=3D NULL) {=0D + return EFI_DEVICE_ERROR;=0D + }=0D + MeasureFspFirmwareBlobWithCfg ("FSPS", PcdGet32(PcdFspsBaseAddress),= =0D + (UINT32)((EFI_FIRMWARE_VOLUME_HEADER = *) (UINTN) PcdGet32 (PcdFspsBaseAddress))->FvLength,=0D + FspHeaderPtr->CfgRegionOffset, FspHea= derPtr->CfgRegionSize);=0D + } else {=0D + MeasureFspFirmwareBlob (0, "FSPS", PcdGet32(PcdFspsBaseAddress),=0D + (UINT32)((EFI_FIRMWARE_VOLUME_HEADER *) (UIN= TN) PcdGet32 (PcdFspsBaseAddress))->FvLength);=0D + }=0D + }=0D +=0D + return EFI_SUCCESS;=0D +}=0D +=0D /**=0D This is the entrypoint of PEIM.=0D =0D @@ -413,8 +500,13 @@ FspsWrapperPeimEntryPoint ( IN CONST EFI_PEI_SERVICES **PeiServices=0D )=0D {=0D + EFI_STATUS Status;=0D +=0D DEBUG ((DEBUG_INFO, "FspsWrapperPeimEntryPoint\n"));=0D =0D + Status =3D PeiServicesNotifyPpi (&mTcgPpiNotifyDesc);=0D + ASSERT_EFI_ERROR (Status);=0D +=0D if (PcdGet8 (PcdFspModeSelection) =3D=3D 1) {=0D FspsWrapperInitApiMode ();=0D } else {=0D diff --git a/IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.inf b/Inte= lFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.inf index 7da92991c8..884514747f 100644 --- a/IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.inf +++ b/IntelFsp2WrapperPkg/FspsWrapperPeim/FspsWrapperPeim.inf @@ -6,7 +6,7 @@ # register TemporaryRamDonePpi to call TempRamExit API, and register Memor= yDiscoveredPpi=0D # notify to call FspSiliconInit API.=0D #=0D -# Copyright (c) 2014 - 2019, Intel Corporation. All rights reserved.
= =0D +# Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.
= =0D #=0D # SPDX-License-Identifier: BSD-2-Clause-Patent=0D #=0D @@ -44,24 +44,30 @@ PerformanceLib=0D FspWrapperApiLib=0D FspWrapperApiTestLib=0D + FspMeasurementLib=0D =0D [Packages]=0D MdePkg/MdePkg.dec=0D + MdeModulePkg/MdeModulePkg.dec=0D UefiCpuPkg/UefiCpuPkg.dec=0D + SecurityPkg/SecurityPkg.dec=0D IntelFsp2Pkg/IntelFsp2Pkg.dec=0D IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dec=0D =0D [Ppis]=0D - gTopOfTemporaryRamPpiGuid ## PRODUCES=0D - gFspSiliconInitDonePpiGuid ## PRODUCES=0D - gEfiEndOfPeiSignalPpiGuid ## PRODUCES=0D - gEfiTemporaryRamDonePpiGuid ## PRODUCES=0D - gEfiPeiMemoryDiscoveredPpiGuid ## NOTIFY=0D + gTopOfTemporaryRamPpiGuid ## PRODUCES=0D + gFspSiliconInitDonePpiGuid ## PRODUCES=0D + gEfiEndOfPeiSignalPpiGuid ## PRODUCES=0D + gEfiTemporaryRamDonePpiGuid ## PRODUCES=0D + gEfiPeiMemoryDiscoveredPpiGuid ## NOTIFY=0D + gEdkiiTcgPpiGuid ## NOTIFY=0D + gEfiPeiFirmwareVolumeInfoMeasurementExcludedPpiGuid ## PRODUCES=0D =0D [Pcd]=0D - gIntelFsp2WrapperTokenSpaceGuid.PcdFspsBaseAddress ## CONSUMES=0D - gIntelFsp2WrapperTokenSpaceGuid.PcdFspsUpdDataAddress ## CONSUMES=0D - gIntelFsp2WrapperTokenSpaceGuid.PcdFspModeSelection ## CONSUMES=0D + gIntelFsp2WrapperTokenSpaceGuid.PcdFspsBaseAddress ## CONSUMES=0D + gIntelFsp2WrapperTokenSpaceGuid.PcdFspsUpdDataAddress ## CONSUMES=0D + gIntelFsp2WrapperTokenSpaceGuid.PcdFspModeSelection ## CONSUMES=0D + gIntelFsp2WrapperTokenSpaceGuid.PcdFspMeasurementConfig ## CONSUMES=0D =0D [Guids]=0D gFspHobGuid ## CONSUMES ## HOB=0D @@ -71,4 +77,5 @@ FspsWrapperPeim.c=0D =0D [Depex]=0D - gEfiPeiMemoryDiscoveredPpiGuid=0D + gEfiPeiMemoryDiscoveredPpiGuid AND=0D + gPeiTpmInitializationDonePpiGuid=0D --=20 2.26.2.windows.1