832fbc6e32
SecurityPkg: add TIS sanity check (tpm2)
...
The code blindly assumes a TIS interface is present in case both CRB and
FIFO checks fail. Check the InterfaceType for TIS instead and only
return Tpm2PtpInterfaceTis in case it matches, Tpm2PtpInterfaceMax
otherwise.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
2023-05-02 15:43:32 +00:00
7aa06237b8
SecurityPkg: Remove enforcement of final GoIdle transition for CRB commands
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4077
Following the design described in the TCG specification,
the driver implementation of the CRB protocol does not require
enforcing completing the transition to goIdle at the end of a command
sequence.
Signed-off-by: Rodrigo Gonzalez Del Cueto <rodrigo.gonzalez.del.cueto@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2022-09-30 12:00:24 +00:00
6f4e10d6db
SecurityPkg: Add retry mechanism for tpm command
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3980
As per TCG PC Client Device Driver Design Principle document,
if tpm commands fails due to timeout condition, then it should
have retry mechanism (3 retry attempts).
Existing implementation of PtpCrbTpmCommand does not have retry
mechanism if it fails with EFI_TIMEOUT.
See TCG PC Client Device Driver Design Principles for TPM 2.0
https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClient_Device_Driver_Design_Principles_TPM2p0_v1p1_r4_211104_final.pdf
Vision 1.1, Revision 0.04
Section 7.2.1
Signed-off-by: Qi Zhang <qi1.zhang@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
Tested-by: Swapnil Patil <S.Keshavrao.Patil@dell.com >
2022-07-31 16:34:01 +00:00
ab5ab2f603
SecurityPkg: TPM must go to Idle state on CRB command completion
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3463
In V2: Fixed patch format and uncrustify cleanup
In V1: To follow the TCG CRB protocol specification, on every CRB TPM
command completion the TPM should return to Idle state, regardless of
the CRB Idle Bypass capability reported by the TPM device.
See: TCG PC Client Device Driver Design Principles for TPM 2.0,
Version 1.0, Rev 0.27
Signed-off-by: Rodrigo Gonzalez del Cueto <rodrigo.gonzalez.del.cueto@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
2021-12-17 15:03:43 +00:00
c411b485b6
SecurityPkg: Apply uncrustify changes
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737
Apply uncrustify changes to .c/.h files in the SecurityPkg package
Cc: Andrew Fish <afish@apple.com >
Cc: Leif Lindholm <leif@nuviainc.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2021-12-07 17:24:28 +00:00
f9f4fb2329
SecurityPkg: Change complex DEBUG_CODE() to DEBUG_CODE_BEGIN/END()
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3767
Update use of DEBUG_CODE(Expression) if Expression is a complex code
block with if/while/for/case statements that use {}.
Cc: Andrew Fish <afish@apple.com >
Cc: Leif Lindholm <leif@nuviainc.com >
Cc: Michael Kubacki <michael.kubacki@microsoft.com >
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2021-12-07 17:24:28 +00:00
e905fbb05a
SecurityPkg: Change use of EFI_D_* to DEBUG_*
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3739
Update all use of EFI_D_* defines in DEBUG() macros to DEBUG_* defines.
Cc: Andrew Fish <afish@apple.com >
Cc: Leif Lindholm <leif@nuviainc.com >
Cc: Michael Kubacki <michael.kubacki@microsoft.com >
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2021-12-07 17:24:28 +00:00
7a56650e2e
SecurityPkg: Tpm2DeviceLibDTpm: Introduce StandaloneMm instance
...
This change added a new instance of Tpm2DeviceLibDTpm to support drivers
of type MM_STANDALONE. It abstracts dynamic Pcd access into separate file
for different instances to avoid dynamic usage for StandaloneMm modules.
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Qi Zhang <qi1.zhang@intel.com >
Cc: Rahul Kumar <rahul1.kumar@intel.com >
Signed-off-by: Kun Qin <kun.q@outlook.com >
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com >
2021-02-01 10:03:35 -08:00
f9fd0c2108
SecurityPkg/Library/Tpm: Fix various typos
...
Fix various typos in comments and documentation.
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Chao Zhang <chao.b.zhang@intel.com >
Signed-off-by: Antoine Coeur <coeur@gmx.fr >
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
Signed-off-by: Philippe Mathieu-Daude <philmd@redhat.com >
Message-Id: <20200207010831.9046-65-philmd@redhat.com >
2020-02-10 22:30:07 +00:00
d6b926e76e
SecurityPkg: Fix spelling errors
...
https://bugzilla.tianocore.org/show_bug.cgi?id=2265
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Chao Zhang <chao.b.zhang@intel.com >
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2019-10-23 10:23:23 -07:00
289b714b77
SecurityPkg: Replace BSD License with BSD+Patent License
...
https://bugzilla.tianocore.org/show_bug.cgi?id=1373
Replace BSD 2-Clause License with BSD+Patent License. This change is
based on the following emails:
https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html
https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html
RFCs with detailed process for the license change:
V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html
V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html
V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2019-04-09 10:58:23 -07:00
631976706d
SecurityPkg: Tpm2DeviceLib: Enable CapCRBIdleBypass support
...
Directly transition from CMD completion to CMD Ready state if device
supports IdleByPass
Cc: Long Qin <qin.long@intel.com >
Cc: Yao Jiewen <jiewen.yao@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chao Zhang <chao.b.zhang@intel.com >
Reviewed-by: Long Qin <qin.long@intel.com >
2018-06-27 09:31:01 +08:00
f15cb995bb
SecurityPkg: Cache TPM interface type info
...
Cache TPM interface type info to avoid excessive interface ID register read
Cc: Long Qin <qin.long@intel.com >
Cc: Yao Jiewen <jiewen.yao@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chao Zhang <chao.b.zhang@intel.com >
Reviewed-by: Long Qin <qin.long@intel.com >
2018-06-25 10:55:08 +08:00
11cf02f6d0
SecurityPkg:Tpm2DeviceLibDTpm: Support TPM command cancel
...
Support TPM Command cancel if executing command timeouts. Cancel could
happen in long running command case
Cc: Yao Jiewen <jiewen.yao@intel.com >
Cc: Chinnusamy Rajkumar K <rajkumar.k.chinnusamy@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chao Zhang <chao.b.zhang@intel.com >
Reviewed-by: Yao Jiewen <jiewen.yao@intel.com >
2018-01-25 22:14:28 +08:00
0e47ac1535
SecurityPkg: Add Tpm2 prefix to lib to avoid conflict.
...
Tpm2Ptp.c is library, but it miss Tpm2 prefix for
IsPtpPresence() and GetPtpInterface(). There might
be risk as name symbol conflict. This patch adds Tpm2
prefix for them.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <Jiewen.Yao@intel.com >
Reviewed-by: "Zhang, Chao B" <chao.b.zhang@intel.com >
Tested-by: "Wu, Hao A" <hao.a.wu@intel.com >
2016-03-11 12:51:32 +08:00
79e748cf29
SecurityPkg: Add TPM PTP support in TPM2 device lib.
...
TPM2 hardware may support PTP FIFO/TIS interface
or PTP CRB interface. The original lib only handles
PTP FIFO/TIS interface. This patch adds PTP CRB
interface support.
The current logic is that lib will runtime detect
TPM device interface (CRB or FIFO/TIS) and call
proper function to access hardware.
It is compatible for old TPM2 FIFO/TIS device and
new TPM2 CRB device.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com >
Reviewed-by: "Zhang, Chao B" <chao.b.zhang@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19740 6f19259b-4bc3-4df7-8a09-765794883524
2016-01-26 01:29:38 +00:00