Looks good to me. Reviewed-by: Qin Long <[email protected]>
Best Regards & Thanks, LONG, Qin > -----Original Message----- > From: edk2-devel [mailto:[email protected]] On Behalf Of > Zhang, Chao B > Sent: Friday, January 08, 2016 3:34 PM > To: [email protected] > Cc: Yao, Jiewen; Zhang, Chao B; Long, Qin > Subject: [edk2] [PATCH] SecurityPkg: TcgDxe, Tcg2Dxe, TrEEDxe: New PCD > for TCG event log and TCG2 final event log area > > TCG event log and TCG2 final event log area length can be configurable to > meet platform event log requirement. > PcdTcgLogAreaMinLen : 0x10000 based on minimum requirement in TCG > ACPI Spec 00.37 > PcdTcg2FinalLogAreaLen : 0x8000 based on experience value > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Chao Zhang <[email protected]> > --- > SecurityPkg/SecurityPkg.dec | 11 ++++++++++- > SecurityPkg/SecurityPkg.uni | 11 ++++++++++- > SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c | 15 ++++++--------- > SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf | 4 +++- > SecurityPkg/Tcg/TcgDxe/TcgDxe.c | 14 ++++++-------- > SecurityPkg/Tcg/TcgDxe/TcgDxe.inf | 3 ++- > SecurityPkg/Tcg/TrEEDxe/TrEEDxe.c | 12 +++++------- > SecurityPkg/Tcg/TrEEDxe/TrEEDxe.inf | 3 ++- > 8 files changed, 44 insertions(+), 29 deletions(-) > > diff --git a/SecurityPkg/SecurityPkg.dec b/SecurityPkg/SecurityPkg.dec index > d568b47..b5f4eb7 100644 > --- a/SecurityPkg/SecurityPkg.dec > +++ b/SecurityPkg/SecurityPkg.dec > @@ -5,7 +5,7 @@ > # It also provides the definitions(including PPIs/PROTOCOLs/GUIDs and > library classes) # and libraries instances, which are used for those > features. > # > -# Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2009 - 2016, Intel Corporation. All rights > +reserved.<BR> > # (C) Copyright 2015 Hewlett Packard Enterprise Development LP <BR> # > This program and the accompanying materials are licensed and made > available under # the terms and conditions of the BSD License which > accompanies this distribution. > @@ -389,6 +389,15 @@ > # > gEfiSecurityPkgTokenSpaceGuid.PcdRsa2048Sha256PublicKeyBuffer|{0x91, > 0x29, 0xc4, 0xbd, 0xea, 0x6d, 0xda, 0xb3, 0xaa, 0x6f, 0x50, 0x16, 0xfc, 0xdb, > 0x4b, 0x7e, 0x3c, 0xd6, 0xdc, 0xa4, 0x7a, 0x0e, 0xdd, 0xe6, 0x15, 0x8c, 0x73, > 0x96, 0xa2, 0xd4, 0xa6, 0x4d}|VOID*|0x00010013 > > + ## This PCD defines minimum length(in bytes) of the system preboot TCG > event log area(LAML). > + # For PC Client Implementation spec up to and including 1.2 the minimum > log size is 64KB. > + # @Prompt Minimum length(in bytes) of the system preboot TCG event > log area(LAML). > + > + > gEfiSecurityPkgTokenSpaceGuid.PcdTcgLogAreaMinLen|0x10000|UINT32|0x > 000 > + 10017 > + > + ## This PCD defines length(in bytes) of the TCG2 Final event log area. > + # @Prompt Length(in bytes) of the TCG2 Final event log area. > + > + > gEfiSecurityPkgTokenSpaceGuid.PcdTcg2FinalLogAreaLen|0x8000|UINT32|0 > x0 > + 0010018 > + > [PcdsDynamic, PcdsDynamicEx] > > ## This PCD indicates Hash mask for TPM 2.0.<BR><BR> diff --git > a/SecurityPkg/SecurityPkg.uni b/SecurityPkg/SecurityPkg.uni index > 91fff94..5fcd3f9 100644 > --- a/SecurityPkg/SecurityPkg.uni > +++ b/SecurityPkg/SecurityPkg.uni > @@ -5,7 +5,7 @@ > // It also provides the definitions(including PPIs/PROTOCOLs/GUIDs and > library classes) // and libraries instances, which are used for those > features. > // > -// Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR> > +// Copyright (c) 2009 - 2016, Intel Corporation. All rights > +reserved.<BR> > // > // This program and the accompanying materials are licensed and made > available under // the terms and conditions of the BSD License which > accompanies this distribution. > @@ -192,3 +192,12 @@ > > "Bios may choose to register a > subset of PcdTpm2HashMask.\n" > > "So this PCD is final value of > how many hash algo is extended to PCR." > > +#string > STR_gEfiSecurityPkgTokenSpaceGuid_PcdTcgLogAreaMinLen_PROMPT > #language en-US "Minimum length(in bytes) of the system preboot TCG > event log area(LAML)." > + > +#string STR_gEfiSecurityPkgTokenSpaceGuid_PcdTcgLogAreaMinLen_HELP > #language en-US "This PCD defines minimum length(in bytes) of the system > preboot TCG event log area(LAML).\n" > + > "For PC Client Implementation > spec up to and including 1.2 the minimum log size is 64KB." > + > +#string > STR_gEfiSecurityPkgTokenSpaceGuid_PcdTcg2FinalLogAreaLen_PROMPT > #language en-US "Length(in bytes) of the TCG2 Final event log area." > + > +#string > STR_gEfiSecurityPkgTokenSpaceGuid_PcdTcg2FinalLogAreaLen_HELP > #language en-US "This PCD defines length(in bytes) of the TCG2 Final event > log area." > + > diff --git a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c > b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c > index ae5e084..f0dbbac 100644 > --- a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c > +++ b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c > @@ -56,9 +56,6 @@ typedef struct { > EFI_GUID *VendorGuid; > } VARIABLE_TYPE; > > -#define EFI_TCG_LOG_AREA_SIZE 0x10000 > -#define EFI_TCG_FINAL_LOG_AREA_SIZE 0x1000 > - > #define TCG2_DEFAULT_MAX_COMMAND_SIZE 0x1000 > #define TCG2_DEFAULT_MAX_RESPONSE_SIZE 0x1000 > > @@ -1470,19 +1467,19 @@ SetupEventLog ( > Status = gBS->AllocatePages ( > AllocateMaxAddress, > EfiACPIMemoryNVS, > - EFI_SIZE_TO_PAGES (EFI_TCG_LOG_AREA_SIZE), > + EFI_SIZE_TO_PAGES (PcdGet32 > + (PcdTcgLogAreaMinLen)), > &Lasa > ); > if (EFI_ERROR (Status)) { > return Status; > } > mTcgDxeData.EventLogAreaStruct[Index].Lasa = Lasa; > - mTcgDxeData.EventLogAreaStruct[Index].Laml = > EFI_TCG_LOG_AREA_SIZE; > + mTcgDxeData.EventLogAreaStruct[Index].Laml = PcdGet32 > + (PcdTcgLogAreaMinLen); > // > // To initialize them as 0xFF is recommended > // because the OS can know the last entry for that. > // > - SetMem ((VOID *)(UINTN)Lasa, EFI_TCG_LOG_AREA_SIZE, 0xFF); > + SetMem ((VOID *)(UINTN)Lasa, PcdGet32 (PcdTcgLogAreaMinLen), > + 0xFF); > // > // Create first entry for Log Header Entry Data > // > @@ -1571,13 +1568,13 @@ SetupEventLog ( > Status = gBS->AllocatePages ( > AllocateMaxAddress, > EfiACPIMemoryNVS, > - EFI_SIZE_TO_PAGES (EFI_TCG_FINAL_LOG_AREA_SIZE), > + EFI_SIZE_TO_PAGES (PcdGet32 > + (PcdTcg2FinalLogAreaLen)), > &Lasa > ); > if (EFI_ERROR (Status)) { > return Status; > } > - SetMem ((VOID *)(UINTN)Lasa, EFI_TCG_FINAL_LOG_AREA_SIZE, 0xFF); > + SetMem ((VOID *)(UINTN)Lasa, PcdGet32 (PcdTcg2FinalLogAreaLen), > + 0xFF); > > // > // Initialize > @@ -1588,7 +1585,7 @@ SetupEventLog ( > > mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogFormat = > mTcg2EventInfo[Index].LogFormat; > mTcgDxeData.FinalEventLogAreaStruct[Index].Lasa = Lasa + > sizeof(EFI_TCG2_FINAL_EVENTS_TABLE); > - mTcgDxeData.FinalEventLogAreaStruct[Index].Laml = > EFI_TCG_FINAL_LOG_AREA_SIZE - sizeof(EFI_TCG2_FINAL_EVENTS_TABLE); > + mTcgDxeData.FinalEventLogAreaStruct[Index].Laml = PcdGet32 > + (PcdTcg2FinalLogAreaLen) - sizeof(EFI_TCG2_FINAL_EVENTS_TABLE); > mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogSize = 0; > mTcgDxeData.FinalEventLogAreaStruct[Index].LastEvent = (VOID > *)(UINTN)mTcgDxeData.FinalEventLogAreaStruct[Index].Lasa; > mTcgDxeData.FinalEventLogAreaStruct[Index].EventLogStarted = FALSE; > diff --git a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf > b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf > index ca6741b..fd120e5 100644 > --- a/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf > +++ b/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf > @@ -7,7 +7,7 @@ > # This external input must be validated carefully to avoid security issue > like > # buffer overflow, integer overflow. > # > -# Copyright (c) 2015, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2015 - 2016, Intel Corporation. All rights > +reserved.<BR> > # This program and the accompanying materials # are licensed and made > available under the terms and conditions of the BSD License # which > accompanies this distribution. The full text of the license may be found at > @@ -100,6 +100,8 @@ > gEfiSecurityPkgTokenSpaceGuid.PcdStatusCodeSubClassTpmDevice > ## SOMETIMES_CONSUMES > gEfiSecurityPkgTokenSpaceGuid.PcdTcg2HashAlgorithmBitmap > ## > CONSUMES > gEfiSecurityPkgTokenSpaceGuid.PcdTcg2NumberOfPCRBanks > ## > CONSUMES > + gEfiSecurityPkgTokenSpaceGuid.PcdTcgLogAreaMinLen > ## > CONSUMES > + gEfiSecurityPkgTokenSpaceGuid.PcdTcg2FinalLogAreaLen > ## > CONSUMES > > [Depex] > TRUE > diff --git a/SecurityPkg/Tcg/TcgDxe/TcgDxe.c > b/SecurityPkg/Tcg/TcgDxe/TcgDxe.c index 4e2741c..1e52179 100644 > --- a/SecurityPkg/Tcg/TcgDxe/TcgDxe.c > +++ b/SecurityPkg/Tcg/TcgDxe/TcgDxe.c > @@ -53,8 +53,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY > KIND, EITHER EXPRESS OR IMPLIED. > > #include "TpmComm.h" > > -#define EFI_TCG_LOG_AREA_SIZE 0x10000 > - > #define TCG_DXE_DATA_FROM_THIS(this) \ > BASE_CR (this, TCG_DXE_DATA, TcgProtocol) > > @@ -653,7 +651,7 @@ SetupEventLog ( > Status = gBS->AllocatePages ( > AllocateMaxAddress, > EfiACPIMemoryNVS, > - EFI_SIZE_TO_PAGES (EFI_TCG_LOG_AREA_SIZE), > + EFI_SIZE_TO_PAGES (PcdGet32 (PcdTcgLogAreaMinLen)), > &Lasa > ); > if (EFI_ERROR (Status)) { > @@ -664,8 +662,8 @@ SetupEventLog ( > // To initialize them as 0xFF is recommended > // because the OS can know the last entry for that. > // > - SetMem ((VOID *)(UINTN)mTcgClientAcpiTemplate.Lasa, > EFI_TCG_LOG_AREA_SIZE, 0xFF); > - mTcgClientAcpiTemplate.Laml = EFI_TCG_LOG_AREA_SIZE; > + SetMem ((VOID *)(UINTN)mTcgClientAcpiTemplate.Lasa, PcdGet32 > (PcdTcgLogAreaMinLen), 0xFF); > + mTcgClientAcpiTemplate.Laml = PcdGet32 (PcdTcgLogAreaMinLen); > > } else { > Lasa = mTcgServerAcpiTemplate.Lasa; @@ -673,7 +671,7 @@ > SetupEventLog ( > Status = gBS->AllocatePages ( > AllocateMaxAddress, > EfiACPIMemoryNVS, > - EFI_SIZE_TO_PAGES (EFI_TCG_LOG_AREA_SIZE), > + EFI_SIZE_TO_PAGES (PcdGet32 (PcdTcgLogAreaMinLen)), > &Lasa > ); > if (EFI_ERROR (Status)) { > @@ -684,8 +682,8 @@ SetupEventLog ( > // To initialize them as 0xFF is recommended > // because the OS can know the last entry for that. > // > - SetMem ((VOID *)(UINTN)mTcgServerAcpiTemplate.Lasa, > EFI_TCG_LOG_AREA_SIZE, 0xFF); > - mTcgServerAcpiTemplate.Laml = EFI_TCG_LOG_AREA_SIZE; > + SetMem ((VOID *)(UINTN)mTcgServerAcpiTemplate.Lasa, PcdGet32 > (PcdTcgLogAreaMinLen), 0xFF); > + mTcgServerAcpiTemplate.Laml = PcdGet32 (PcdTcgLogAreaMinLen); > } > > GuidHob.Raw = GetHobList (); > diff --git a/SecurityPkg/Tcg/TcgDxe/TcgDxe.inf > b/SecurityPkg/Tcg/TcgDxe/TcgDxe.inf > index 0976304..e5409df 100644 > --- a/SecurityPkg/Tcg/TcgDxe/TcgDxe.inf > +++ b/SecurityPkg/Tcg/TcgDxe/TcgDxe.inf > @@ -2,7 +2,7 @@ > # Produces TCG protocol and measures boot environment # This module > will produce TCG protocol and measure boot environment. > # > -# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2006 - 2016, Intel Corporation. All rights > +reserved.<BR> > # This program and the accompanying materials # are licensed and made > available under the terms and conditions of the BSD License # which > accompanies this distribution. The full text of the license may be found at > @@ -75,6 +75,7 @@ > gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorId ## > SOMETIMES_CONSUMES > gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorRevision ## > SOMETIMES_CONSUMES > gEfiSecurityPkgTokenSpaceGuid.PcdStatusCodeSubClassTpmDevice ## > SOMETIMES_CONSUMES > + gEfiSecurityPkgTokenSpaceGuid.PcdTcgLogAreaMinLen ## > CONSUMES > > [Depex] > TRUE > diff --git a/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.c > b/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.c > index 8f344fe..dfdee04 100644 > --- a/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.c > +++ b/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.c > @@ -55,8 +55,6 @@ typedef struct { > EFI_GUID *VendorGuid; > } VARIABLE_TYPE; > > -#define EFI_TCG_LOG_AREA_SIZE 0x10000 > - > #define TREE_DEFAULT_MAX_COMMAND_SIZE 0x1000 > #define TREE_DEFAULT_MAX_RESPONSE_SIZE 0x1000 > > @@ -949,19 +947,19 @@ SetupEventLog ( > Status = gBS->AllocatePages ( > AllocateMaxAddress, > EfiACPIMemoryNVS, > - EFI_SIZE_TO_PAGES (EFI_TCG_LOG_AREA_SIZE), > + EFI_SIZE_TO_PAGES (PcdGet32 > + (PcdTcgLogAreaMinLen)), > &Lasa > ); > if (EFI_ERROR (Status)) { > return Status; > } > mTcgDxeData.EventLogAreaStruct[Index].Lasa = Lasa; > - mTcgDxeData.EventLogAreaStruct[Index].Laml = > EFI_TCG_LOG_AREA_SIZE; > + mTcgDxeData.EventLogAreaStruct[Index].Laml = PcdGet32 > + (PcdTcgLogAreaMinLen); > // > // To initialize them as 0xFF is recommended > // because the OS can know the last entry for that. > // > - SetMem ((VOID *)(UINTN)Lasa, EFI_TCG_LOG_AREA_SIZE, 0xFF); > + SetMem ((VOID *)(UINTN)Lasa, PcdGet32 (PcdTcgLogAreaMinLen), > + 0xFF); > } > > // > @@ -969,10 +967,10 @@ SetupEventLog ( > // > if (PcdGet8 (PcdTpmPlatformClass) == TCG_PLATFORM_TYPE_CLIENT) { > mTcgClientAcpiTemplate.Lasa = > mTcgDxeData.EventLogAreaStruct[0].Lasa; > - mTcgClientAcpiTemplate.Laml = EFI_TCG_LOG_AREA_SIZE; > + mTcgClientAcpiTemplate.Laml = PcdGet32 (PcdTcgLogAreaMinLen); > } else { > mTcgServerAcpiTemplate.Lasa = > mTcgDxeData.EventLogAreaStruct[0].Lasa; > - mTcgServerAcpiTemplate.Laml = EFI_TCG_LOG_AREA_SIZE; > + mTcgServerAcpiTemplate.Laml = PcdGet32 (PcdTcgLogAreaMinLen); > } > > // > diff --git a/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.inf > b/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.inf > index 258ab46..c22e8f0 100644 > --- a/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.inf > +++ b/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.inf > @@ -7,7 +7,7 @@ > # This external input must be validated carefully to avoid security issue > like > # buffer overflow, integer overflow. > # > -# Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2013 - 2016, Intel Corporation. All rights > +reserved.<BR> > # This program and the accompanying materials # are licensed and made > available under the terms and conditions of the BSD License # which > accompanies this distribution. The full text of the license may be found at > @@ -94,6 +94,7 @@ > gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorId > ## > SOMETIMES_CONSUMES > gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorRevision > ## SOMETIMES_CONSUMES > gEfiSecurityPkgTokenSpaceGuid.PcdStatusCodeSubClassTpmDevice > ## SOMETIMES_CONSUMES > + gEfiSecurityPkgTokenSpaceGuid.PcdTcgLogAreaMinLen > ## > CONSUMES > > [Depex] > TRUE > -- > 1.9.5.msysgit.1 > > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

