diff options
author | Zhang, Chao B <chao.b.zhang@intel.com> | 2016-09-26 10:31:15 +0800 |
---|---|---|
committer | Zhang, Chao B <chao.b.zhang@intel.com> | 2016-09-27 09:01:06 +0800 |
commit | 053f31e3d025f535af0626538f3d1a2415c67d2d (patch) | |
tree | 94a3cb1343d9b5d03b174d21c4c34c2380853301 /SecurityPkg/Tcg/Tcg2Smm | |
parent | f6be48e9907d8bb8f8534df50049ce428c38f719 (diff) | |
download | edk2-platforms-053f31e3d025f535af0626538f3d1a2415c67d2d.tar.xz |
SecurityPkg: Tcg: New field for User Confirmation Status
Add a new field in TcgNVS for PP operation user confirmation status,
instead of previous logic overriding Request. Previous logic causes
Get Pending TPM Operation Requested sub function return wrong value.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Yao Jiewen <jiewen.yao@intel.com>
Reviewed-by: Long Qin <qin.long@intel.com>
Diffstat (limited to 'SecurityPkg/Tcg/Tcg2Smm')
-rw-r--r-- | SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.c | 4 | ||||
-rw-r--r-- | SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.h | 1 | ||||
-rw-r--r-- | SecurityPkg/Tcg/Tcg2Smm/Tpm.asl | 5 |
3 files changed, 6 insertions, 4 deletions
diff --git a/SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.c b/SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.c index 19d9b489fe..f3b76418a2 100644 --- a/SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.c +++ b/SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.c @@ -135,8 +135,8 @@ PhysicalPresenceCallback ( mTcgNvs->PhysicalPresence.RequestParameter
);
} else if (mTcgNvs->PhysicalPresence.Parameter == TCG_ACPI_FUNCTION_GET_USER_CONFIRMATION_STATUS_FOR_REQUEST) {
- mTcgNvs->PhysicalPresence.ReturnCode = Tcg2PhysicalPresenceLibGetUserConfirmationStatusFunction (mTcgNvs->PhysicalPresence.Request);
- }
+ mTcgNvs->PhysicalPresence.ReturnCode = Tcg2PhysicalPresenceLibGetUserConfirmationStatusFunction (mTcgNvs->PPRequestUserConfirm);
+ }
return EFI_SUCCESS;
}
diff --git a/SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.h b/SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.h index fa77c9a89c..0b09032d63 100644 --- a/SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.h +++ b/SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.h @@ -62,6 +62,7 @@ typedef struct { typedef struct {
PHYSICAL_PRESENCE_NVS PhysicalPresence;
MEMORY_CLEAR_NVS MemoryClear;
+ UINT32 PPRequestUserConfirm;
} TCG_NVS;
typedef struct {
diff --git a/SecurityPkg/Tcg/Tcg2Smm/Tpm.asl b/SecurityPkg/Tcg/Tcg2Smm/Tpm.asl index 9ff74f76e3..84143cfce9 100644 --- a/SecurityPkg/Tcg/Tcg2Smm/Tpm.asl +++ b/SecurityPkg/Tcg/Tcg2Smm/Tpm.asl @@ -79,7 +79,8 @@ DefinitionBlock ( MCIN, 8, // Software SMI for Memory Clear Interface
MCIP, 32, // Used for save the Mor paramter
MORD, 32, // Memory Overwrite Request Data
- MRET, 32 // Memory Overwrite function return code
+ MRET, 32, // Memory Overwrite function return code
+ UCRQ, 32 // Phyical Presence request operation to Get User Confirmation Status
}
Method (PTS, 1, Serialized)
@@ -274,7 +275,7 @@ DefinitionBlock ( // e) Get User Confirmation Status for Operation
//
Store (8, PPIP)
- Store (DerefOf (Index (Arg2, 0x00)), PPRQ)
+ Store (DerefOf (Index (Arg2, 0x00)), UCRQ)
//
// Triggle the SMI interrupt
|