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>
mTcgNvs->PhysicalPresence.RequestParameter\r
);\r
} else if (mTcgNvs->PhysicalPresence.Parameter == TCG_ACPI_FUNCTION_GET_USER_CONFIRMATION_STATUS_FOR_REQUEST) {\r
mTcgNvs->PhysicalPresence.RequestParameter\r
);\r
} else if (mTcgNvs->PhysicalPresence.Parameter == TCG_ACPI_FUNCTION_GET_USER_CONFIRMATION_STATUS_FOR_REQUEST) {\r
- mTcgNvs->PhysicalPresence.ReturnCode = Tcg2PhysicalPresenceLibGetUserConfirmationStatusFunction (mTcgNvs->PhysicalPresence.Request);\r
- } \r
+ mTcgNvs->PhysicalPresence.ReturnCode = Tcg2PhysicalPresenceLibGetUserConfirmationStatusFunction (mTcgNvs->PPRequestUserConfirm);\r
+ }\r
\r
return EFI_SUCCESS;\r
}\r
\r
return EFI_SUCCESS;\r
}\r
typedef struct {\r
PHYSICAL_PRESENCE_NVS PhysicalPresence;\r
MEMORY_CLEAR_NVS MemoryClear;\r
typedef struct {\r
PHYSICAL_PRESENCE_NVS PhysicalPresence;\r
MEMORY_CLEAR_NVS MemoryClear;\r
+ UINT32 PPRequestUserConfirm;\r
} TCG_NVS;\r
\r
typedef struct {\r
} TCG_NVS;\r
\r
typedef struct {\r
MCIN, 8, // Software SMI for Memory Clear Interface\r
MCIP, 32, // Used for save the Mor paramter\r
MORD, 32, // Memory Overwrite Request Data\r
MCIN, 8, // Software SMI for Memory Clear Interface\r
MCIP, 32, // Used for save the Mor paramter\r
MORD, 32, // Memory Overwrite Request Data\r
- MRET, 32 // Memory Overwrite function return code\r
+ MRET, 32, // Memory Overwrite function return code\r
+ UCRQ, 32 // Phyical Presence request operation to Get User Confirmation Status \r
}\r
\r
Method (PTS, 1, Serialized)\r
}\r
\r
Method (PTS, 1, Serialized)\r
// e) Get User Confirmation Status for Operation\r
//\r
Store (8, PPIP)\r
// e) Get User Confirmation Status for Operation\r
//\r
Store (8, PPIP)\r
- Store (DerefOf (Index (Arg2, 0x00)), PPRQ)\r
+ Store (DerefOf (Index (Arg2, 0x00)), UCRQ)\r
\r
//\r
// Triggle the SMI interrupt\r
\r
//\r
// Triggle the SMI interrupt\r
\r
PhysicalPresenceCallback() and MemoryClearCallback() will receive untrusted input and do some check.\r
\r
\r
PhysicalPresenceCallback() and MemoryClearCallback() will receive untrusted input and do some check.\r
\r
-Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
\r
RequestConfirmed = FALSE;\r
\r
\r
RequestConfirmed = FALSE;\r
\r
- switch (mTcgNvs->PhysicalPresence.Request) {\r
+ switch (mTcgNvs->PPRequestUserConfirm) {\r
case PHYSICAL_PRESENCE_ENABLE:\r
case PHYSICAL_PRESENCE_DISABLE:\r
case PHYSICAL_PRESENCE_ACTIVATE:\r
case PHYSICAL_PRESENCE_ENABLE:\r
case PHYSICAL_PRESENCE_DISABLE:\r
case PHYSICAL_PRESENCE_ACTIVATE:\r
/** @file\r
The header file for TCG SMM driver.\r
\r
/** @file\r
The header file for TCG SMM driver.\r
\r
-Copyright (c) 2012 - 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2012 - 2016, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
typedef struct {\r
PHYSICAL_PRESENCE_NVS PhysicalPresence;\r
MEMORY_CLEAR_NVS MemoryClear;\r
typedef struct {\r
PHYSICAL_PRESENCE_NVS PhysicalPresence;\r
MEMORY_CLEAR_NVS MemoryClear;\r
+ UINT32 PPRequestUserConfirm;\r
} TCG_NVS;\r
\r
typedef struct {\r
} TCG_NVS;\r
\r
typedef struct {\r
The TPM definition block in ACPI table for physical presence \r
and MemoryClear.\r
\r
The TPM definition block in ACPI table for physical presence \r
and MemoryClear.\r
\r
-Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
MCIN, 8, // Software SMI for Memory Clear Interface\r
MCIP, 32, // Used for save the Mor paramter\r
MORD, 32, // Memory Overwrite Request Data\r
MCIN, 8, // Software SMI for Memory Clear Interface\r
MCIP, 32, // Used for save the Mor paramter\r
MORD, 32, // Memory Overwrite Request Data\r
- MRET, 32 // Memory Overwrite function return code\r
+ MRET, 32, // Memory Overwrite function return code\r
+ UCRQ, 32 // Phyical Presence request operation to Get User Confirmation Status \r
}\r
\r
Method (PTS, 1, Serialized)\r
}\r
\r
Method (PTS, 1, Serialized)\r
// e) Get User Confirmation Status for Operation\r
//\r
Store (8, PPIP)\r
// e) Get User Confirmation Status for Operation\r
//\r
Store (8, PPIP)\r
- Store (DerefOf (Index (Arg2, 0x00)), PPRQ)\r
+ Store (DerefOf (Index (Arg2, 0x00)), UCRQ)\r
\r
//\r
// Triggle the SMI interrupt\r
\r
//\r
// Triggle the SMI interrupt\r