REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4533
In Tcg driver, when MigratedFvInfo hob is detected, existing code logic is assuming FV raw data is already copied, and raw data base address is also recorded. Due to the new PeiCore change, the platform can publish hob to indicate raw data need be copied or not along with FV migration. Two cases need be considered to skip copy for boot performance: The first case is FV is not expected to be measured in post-mem phase, we should use MeasurementExcludedPpiGuid to skip measurement. The second case is FV raw data has no need to do rebase operation after migration, then measurement should calculate hash directly from FV base address. Cc: Liming Gao <gaolim...@byosoft.com.cn> Cc: Rahul Kumar <rahul1.ku...@intel.com> Cc: Jian J Wang <jian.j.w...@intel.com> Signed-off-by: Fan Wang <fan.w...@intel.com> --- SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c | 7 +++++-- SecurityPkg/Tcg/TcgPei/TcgPei.c | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c b/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c index 1caaa4e319bc..daaf49e644b2 100644 --- a/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c +++ b/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c @@ -726,8 +726,11 @@ MeasureFvImage ( // // Found the migrated FV info // - FvOrgBase = (EFI_PHYSICAL_ADDRESS)(UINTN)MigratedFvInfo->FvOrgBase; - FvDataBase = (EFI_PHYSICAL_ADDRESS)(UINTN)MigratedFvInfo->FvDataBase; + FvOrgBase = (EFI_PHYSICAL_ADDRESS)(UINTN)MigratedFvInfo->FvOrgBase; + if (MigratedFvInfo->FvDataBase != 0) { + FvDataBase = (EFI_PHYSICAL_ADDRESS)(UINTN)MigratedFvInfo->FvDataBase; + } + break; } diff --git a/SecurityPkg/Tcg/TcgPei/TcgPei.c b/SecurityPkg/Tcg/TcgPei/TcgPei.c index 5aa80511aa81..d35c2ad0bc55 100644 --- a/SecurityPkg/Tcg/TcgPei/TcgPei.c +++ b/SecurityPkg/Tcg/TcgPei/TcgPei.c @@ -463,8 +463,11 @@ MeasureFvImage ( // // Found the migrated FV info // - FvOrgBase = (EFI_PHYSICAL_ADDRESS)(UINTN)MigratedFvInfo->FvOrgBase; - FvDataBase = (EFI_PHYSICAL_ADDRESS)(UINTN)MigratedFvInfo->FvDataBase; + FvOrgBase = (EFI_PHYSICAL_ADDRESS)(UINTN)MigratedFvInfo->FvOrgBase; + if (MigratedFvInfo->FvDataBase != 0) { + FvDataBase = (EFI_PHYSICAL_ADDRESS)(UINTN)MigratedFvInfo->FvDataBase; + } + break; } -- 2.29.2.windows.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#112532): https://edk2.groups.io/g/devel/message/112532 Mute This Topic: https://groups.io/mt/103169824/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-