From: "Leahy, Leroy P" <leroy.p.leahy@intel.com>
To: "Kinney, Michael D" <michael.d.kinney@intel.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: [Patch 1/3] QuarkPlatformPkg/Tpm12DeviceLibAtmelI2c: Remove PP Check
Date: Tue, 10 Jan 2017 20:03:15 +0000 [thread overview]
Message-ID: <FAED2E9371717D498934AEE360823DE66B0E7009@ORSMSX113.amr.corp.intel.com> (raw)
In-Reply-To: <1484072204-35608-2-git-send-email-michael.d.kinney@intel.com>
Reviewed-by: Lee Leahy <leroy.p.leahy@intel.com>
-----Original Message-----
From: Kinney, Michael D
Sent: Tuesday, January 10, 2017 10:17 AM
To: edk2-devel@lists.01.org
Cc: Steele, Kelly <kelly.steele@intel.com>; Leahy, Leroy P <leroy.p.leahy@intel.com>
Subject: [Patch 1/3] QuarkPlatformPkg/Tpm12DeviceLibAtmelI2c: Remove PP Check
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:
https://github.com/tianocore/edk2/commit/950a3bc788b5b101729b26aed3ff75fd2a64a570
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>
---
QuarkPlatformPkg/Library/Tpm12DeviceLibAtmelI2c/TisPc.c | 12 +-----------
.../Tpm12DeviceLibAtmelI2c/Tpm12DeviceLibAtmelI2c.inf | 3 +--
2 files changed, 2 insertions(+), 13 deletions(-)
diff --git a/QuarkPlatformPkg/Library/Tpm12DeviceLibAtmelI2c/TisPc.c b/QuarkPlatformPkg/Library/Tpm12DeviceLibAtmelI2c/TisPc.c
index 4e5aa41..08a005f 100644
--- a/QuarkPlatformPkg/Library/Tpm12DeviceLibAtmelI2c/TisPc.c
+++ b/QuarkPlatformPkg/Library/Tpm12DeviceLibAtmelI2c/TisPc.c
@@ -1,7 +1,7 @@
/** @file
Basic TIS (TPM Interface Specification) functions for Atmel I2C TPM.
- Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+ 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 @@ -18,7 +18,6 @@ #include <Library/TimerLib.h> #include <Library/DebugLib.h> #include <Library/I2cLib.h> -#include <Library/Tpm12CommandLib.h>
//
// Atmel I2C TPM slave address
@@ -224,15 +223,6 @@ Tpm12RequestUseTpm (
}
} while (EFI_ERROR (Status));
- //
- // Send Physical Presence Command to Atmel I2C TPM
- //
- Status = Tpm12PhysicalPresence (TPM_PHYSICAL_PRESENCE_PRESENT);
- if (EFI_ERROR (Status)) {
- DEBUG ((EFI_D_ERROR, "Atmel I2C TPM failed to submit physical presence command: %r\n", Status));
- return Status;
- }
-
return EFI_SUCCESS;
}
diff --git a/QuarkPlatformPkg/Library/Tpm12DeviceLibAtmelI2c/Tpm12DeviceLibAtmelI2c.inf b/QuarkPlatformPkg/Library/Tpm12DeviceLibAtmelI2c/Tpm12DeviceLibAtmelI2c.inf
index 5a8734f..1f7e4be 100644
--- a/QuarkPlatformPkg/Library/Tpm12DeviceLibAtmelI2c/Tpm12DeviceLibAtmelI2c.inf
+++ b/QuarkPlatformPkg/Library/Tpm12DeviceLibAtmelI2c/Tpm12DeviceLibAtme
+++ lI2c.inf
@@ -4,7 +4,7 @@
# This instance provides basic TPM Interface Specification (TIS) functions # or Atmel I2C TPM.
#
-# Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+# 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 @@ -42,4 +42,3 @@
TimerLib
DebugLib
I2cLib
- Tpm12CommandLib
--
2.6.3.windows.1
next prev parent reply other threads:[~2017-01-10 20:03 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-10 18:16 [Patch 0/3] QuarkPlatformPkg/Tpm12DeviceLibAtmelI2c: Fix TPM issues Michael Kinney
2017-01-10 18:16 ` [Patch 1/3] QuarkPlatformPkg/Tpm12DeviceLibAtmelI2c: Remove PP Check Michael Kinney
2017-01-10 20:03 ` Leahy, Leroy P [this message]
2017-01-10 18:16 ` [Patch 2/3] QuarkPlatformPkg/Tpm12DeviceLibAtmelI2c: Fix SubmitCommand() out size Michael Kinney
2017-01-10 20:03 ` Leahy, Leroy P
2017-01-10 18:16 ` [Patch 3/3] QuarkPlatformPkg/Tpm12DeviceLibAtmelI2c: Fix GCC build issues Michael Kinney
2017-01-10 20:04 ` Leahy, Leroy P
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=FAED2E9371717D498934AEE360823DE66B0E7009@ORSMSX113.amr.corp.intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox