[EXTERNAL] [edk2-devel] [PATCH] SecurityPkg/TpmCommLib: Remove TpmCommLib

Bret Barkelew via groups.io bret.barkelew=microsoft.com at groups.io
Mon Apr 20 04:36:12 UTC 2020


Reviewed-by: Bret Barkelew <bret.barkelew at microsoft.com>

- Bret

________________________________
From: devel at edk2.groups.io <devel at edk2.groups.io> on behalf of Zhang, Shenglei via groups.io <shenglei.zhang=intel.com at groups.io>
Sent: Sunday, April 19, 2020 7:55:23 PM
To: devel at edk2.groups.io <devel at edk2.groups.io>
Cc: Jiewen Yao <jiewen.yao at intel.com>; Jian J Wang <jian.j.wang at intel.com>; Chao Zhang <chao.b.zhang at intel.com>
Subject: [EXTERNAL] [edk2-devel] [PATCH] SecurityPkg/TpmCommLib: Remove TpmCommLib

REF: https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D1321&data=02%7C01%7Cbret.barkelew%40microsoft.com%7C005eb77f141447b5197908d7e4d65585%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637229481521987478&sdata=PaDpIoa7Z5Yf%2F2dNp4x8jEPJ4HY8r4QkHIJSqpdILqo%3D&reserved=0
TpmCommLib is no longer used by TcgPei/TcgDxe/Tcg2ConfigPei modules.
So it can be removed from SecurityPkg.

Cc: Jiewen Yao <jiewen.yao at intel.com>
Cc: Jian J Wang <jian.j.wang at intel.com>
Cc: Chao Zhang <chao.b.zhang at intel.com>
Signed-off-by: Shenglei Zhang <shenglei.zhang at 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/PlatformSecureLibNull.inf
   TcgPhysicalPresenceLib|SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.inf
   TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.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 (#57590): https://edk2.groups.io/g/devel/message/57590
Mute This Topic: https://groups.io/mt/73143221/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/edk2-devel-archive/attachments/20200420/aef9bfca/attachment.htm>


More information about the edk2-devel-archive mailing list