mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-23 13:44:33 +02:00
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>
This commit is contained in:
parent
f6be48e990
commit
053f31e3d0
@ -135,7 +135,7 @@ PhysicalPresenceCallback (
|
|||||||
mTcgNvs->PhysicalPresence.RequestParameter
|
mTcgNvs->PhysicalPresence.RequestParameter
|
||||||
);
|
);
|
||||||
} else if (mTcgNvs->PhysicalPresence.Parameter == TCG_ACPI_FUNCTION_GET_USER_CONFIRMATION_STATUS_FOR_REQUEST) {
|
} 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;
|
return EFI_SUCCESS;
|
||||||
|
@ -62,6 +62,7 @@ typedef struct {
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
PHYSICAL_PRESENCE_NVS PhysicalPresence;
|
PHYSICAL_PRESENCE_NVS PhysicalPresence;
|
||||||
MEMORY_CLEAR_NVS MemoryClear;
|
MEMORY_CLEAR_NVS MemoryClear;
|
||||||
|
UINT32 PPRequestUserConfirm;
|
||||||
} TCG_NVS;
|
} TCG_NVS;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -79,7 +79,8 @@ DefinitionBlock (
|
|||||||
MCIN, 8, // Software SMI for Memory Clear Interface
|
MCIN, 8, // Software SMI for Memory Clear Interface
|
||||||
MCIP, 32, // Used for save the Mor paramter
|
MCIP, 32, // Used for save the Mor paramter
|
||||||
MORD, 32, // Memory Overwrite Request Data
|
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)
|
Method (PTS, 1, Serialized)
|
||||||
@ -274,7 +275,7 @@ DefinitionBlock (
|
|||||||
// e) Get User Confirmation Status for Operation
|
// e) Get User Confirmation Status for Operation
|
||||||
//
|
//
|
||||||
Store (8, PPIP)
|
Store (8, PPIP)
|
||||||
Store (DerefOf (Index (Arg2, 0x00)), PPRQ)
|
Store (DerefOf (Index (Arg2, 0x00)), UCRQ)
|
||||||
|
|
||||||
//
|
//
|
||||||
// Triggle the SMI interrupt
|
// Triggle the SMI interrupt
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
PhysicalPresenceCallback() and MemoryClearCallback() will receive untrusted input and do some check.
|
PhysicalPresenceCallback() and MemoryClearCallback() will receive untrusted input and do some check.
|
||||||
|
|
||||||
Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -152,7 +152,7 @@ PhysicalPresenceCallback (
|
|||||||
|
|
||||||
RequestConfirmed = FALSE;
|
RequestConfirmed = FALSE;
|
||||||
|
|
||||||
switch (mTcgNvs->PhysicalPresence.Request) {
|
switch (mTcgNvs->PPRequestUserConfirm) {
|
||||||
case PHYSICAL_PRESENCE_ENABLE:
|
case PHYSICAL_PRESENCE_ENABLE:
|
||||||
case PHYSICAL_PRESENCE_DISABLE:
|
case PHYSICAL_PRESENCE_DISABLE:
|
||||||
case PHYSICAL_PRESENCE_ACTIVATE:
|
case PHYSICAL_PRESENCE_ACTIVATE:
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/** @file
|
/** @file
|
||||||
The header file for TCG SMM driver.
|
The header file for TCG SMM driver.
|
||||||
|
|
||||||
Copyright (c) 2012 - 2015, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2012 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -58,6 +58,7 @@ typedef struct {
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
PHYSICAL_PRESENCE_NVS PhysicalPresence;
|
PHYSICAL_PRESENCE_NVS PhysicalPresence;
|
||||||
MEMORY_CLEAR_NVS MemoryClear;
|
MEMORY_CLEAR_NVS MemoryClear;
|
||||||
|
UINT32 PPRequestUserConfirm;
|
||||||
} TCG_NVS;
|
} TCG_NVS;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
The TPM definition block in ACPI table for physical presence
|
The TPM definition block in ACPI table for physical presence
|
||||||
and MemoryClear.
|
and MemoryClear.
|
||||||
|
|
||||||
Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -78,7 +78,8 @@ DefinitionBlock (
|
|||||||
MCIN, 8, // Software SMI for Memory Clear Interface
|
MCIN, 8, // Software SMI for Memory Clear Interface
|
||||||
MCIP, 32, // Used for save the Mor paramter
|
MCIP, 32, // Used for save the Mor paramter
|
||||||
MORD, 32, // Memory Overwrite Request Data
|
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)
|
Method (PTS, 1, Serialized)
|
||||||
@ -269,7 +270,7 @@ DefinitionBlock (
|
|||||||
// e) Get User Confirmation Status for Operation
|
// e) Get User Confirmation Status for Operation
|
||||||
//
|
//
|
||||||
Store (8, PPIP)
|
Store (8, PPIP)
|
||||||
Store (DerefOf (Index (Arg2, 0x00)), PPRQ)
|
Store (DerefOf (Index (Arg2, 0x00)), UCRQ)
|
||||||
|
|
||||||
//
|
//
|
||||||
// Triggle the SMI interrupt
|
// Triggle the SMI interrupt
|
||||||
|
Loading…
x
Reference in New Issue
Block a user