https://bugzilla.tianocore.org/show_bug.cgi?id=337
The Tpm12CommandLib in the SecurityPkg was updated to check
the returnCode in the response packet in the following
commit:
950a3bc788
The Tpm12DeviceLibAtmelI2C uses the Tpm12PhysicalPresence()
function from the Tpm12CommandLib to verify that the I2C device
is responding to TPM command packets. However, at this point
the TPM device has not been started, and the TPM properly
responds with an error in the returnCode field of the response
packet. Before the commit above, the check worked, but the
additional error checking in the commit above now returns an
error and an Atmel I2C is returned as not present.
The fix is to remove the call to the Tpm12PhysicalPresence()
API in the Tpm12CommandLib from the Tpm12RequestUseTpm() API.
The Atmel I2C TPM device is detected if a byte can be read
from the slave address assigned to the Atmel I2C device.
When the startup command is sent to the TPM later, the
command and response packet processing will be verified, and
if the I2C device is not an Atmel TPM, it will be detected
at that point.
Cc: Kelly Steele <kelly.steele@intel.com>
Cc: Lee Leahy <leroy.p.leahy@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Lee Leahy <leroy.p.leahy@intel.com>
45 lines
1.4 KiB
INI
45 lines
1.4 KiB
INI
## @file
|
|
# Provides some common functions for the TCG feature for Atmel I2C TPM.
|
|
#
|
|
# This instance provides basic TPM Interface Specification (TIS) functions
|
|
# or Atmel I2C TPM.
|
|
#
|
|
# Copyright (c) 2016 - 2017, 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
|
|
# http://opensource.org/licenses/bsd-license.php
|
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = Tpm12DeviceLibAtmelI2c
|
|
MODULE_UNI_FILE = Tpm12DeviceLibAtmelI2c.uni
|
|
FILE_GUID = A0C0B7EF-99FF-417F-8B9F-5AD4701D90D6
|
|
MODULE_TYPE = PEIM
|
|
VERSION_STRING = 1.0
|
|
LIBRARY_CLASS = Tpm12DeviceLib|PEIM DXE_DRIVER DXE_SMM_DRIVER UEFI_DRIVER
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64
|
|
#
|
|
|
|
[Sources]
|
|
TisPc.c
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
SecurityPkg/SecurityPkg.dec
|
|
QuarkSocPkg/QuarkSocPkg.dec
|
|
|
|
[LibraryClasses]
|
|
BaseLib
|
|
TimerLib
|
|
DebugLib
|
|
I2cLib
|