Reviewed-by: jiewen....@intel.com > -----Original Message----- > From: Zhang, Shenglei <shenglei.zh...@intel.com> > Sent: Monday, April 20, 2020 10:55 AM > To: devel@edk2.groups.io > Cc: Yao, Jiewen <jiewen....@intel.com>; Wang, Jian J <jian.j.w...@intel.com>; > Zhang, Chao B <chao.b.zh...@intel.com> > Subject: [PATCH] SecurityPkg/TpmCommLib: Remove TpmCommLib > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1321 > TpmCommLib is no longer used by TcgPei/TcgDxe/Tcg2ConfigPei modules. > So it can be removed from SecurityPkg. > > Cc: Jiewen Yao <jiewen....@intel.com> > Cc: Jian J Wang <jian.j.w...@intel.com> > Cc: Chao Zhang <chao.b.zh...@intel.com> > Signed-off-by: Shenglei Zhang <shenglei.zh...@intel.com> > --- > SecurityPkg/Library/TpmCommLib/TisPc.c | 177 ------------------ > SecurityPkg/Library/TpmCommLib/TpmComm.c | 44 ----- > SecurityPkg/Library/TpmCommLib/CommonHeader.h | 23 --- > SecurityPkg/Library/TpmCommLib/TpmCommLib.inf | 45 ----- > SecurityPkg/Library/TpmCommLib/TpmCommLib.uni | 17 -- > SecurityPkg/SecurityPkg.dec | 6 +- > SecurityPkg/SecurityPkg.dsc | 4 +- > 7 files changed, 2 insertions(+), 314 deletions(-) > delete mode 100644 SecurityPkg/Library/TpmCommLib/TisPc.c > delete mode 100644 SecurityPkg/Library/TpmCommLib/TpmComm.c > delete mode 100644 SecurityPkg/Library/TpmCommLib/CommonHeader.h > delete mode 100644 SecurityPkg/Library/TpmCommLib/TpmCommLib.inf > delete mode 100644 SecurityPkg/Library/TpmCommLib/TpmCommLib.uni > > diff --git a/SecurityPkg/Library/TpmCommLib/TisPc.c > b/SecurityPkg/Library/TpmCommLib/TisPc.c > deleted file mode 100644 > index 533a42e53cee..000000000000 > --- a/SecurityPkg/Library/TpmCommLib/TisPc.c > +++ /dev/null > @@ -1,177 +0,0 @@ > -/** @file > - Basic TIS (TPM Interface Specification) functions. > - > -Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.<BR> > -SPDX-License-Identifier: BSD-2-Clause-Patent > - > -**/ > - > -#include "CommonHeader.h" > - > -/** > - Check whether TPM chip exist. > - > - @param[in] TisReg Pointer to TIS register. > - > - @retval TRUE TPM chip exists. > - @retval FALSE TPM chip is not found. > -**/ > -BOOLEAN > -TisPcPresenceCheck ( > - IN TIS_PC_REGISTERS_PTR TisReg > - ) > -{ > - UINT8 RegRead; > - > - RegRead = MmioRead8 ((UINTN)&TisReg->Access); > - return (BOOLEAN)(RegRead != (UINT8)-1); > -} > - > -/** > - Check whether the value of a TPM chip register satisfies the input BIT > setting. > - > - @param[in] Register Address port of register to be checked. > - @param[in] BitSet Check these data bits are set. > - @param[in] BitClear Check these data bits are clear. > - @param[in] TimeOut The max wait time (unit MicroSecond) when checking > register. > - > - @retval EFI_SUCCESS The register satisfies the check bit. > - @retval EFI_TIMEOUT The register can't run into the expected status in > time. > -**/ > -EFI_STATUS > -EFIAPI > -TisPcWaitRegisterBits ( > - IN UINT8 *Register, > - IN UINT8 BitSet, > - IN UINT8 BitClear, > - IN UINT32 TimeOut > - ) > -{ > - UINT8 RegRead; > - UINT32 WaitTime; > - > - for (WaitTime = 0; WaitTime < TimeOut; WaitTime += 30){ > - RegRead = MmioRead8 ((UINTN)Register); > - if ((RegRead & BitSet) == BitSet && (RegRead & BitClear) == 0) > - return EFI_SUCCESS; > - MicroSecondDelay (30); > - } > - return EFI_TIMEOUT; > -} > - > -/** > - Get BurstCount by reading the burstCount field of a TIS register > - in the time of default TIS_TIMEOUT_D. > - > - @param[in] TisReg Pointer to TIS register. > - @param[out] BurstCount Pointer to a buffer to store the got > BurstCount. > - > - @retval EFI_SUCCESS Get BurstCount. > - @retval EFI_INVALID_PARAMETER TisReg is NULL or BurstCount is NULL. > - @retval EFI_TIMEOUT BurstCount can't be got in time. > -**/ > -EFI_STATUS > -EFIAPI > -TisPcReadBurstCount ( > - IN TIS_PC_REGISTERS_PTR TisReg, > - OUT UINT16 *BurstCount > - ) > -{ > - UINT32 WaitTime; > - UINT8 DataByte0; > - UINT8 DataByte1; > - > - if (BurstCount == NULL || TisReg == NULL) { > - return EFI_INVALID_PARAMETER; > - } > - > - WaitTime = 0; > - do { > - // > - // TIS_PC_REGISTERS_PTR->burstCount is UINT16, but it is not 2bytes > aligned, > - // so it needs to use MmioRead8 to read two times > - // > - DataByte0 = MmioRead8 ((UINTN)&TisReg->BurstCount); > - DataByte1 = MmioRead8 ((UINTN)&TisReg->BurstCount + 1); > - *BurstCount = (UINT16)((DataByte1 << 8) + DataByte0); > - if (*BurstCount != 0) { > - return EFI_SUCCESS; > - } > - MicroSecondDelay (30); > - WaitTime += 30; > - } while (WaitTime < TIS_TIMEOUT_D); > - > - return EFI_TIMEOUT; > -} > - > -/** > - Set TPM chip to ready state by sending ready command TIS_PC_STS_READY > - to Status Register in time. > - > - @param[in] TisReg Pointer to TIS register. > - > - @retval EFI_SUCCESS TPM chip enters into ready state. > - @retval EFI_INVALID_PARAMETER TisReg is NULL. > - @retval EFI_TIMEOUT TPM chip can't be set to ready state in > time. > -**/ > -EFI_STATUS > -EFIAPI > -TisPcPrepareCommand ( > - IN TIS_PC_REGISTERS_PTR TisReg > - ) > -{ > - EFI_STATUS Status; > - > - if (TisReg == NULL) { > - return EFI_INVALID_PARAMETER; > - } > - > - MmioWrite8((UINTN)&TisReg->Status, TIS_PC_STS_READY); > - Status = TisPcWaitRegisterBits ( > - &TisReg->Status, > - TIS_PC_STS_READY, > - 0, > - TIS_TIMEOUT_B > - ); > - return Status; > -} > - > -/** > - Get the control of TPM chip by sending requestUse command > TIS_PC_ACC_RQUUSE > - to ACCESS Register in the time of default TIS_TIMEOUT_A. > - > - @param[in] TisReg Pointer to TIS register. > - > - @retval EFI_SUCCESS Get the control of TPM chip. > - @retval EFI_INVALID_PARAMETER TisReg is NULL. > - @retval EFI_NOT_FOUND TPM chip doesn't exit. > - @retval EFI_TIMEOUT Can't get the TPM control in time. > -**/ > -EFI_STATUS > -EFIAPI > -TisPcRequestUseTpm ( > - IN TIS_PC_REGISTERS_PTR TisReg > - ) > -{ > - EFI_STATUS Status; > - > - if (TisReg == NULL) { > - return EFI_INVALID_PARAMETER; > - } > - > - if (!TisPcPresenceCheck (TisReg)) { > - return EFI_NOT_FOUND; > - } > - > - MmioWrite8((UINTN)&TisReg->Access, TIS_PC_ACC_RQUUSE); > - // > - // No locality set before, ACCESS_X.activeLocality MUST be valid within > TIMEOUT_A > - // > - Status = TisPcWaitRegisterBits ( > - &TisReg->Access, > - (UINT8)(TIS_PC_ACC_ACTIVE |TIS_PC_VALID), > - 0, > - TIS_TIMEOUT_A > - ); > - return Status; > -} > diff --git a/SecurityPkg/Library/TpmCommLib/TpmComm.c > b/SecurityPkg/Library/TpmCommLib/TpmComm.c > deleted file mode 100644 > index dee64b24ffef..000000000000 > --- a/SecurityPkg/Library/TpmCommLib/TpmComm.c > +++ /dev/null > @@ -1,44 +0,0 @@ > -/** @file > - Basic TPM command functions. > - > -Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.<BR> > -SPDX-License-Identifier: BSD-2-Clause-Patent > - > -**/ > - > -#include "CommonHeader.h" > - > -/** > - Single function calculates SHA1 digest value for all raw data. It > - combines Sha1Init(), Sha1Update() and Sha1Final(). > - > - @param[in] Data Raw data to be digested. > - @param[in] DataLen Size of the raw data. > - @param[out] Digest Pointer to a buffer that stores the final digest. > - > - @retval EFI_SUCCESS Always successfully calculate the final digest. > -**/ > -EFI_STATUS > -EFIAPI > -TpmCommHashAll ( > - IN CONST UINT8 *Data, > - IN UINTN DataLen, > - OUT TPM_DIGEST *Digest > - ) > -{ > - VOID *Sha1Ctx; > - UINTN CtxSize; > - > - CtxSize = Sha1GetContextSize (); > - Sha1Ctx = AllocatePool (CtxSize); > - ASSERT (Sha1Ctx != NULL); > - > - Sha1Init (Sha1Ctx); > - Sha1Update (Sha1Ctx, Data, DataLen); > - Sha1Final (Sha1Ctx, (UINT8 *)Digest); > - > - FreePool (Sha1Ctx); > - > - return EFI_SUCCESS; > -} > - > diff --git a/SecurityPkg/Library/TpmCommLib/CommonHeader.h > b/SecurityPkg/Library/TpmCommLib/CommonHeader.h > deleted file mode 100644 > index aa2e412a116d..000000000000 > --- a/SecurityPkg/Library/TpmCommLib/CommonHeader.h > +++ /dev/null > @@ -1,23 +0,0 @@ > -/** @file > - The internal header file for TpmCommLib. > - > -Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> > -SPDX-License-Identifier: BSD-2-Clause-Patent > - > -**/ > - > -#ifndef _TPMCOMMLIB_COMMON_HEADER_H_ > -#define _TPMCOMMLIB_COMMON_HEADER_H_ > - > -#include <PiPei.h> > -#include <IndustryStandard/Tpm12.h> > -#include <Library/BaseLib.h> > -#include <Library/BaseMemoryLib.h> > -#include <Library/IoLib.h> > -#include <Library/TimerLib.h> > -#include <Library/TpmCommLib.h> > -#include <Library/BaseCryptLib.h> > -#include <Library/MemoryAllocationLib.h> > -#include <Library/DebugLib.h> > - > -#endif > diff --git a/SecurityPkg/Library/TpmCommLib/TpmCommLib.inf > b/SecurityPkg/Library/TpmCommLib/TpmCommLib.inf > deleted file mode 100644 > index 4caabd496f59..000000000000 > --- a/SecurityPkg/Library/TpmCommLib/TpmCommLib.inf > +++ /dev/null > @@ -1,45 +0,0 @@ > -## @file > -# Provides some common functions for the TCG feature > -# > -# This instance provides basic TPM Interface Specification (TIS) functions > -# and TPM hashall function. > -# > -# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> > -# SPDX-License-Identifier: BSD-2-Clause-Patent > -# > -## > - > -[Defines] > - INF_VERSION = 0x00010005 > - BASE_NAME = TpmCommLib > - MODULE_UNI_FILE = TpmCommLib.uni > - FILE_GUID = 7d9fe32e-a6a9-4cdf-abff-10cc7f22e1c9 > - MODULE_TYPE = PEIM > - VERSION_STRING = 1.0 > - LIBRARY_CLASS = TpmCommLib|DXE_DRIVER UEFI_DRIVER PEIM > DXE_SMM_DRIVER > - > -# > -# The following information is for reference only and not required by the > build > tools. > -# > -# VALID_ARCHITECTURES = IA32 X64 > -# > - > -[Sources] > - TisPc.c > - TpmComm.c > - CommonHeader.h > - > -[Packages] > - MdePkg/MdePkg.dec > - SecurityPkg/SecurityPkg.dec > - CryptoPkg/CryptoPkg.dec > - > -[LibraryClasses] > - BaseLib > - BaseMemoryLib > - IoLib > - TimerLib > - BaseCryptLib > - MemoryAllocationLib > - DebugLib > - > diff --git a/SecurityPkg/Library/TpmCommLib/TpmCommLib.uni > b/SecurityPkg/Library/TpmCommLib/TpmCommLib.uni > deleted file mode 100644 > index 96194551be88..000000000000 > --- a/SecurityPkg/Library/TpmCommLib/TpmCommLib.uni > +++ /dev/null > @@ -1,17 +0,0 @@ > -// /** @file > -// Provides some common functions for the TCG feature > -// > -// This instance provides basic TPM Interface Specification (TIS) functions > -// and TPM hashall function. > -// > -// Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> > -// > -// SPDX-License-Identifier: BSD-2-Clause-Patent > -// > -// **/ > - > - > -#string STR_MODULE_ABSTRACT #language en-US "Provides some > common functions for the TCG feature" > - > -#string STR_MODULE_DESCRIPTION #language en-US "This instance > provides basic TPM Interface Specification (TIS) functions and TPM hashall > function." > - > diff --git a/SecurityPkg/SecurityPkg.dec b/SecurityPkg/SecurityPkg.dec > index 2cdfb02cc5a2..240d422405cc 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 - 2019, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.<BR> > # (C) Copyright 2015 Hewlett Packard Enterprise Development LP <BR> > # Copyright (c) 2017, Microsoft Corporation. All rights reserved. <BR> > # SPDX-License-Identifier: BSD-2-Clause-Patent > @@ -55,10 +55,6 @@ [LibraryClasses] > # > Tpm12DeviceLib|Include/Library/Tpm12DeviceLib.h > > - ## @libraryclass Provides TPM Interface Specification (TIS) interfaces > for > TPM command. > - # > - TpmCommLib|Include/Library/TpmCommLib.h > - > ## @libraryclass Provides support for TCG Physical Presence Interface > (PPI) > specification > # >= 128 Vendor Specific PPI Operation. > # > diff --git a/SecurityPkg/SecurityPkg.dsc b/SecurityPkg/SecurityPkg.dsc > index 53fce0535316..8ef6c9ee2f4d 100644 > --- a/SecurityPkg/SecurityPkg.dsc > +++ b/SecurityPkg/SecurityPkg.dsc > @@ -1,7 +1,7 @@ > ## @file > # Security Module Package for All Architectures. > # > -# Copyright (c) 2009 - 2019, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.<BR> > # (C) Copyright 2015-2020 Hewlett Packard Enterprise Development LP<BR> > # SPDX-License-Identifier: BSD-2-Clause-Patent > # > @@ -45,7 +45,6 @@ [LibraryClasses] > > UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib > .inf > PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf > IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf > - TpmCommLib|SecurityPkg/Library/TpmCommLib/TpmCommLib.inf > > PlatformSecureLib|SecurityPkg/Library/PlatformSecureLibNull/PlatformSecureLi > bNull.inf > > TcgPhysicalPresenceLib|SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcg > PhysicalPresenceLib.inf > > TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMe > asurementLib.inf > @@ -185,7 +184,6 @@ [Components] > # TPM > # > SecurityPkg/Library/DxeTpmMeasureBootLib/DxeTpmMeasureBootLib.inf > - SecurityPkg/Library/TpmCommLib/TpmCommLib.inf > > SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.inf > SecurityPkg/Library/Tpm12CommandLib/Tpm12CommandLib.inf > SecurityPkg/Library/Tpm12DeviceLibDTpm/Tpm12DeviceLibDTpm.inf > -- > 2.18.0.windows.1
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57591): https://edk2.groups.io/g/devel/message/57591 Mute This Topic: https://groups.io/mt/73142079/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-