Jiewen: Actually I tried item 2 in PEI & produce hob for DXE to consume. But basing on my test No TPM we have can support such feature defined in PTP00.47. PCR[0] after Startup(CLEAR) always shows zero. I will choose option 1 first.
From: Yao, Jiewen Sent: Monday, January 23, 2017 11:25 PM To: Zhang, Chao B <chao.b.zh...@intel.com>; edk2-devel@lists.01.org Cc: Zhang, Chao B <chao.b.zh...@intel.com>; Zeng, Star <star.z...@intel.com> Subject: RE: [edk2] [PATCH 1/2] SecurityPkg: Tcg2Dxe: Log Startup Locality Event Hi StartupLocality is a platform policy. We should not hardcode it. We may use one of below ways: 1) Define a new PCD. 2) Detect if there is an startuplocality event hob reported in PEI phase. Thank you Yao Jiewen > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Zhang, > Chao B > Sent: Monday, January 23, 2017 4:52 PM > To: edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org> > Cc: Yao, Jiewen <jiewen....@intel.com<mailto:jiewen....@intel.com>>; Zhang, > Chao B > <chao.b.zh...@intel.com<mailto:chao.b.zh...@intel.com>>; Zeng, Star > <star.z...@intel.com<mailto:star.z...@intel.com>> > Subject: [edk2] [PATCH 1/2] SecurityPkg: Tcg2Dxe: Log Startup Locality Event > > Log Startup Locality Event according to TCG PC Client PFP 00.21. > Event should be placed before any extend to PCR[0] > http://www.trustedcomputinggroup.org/wp-content/uploads/PC-ClientSpecific > _Platform_Profile_for_TPM_2p0_Systems_v21.pdf > > Cc: Star Zeng <star.z...@intel.com<mailto:star.z...@intel.com>> > Cc: Yao Jiewen <jiewen....@intel.com<mailto:jiewen....@intel.com>> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Chao Zhang > <chao.b.zh...@intel.com<mailto:chao.b.zh...@intel.com>> > --- > SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c | 48 > ++++++++++++++++++++++++++++++--------- > 1 file changed, 37 insertions(+), 11 deletions(-) > > diff --git a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c > b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c > index 3534fd1..2658944 100644 > --- a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c > +++ b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c > @@ -1381,11 +1381,12 @@ SetupEventLog ( > UINT32 HashAlgorithmMaskCopied; > TCG_EfiSpecIDEventStruct *TcgEfiSpecIdEventStruct; > UINT8 > TempBuf[sizeof(TCG_EfiSpecIDEventStruct) + sizeof(UINT32) + (HASH_COUNT * > sizeof(TCG_EfiSpecIdEventAlgorithmSize)) + sizeof(UINT8)]; > - TCG_PCR_EVENT_HDR FirstPcrEvent; > + TCG_PCR_EVENT_HDR NoActionEvent; > TCG_EfiSpecIdEventAlgorithmSize *DigestSize; > TCG_EfiSpecIdEventAlgorithmSize *TempDigestSize; > UINT8 *VendorInfoSize; > UINT32 NumberOfAlgorithms; > + TCG_EfiStartupLocalityEvent StartupLocalityEvent; > > DEBUG ((EFI_D_INFO, "SetupEventLog\n")); > > @@ -1468,24 +1469,49 @@ SetupEventLog ( > VendorInfoSize = (UINT8 *)TempDigestSize; > *VendorInfoSize = 0; > > + NoActionEvent.PCRIndex = 0; > + NoActionEvent.EventType = EV_NO_ACTION; > + ZeroMem (&NoActionEvent.Digest, sizeof(NoActionEvent.Digest)); > + NoActionEvent.EventSize = (UINT32)GetTcgEfiSpecIdEventStructSize > (TcgEfiSpecIdEventStruct); > + > // > - // FirstPcrEvent > + // Log TcgEfiSpecIdEventStruct as the first Event > + // TCG PC Client PFP spec. Section 9.2 Measurement Event Entries > and Log > // > - FirstPcrEvent.PCRIndex = 0; > - FirstPcrEvent.EventType = EV_NO_ACTION; > - ZeroMem (&FirstPcrEvent.Digest, sizeof(FirstPcrEvent.Digest)); > - FirstPcrEvent.EventSize = (UINT32)GetTcgEfiSpecIdEventStructSize > (TcgEfiSpecIdEventStruct); > + Status = TcgDxeLogEvent ( > + mTcg2EventInfo[Index].LogFormat, > + &NoActionEvent, > + sizeof(NoActionEvent), > + (UINT8 *)TcgEfiSpecIdEventStruct, > + NoActionEvent.EventSize > + ); > > // > - // Record > + // EfiStartupLocalityEvent > + // > + CopyMem (StartupLocalityEvent.Signature, > TCG_EfiStartupLocalityEvent_SIGNATURE, > sizeof(StartupLocalityEvent.Signature)); > + // > + // SRTM uses Locality 0 to access the TPM according to PC Client PFP > spec 2.2.1 > + // > + StartupLocalityEvent.StartupLocality = LOCALITY_0_INDICATOR; > + > + NoActionEvent.PCRIndex = 0; > + NoActionEvent.EventType = EV_NO_ACTION; > + ZeroMem (&NoActionEvent.Digest, sizeof(NoActionEvent.Digest)); > + NoActionEvent.EventSize = sizeof(StartupLocalityEvent); > + > + // > + // Log EfiStartupLocalityEvent as the second Event > + // TCG PC Client PFP spec. Section 9.3.4.3 Startup Locality Event > // > Status = TcgDxeLogEvent ( > mTcg2EventInfo[Index].LogFormat, > - &FirstPcrEvent, > - sizeof(FirstPcrEvent), > - (UINT8 *)TcgEfiSpecIdEventStruct, > - FirstPcrEvent.EventSize > + &NoActionEvent, > + sizeof(NoActionEvent), > + (UINT8 *)&StartupLocalityEvent, > + NoActionEvent.EventSize > ); > + > } > } > } > -- > 1.9.5.msysgit.1 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org> > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel