mirror of https://github.com/acidanthera/audk.git
Implement Tcg physical presence as a library instead of DXE driver in order that TPM can be locked as early as possible.
Signed-off-by: gdong1 Reviewed-by: hhtian Reviewed-by: niruiyu Reviewed-by: xdu2 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12447 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
f00237c1d2
commit
607599bf3d
|
@ -40,35 +40,32 @@ typedef struct {
|
||||||
#define FLAG_NO_PPI_MAINTENANCE BIT2
|
#define FLAG_NO_PPI_MAINTENANCE BIT2
|
||||||
#define FLAG_RESET_TRACK BIT3
|
#define FLAG_RESET_TRACK BIT3
|
||||||
|
|
||||||
#define H2NS(x) ((((x) << 8) | ((x) >> 8)) & 0xffff)
|
|
||||||
#define H2NL(x) (H2NS ((x) >> 16) | (H2NS ((x) & 0xffff) << 16))
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// The definition of physical presence operation actions
|
// The definition of physical presence operation actions
|
||||||
//
|
//
|
||||||
#define NO_ACTION 0
|
#define PHYSICAL_PRESENCE_NO_ACTION 0
|
||||||
#define ENABLE 1
|
#define PHYSICAL_PRESENCE_ENABLE 1
|
||||||
#define DISABLE 2
|
#define PHYSICAL_PRESENCE_DISABLE 2
|
||||||
#define ACTIVATE 3
|
#define PHYSICAL_PRESENCE_ACTIVATE 3
|
||||||
#define DEACTIVATE 4
|
#define PHYSICAL_PRESENCE_DEACTIVATE 4
|
||||||
#define CLEAR 5
|
#define PHYSICAL_PRESENCE_CLEAR 5
|
||||||
#define ENABLE_ACTIVATE 6
|
#define PHYSICAL_PRESENCE_ENABLE_ACTIVATE 6
|
||||||
#define DEACTIVATE_DISABLE 7
|
#define PHYSICAL_PRESENCE_DEACTIVATE_DISABLE 7
|
||||||
#define SET_OWNER_INSTALL_TRUE 8
|
#define PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE 8
|
||||||
#define SET_OWNER_INSTALL_FALSE 9
|
#define PHYSICAL_PRESENCE_SET_OWNER_INSTALL_FALSE 9
|
||||||
#define ENABLE_ACTIVATE_OWNER_TRUE 10
|
#define PHYSICAL_PRESENCE_ENABLE_ACTIVATE_OWNER_TRUE 10
|
||||||
#define DEACTIVATE_DISABLE_OWNER_FALSE 11
|
#define PHYSICAL_PRESENCE_DEACTIVATE_DISABLE_OWNER_FALSE 11
|
||||||
#define DEFERRED_PP_UNOWNERED_FIELD_UPGRADE 12
|
#define PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE 12
|
||||||
#define SET_OPERATOR_AUTH 13
|
#define PHYSICAL_PRESENCE_SET_OPERATOR_AUTH 13
|
||||||
#define CLEAR_ENABLE_ACTIVATE 14
|
#define PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE 14
|
||||||
#define SET_NO_PPI_PROVISION_FALSE 15
|
#define PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_FALSE 15
|
||||||
#define SET_NO_PPI_PROVISION_TRUE 16
|
#define PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_TRUE 16
|
||||||
#define SET_NO_PPI_CLEAR_FALSE 17
|
#define PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_FALSE 17
|
||||||
#define SET_NO_PPI_CLEAR_TRUE 18
|
#define PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_TRUE 18
|
||||||
#define SET_NO_PPI_MAINTENANCE_FALSE 19
|
#define PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_FALSE 19
|
||||||
#define SET_NO_PPI_MAINTENANCE_TRUE 20
|
#define PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_TRUE 20
|
||||||
#define ENABLE_ACTIVATE_CLEAR 21
|
#define PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR 21
|
||||||
#define ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE 22
|
#define PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE 22
|
||||||
|
|
||||||
extern EFI_GUID gEfiPhysicalPresenceGuid;
|
extern EFI_GUID gEfiPhysicalPresenceGuid;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
/** @file
|
||||||
|
Ihis library is intended to be used by BDS modules.
|
||||||
|
This library will lock TPM after executing TPM request.
|
||||||
|
|
||||||
|
Copyright (c) 2011, 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
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef _TCG_PHYSICAL_PRESENCE_LIB_H_
|
||||||
|
#define _TCG_PHYSICAL_PRESENCE_LIB_H_
|
||||||
|
|
||||||
|
/**
|
||||||
|
Check and execute the pending TPM request and Lock TPM.
|
||||||
|
|
||||||
|
The TPM request may come from OS or BIOS. This API will display request information and wait
|
||||||
|
for user confirmation if TPM request exists. The TPM request will be sent to TPM device after
|
||||||
|
the TPM request is confirmed, and one or more reset may be required to make TPM request to
|
||||||
|
take effect. At last, it will lock TPM to prevent TPM state change by malware.
|
||||||
|
|
||||||
|
This API should be invoked after console in and console out are all ready as they are required
|
||||||
|
to display request information and get user input to confirm the request. This API should also
|
||||||
|
be invoked as early as possible as TPM is locked in this function.
|
||||||
|
|
||||||
|
**/
|
||||||
|
VOID
|
||||||
|
EFIAPI
|
||||||
|
TcgPhysicalPresenceLibProcessRequest (
|
||||||
|
VOID
|
||||||
|
);
|
||||||
|
|
||||||
|
#endif
|
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,8 @@
|
||||||
## @file
|
## @file
|
||||||
# Component file for PhysicalPresenceDxe driver.
|
# TCG physical presence library instance. This library will lock
|
||||||
|
# TPM after executing TPM request.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
# Copyright (c) 2009 - 2011, 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
|
||||||
|
@ -13,22 +14,21 @@
|
||||||
|
|
||||||
[Defines]
|
[Defines]
|
||||||
INF_VERSION = 0x00010005
|
INF_VERSION = 0x00010005
|
||||||
BASE_NAME = PhysicalPresenceDxe
|
BASE_NAME = DxeTcgPhysicalPresenceLib
|
||||||
FILE_GUID = D85A4A0C-2E73-4491-92E1-DCEFC3882A68
|
FILE_GUID = EBC43A46-34AC-4F07-A7F5-A5394619361C
|
||||||
MODULE_TYPE = DXE_DRIVER
|
MODULE_TYPE = DXE_DRIVER
|
||||||
VERSION_STRING = 1.0
|
VERSION_STRING = 1.0
|
||||||
|
LIBRARY_CLASS = TcgPhysicalPresenceLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER UEFI_APPLICATION UEFI_DRIVER
|
||||||
ENTRY_POINT = DriverEntry
|
CONSTRUCTOR = TcgPhysicalPresenceLibConstructor
|
||||||
|
|
||||||
#
|
#
|
||||||
# The following information is for reference only and not required by the build tools.
|
# The following information is for reference only and not required by the build tools.
|
||||||
#
|
#
|
||||||
# VALID_ARCHITECTURES = IA32 X64 IPF
|
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
|
||||||
#
|
#
|
||||||
|
|
||||||
[Sources]
|
[Sources]
|
||||||
PhysicalPresence.c
|
DxeTcgPhysicalPresenceLib.c
|
||||||
PhysicalPresence.h
|
|
||||||
PhysicalPresenceStrings.uni
|
PhysicalPresenceStrings.uni
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
|
@ -52,10 +52,3 @@
|
||||||
|
|
||||||
[Guids]
|
[Guids]
|
||||||
gEfiPhysicalPresenceGuid
|
gEfiPhysicalPresenceGuid
|
||||||
|
|
||||||
[Depex]
|
|
||||||
gEfiTcgProtocolGuid AND
|
|
||||||
gEfiVariableArchProtocolGuid AND
|
|
||||||
gEfiVariableWriteArchProtocolGuid AND
|
|
||||||
gEfiResetArchProtocolGuid
|
|
||||||
|
|
Binary file not shown.
|
@ -50,6 +50,7 @@
|
||||||
IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
|
IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
|
||||||
TpmCommLib|SecurityPkg/Library/TpmCommLib/TpmCommLib.inf
|
TpmCommLib|SecurityPkg/Library/TpmCommLib/TpmCommLib.inf
|
||||||
PlatformSecureLib|SecurityPkg/Library/PlatformSecureLibNull/PlatformSecureLibNull.inf
|
PlatformSecureLib|SecurityPkg/Library/PlatformSecureLibNull/PlatformSecureLibNull.inf
|
||||||
|
TcgPhysicalPresenceLib|SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.inf
|
||||||
|
|
||||||
[LibraryClasses.common.PEIM]
|
[LibraryClasses.common.PEIM]
|
||||||
PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
|
PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
|
||||||
|
@ -95,7 +96,6 @@
|
||||||
SecurityPkg/Tcg/TcgPei/TcgPei.inf
|
SecurityPkg/Tcg/TcgPei/TcgPei.inf
|
||||||
SecurityPkg/Tcg/TcgDxe/TcgDxe.inf
|
SecurityPkg/Tcg/TcgDxe/TcgDxe.inf
|
||||||
SecurityPkg/Tcg/PhysicalPresencePei/PhysicalPresencePei.inf
|
SecurityPkg/Tcg/PhysicalPresencePei/PhysicalPresencePei.inf
|
||||||
SecurityPkg/Tcg/PhysicalPresenceDxe/PhysicalPresenceDxe.inf
|
|
||||||
SecurityPkg/Tcg/MemoryOverwriteControl/TcgMor.inf
|
SecurityPkg/Tcg/MemoryOverwriteControl/TcgMor.inf
|
||||||
SecurityPkg/Tcg/TcgConfigDxe/TcgConfigDxe.inf {
|
SecurityPkg/Tcg/TcgConfigDxe/TcgConfigDxe.inf {
|
||||||
<LibraryClasses>
|
<LibraryClasses>
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
/** @file
|
|
||||||
The header file for TPM physical presence driver.
|
|
||||||
|
|
||||||
Copyright (c) 2006 - 2011, 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
|
|
||||||
http://opensource.org/licenses/bsd-license.php
|
|
||||||
|
|
||||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#ifndef __PHYSICAL_PRESENCE_H__
|
|
||||||
#define __PHYSICAL_PRESENCE_H__
|
|
||||||
|
|
||||||
#include <PiDxe.h>
|
|
||||||
|
|
||||||
#include <Protocol/TcgService.h>
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
#include <Library/BaseMemoryLib.h>
|
|
||||||
#include <Library/UefiRuntimeServicesTableLib.h>
|
|
||||||
#include <Library/UefiDriverEntryPoint.h>
|
|
||||||
#include <Library/UefiBootServicesTableLib.h>
|
|
||||||
#include <Library/UefiLib.h>
|
|
||||||
#include <Library/MemoryAllocationLib.h>
|
|
||||||
#include <Library/PrintLib.h>
|
|
||||||
#include <Library/HiiLib.h>
|
|
||||||
#include <Guid/EventGroup.h>
|
|
||||||
#include <Guid/PhysicalPresenceData.h>
|
|
||||||
|
|
||||||
#define TPM_PP_USER_ABORT ((TPM_RESULT)(-0x10))
|
|
||||||
#define TPM_PP_BIOS_FAILURE ((TPM_RESULT)(-0x0f))
|
|
||||||
|
|
||||||
#define CONFIRM_BUFFER_SIZE 4096
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -80,24 +80,24 @@ formset
|
||||||
// Activate/deactivate (TPM_ORD_physicalSetDeactivated) command is not available when disabled.
|
// Activate/deactivate (TPM_ORD_physicalSetDeactivated) command is not available when disabled.
|
||||||
//
|
//
|
||||||
suppressif ideqval TCG_CONFIGURATION.TpmEnable == 0;
|
suppressif ideqval TCG_CONFIGURATION.TpmEnable == 0;
|
||||||
option text = STRING_TOKEN(STR_DISABLE), value = DISABLE, flags = 0;
|
option text = STRING_TOKEN(STR_DISABLE), value = PHYSICAL_PRESENCE_DISABLE, flags = 0;
|
||||||
option text = STRING_TOKEN(STR_TPM_ACTIVATE), value = ACTIVATE, flags = 0;
|
option text = STRING_TOKEN(STR_TPM_ACTIVATE), value = PHYSICAL_PRESENCE_ACTIVATE, flags = 0;
|
||||||
option text = STRING_TOKEN(STR_TPM_DEACTIVATE), value = DEACTIVATE, flags = 0;
|
option text = STRING_TOKEN(STR_TPM_DEACTIVATE), value = PHYSICAL_PRESENCE_DEACTIVATE, flags = 0;
|
||||||
option text = STRING_TOKEN(STR_TPM_DEACTIVATE_DISABLE), value = DEACTIVATE_DISABLE, flags = 0;
|
option text = STRING_TOKEN(STR_TPM_DEACTIVATE_DISABLE), value = PHYSICAL_PRESENCE_DEACTIVATE_DISABLE, flags = 0;
|
||||||
endif
|
endif
|
||||||
//
|
//
|
||||||
// Clear (TPM_ORD_ForceClear) command is not available when disabled or deactivated.
|
// Clear (TPM_ORD_ForceClear) command is not available when disabled or deactivated.
|
||||||
//
|
//
|
||||||
suppressif ideqval TCG_CONFIGURATION.TpmEnable == 0 OR
|
suppressif ideqval TCG_CONFIGURATION.TpmEnable == 0 OR
|
||||||
ideqval TCG_CONFIGURATION.TpmActivate == 0;
|
ideqval TCG_CONFIGURATION.TpmActivate == 0;
|
||||||
option text = STRING_TOKEN(STR_TPM_CLEAR), value = CLEAR, flags = 0;
|
option text = STRING_TOKEN(STR_TPM_CLEAR), value = PHYSICAL_PRESENCE_CLEAR, flags = 0;
|
||||||
option text = STRING_TOKEN(STR_TPM_CLEAR_ENABLE_ACTIVATE), value = CLEAR_ENABLE_ACTIVATE, flags = 0;
|
option text = STRING_TOKEN(STR_TPM_CLEAR_ENABLE_ACTIVATE), value = PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE, flags = 0;
|
||||||
endif
|
endif
|
||||||
|
|
||||||
option text = STRING_TOKEN(STR_ENABLE), value = ENABLE, flags = 0;
|
option text = STRING_TOKEN(STR_ENABLE), value = PHYSICAL_PRESENCE_ENABLE, flags = 0;
|
||||||
option text = STRING_TOKEN(STR_TPM_ENABLE_ACTIVATE), value = ENABLE_ACTIVATE, flags = 0;
|
option text = STRING_TOKEN(STR_TPM_ENABLE_ACTIVATE), value = PHYSICAL_PRESENCE_ENABLE_ACTIVATE, flags = 0;
|
||||||
option text = STRING_TOKEN(STR_TPM_ENABLE_ACTIVATE_CLEAR), value = ENABLE_ACTIVATE_CLEAR, flags = 0;
|
option text = STRING_TOKEN(STR_TPM_ENABLE_ACTIVATE_CLEAR), value = PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR, flags = 0;
|
||||||
option text = STRING_TOKEN(STR_TPM_ENABLE_ACTIVATE_CLEAR_E_A), value = ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE, flags = 0;
|
option text = STRING_TOKEN(STR_TPM_ENABLE_ACTIVATE_CLEAR_E_A), value = PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE, flags = 0;
|
||||||
endoneof;
|
endoneof;
|
||||||
|
|
||||||
subtitle text = STRING_TOKEN(STR_NULL);
|
subtitle text = STRING_TOKEN(STR_NULL);
|
||||||
|
|
|
@ -79,13 +79,13 @@ GetTpmState (
|
||||||
//
|
//
|
||||||
if ((TpmEnable != NULL) || (TpmActivate != NULL)) {
|
if ((TpmEnable != NULL) || (TpmActivate != NULL)) {
|
||||||
TpmSendSize = sizeof (TPM_RQU_COMMAND_HDR) + sizeof (UINT32) * 3;
|
TpmSendSize = sizeof (TPM_RQU_COMMAND_HDR) + sizeof (UINT32) * 3;
|
||||||
*(UINT16*)&CmdBuf[0] = H2NS (TPM_TAG_RQU_COMMAND);
|
*(UINT16*)&CmdBuf[0] = SwapBytes16 (TPM_TAG_RQU_COMMAND);
|
||||||
*(UINT32*)&CmdBuf[2] = H2NL (TpmSendSize);
|
*(UINT32*)&CmdBuf[2] = SwapBytes32 (TpmSendSize);
|
||||||
*(UINT32*)&CmdBuf[6] = H2NL (TPM_ORD_GetCapability);
|
*(UINT32*)&CmdBuf[6] = SwapBytes32 (TPM_ORD_GetCapability);
|
||||||
|
|
||||||
*(UINT32*)&CmdBuf[10] = H2NL (TPM_CAP_FLAG);
|
*(UINT32*)&CmdBuf[10] = SwapBytes32 (TPM_CAP_FLAG);
|
||||||
*(UINT32*)&CmdBuf[14] = H2NL (sizeof (TPM_CAP_FLAG_PERMANENT));
|
*(UINT32*)&CmdBuf[14] = SwapBytes32 (sizeof (TPM_CAP_FLAG_PERMANENT));
|
||||||
*(UINT32*)&CmdBuf[18] = H2NL (TPM_CAP_FLAG_PERMANENT);
|
*(UINT32*)&CmdBuf[18] = SwapBytes32 (TPM_CAP_FLAG_PERMANENT);
|
||||||
|
|
||||||
Status = TcgProtocol->PassThroughToTpm (
|
Status = TcgProtocol->PassThroughToTpm (
|
||||||
TcgProtocol,
|
TcgProtocol,
|
||||||
|
@ -95,7 +95,7 @@ GetTpmState (
|
||||||
CmdBuf
|
CmdBuf
|
||||||
);
|
);
|
||||||
TpmRsp = (TPM_RSP_COMMAND_HDR *) &CmdBuf[0];
|
TpmRsp = (TPM_RSP_COMMAND_HDR *) &CmdBuf[0];
|
||||||
if (EFI_ERROR (Status) || (TpmRsp->tag != H2NS (TPM_TAG_RSP_COMMAND)) || (TpmRsp->returnCode != 0)) {
|
if (EFI_ERROR (Status) || (TpmRsp->tag != SwapBytes16 (TPM_TAG_RSP_COMMAND)) || (TpmRsp->returnCode != 0)) {
|
||||||
return EFI_DEVICE_ERROR;
|
return EFI_DEVICE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -182,7 +182,7 @@ TcgExtractConfig (
|
||||||
ZeroMem (&Configuration, sizeof (TCG_CONFIGURATION));
|
ZeroMem (&Configuration, sizeof (TCG_CONFIGURATION));
|
||||||
|
|
||||||
Configuration.MorState = PcdGetBool (PcdMorEnable);
|
Configuration.MorState = PcdGetBool (PcdMorEnable);
|
||||||
Configuration.TpmOperation = ENABLE;
|
Configuration.TpmOperation = PHYSICAL_PRESENCE_ENABLE;
|
||||||
Configuration.HideTpm = (BOOLEAN) (PcdGetBool (PcdHideTpmSupport) && PcdGetBool (PcdHideTpm));
|
Configuration.HideTpm = (BOOLEAN) (PcdGetBool (PcdHideTpmSupport) && PcdGetBool (PcdHideTpm));
|
||||||
//
|
//
|
||||||
// Read the original value of HideTpm from PrivateData which won't be changed by Setup in this boot.
|
// Read the original value of HideTpm from PrivateData which won't be changed by Setup in this boot.
|
||||||
|
|
|
@ -128,7 +128,7 @@ PhysicalPresenceCallback (
|
||||||
// Submit TPM Operation Request to Pre-OS Environment
|
// Submit TPM Operation Request to Pre-OS Environment
|
||||||
//
|
//
|
||||||
|
|
||||||
if (mTcgNvs->PhysicalPresence.Request == SET_OPERATOR_AUTH) {
|
if (mTcgNvs->PhysicalPresence.Request == PHYSICAL_PRESENCE_SET_OPERATOR_AUTH) {
|
||||||
//
|
//
|
||||||
// This command requires UI to prompt user for Auth data, NOT implemented.
|
// This command requires UI to prompt user for Auth data, NOT implemented.
|
||||||
//
|
//
|
||||||
|
@ -164,49 +164,49 @@ PhysicalPresenceCallback (
|
||||||
RequestConfirmed = FALSE;
|
RequestConfirmed = FALSE;
|
||||||
|
|
||||||
switch (mTcgNvs->PhysicalPresence.Request) {
|
switch (mTcgNvs->PhysicalPresence.Request) {
|
||||||
case ENABLE:
|
case PHYSICAL_PRESENCE_ENABLE:
|
||||||
case DISABLE:
|
case PHYSICAL_PRESENCE_DISABLE:
|
||||||
case ACTIVATE:
|
case PHYSICAL_PRESENCE_ACTIVATE:
|
||||||
case DEACTIVATE:
|
case PHYSICAL_PRESENCE_DEACTIVATE:
|
||||||
case ENABLE_ACTIVATE:
|
case PHYSICAL_PRESENCE_ENABLE_ACTIVATE:
|
||||||
case DEACTIVATE_DISABLE:
|
case PHYSICAL_PRESENCE_DEACTIVATE_DISABLE:
|
||||||
case SET_OWNER_INSTALL_TRUE:
|
case PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE:
|
||||||
case SET_OWNER_INSTALL_FALSE:
|
case PHYSICAL_PRESENCE_SET_OWNER_INSTALL_FALSE:
|
||||||
case ENABLE_ACTIVATE_OWNER_TRUE:
|
case PHYSICAL_PRESENCE_ENABLE_ACTIVATE_OWNER_TRUE:
|
||||||
case DEACTIVATE_DISABLE_OWNER_FALSE:
|
case PHYSICAL_PRESENCE_DEACTIVATE_DISABLE_OWNER_FALSE:
|
||||||
if ((Flags & FLAG_NO_PPI_PROVISION) != 0) {
|
if ((Flags & FLAG_NO_PPI_PROVISION) != 0) {
|
||||||
RequestConfirmed = TRUE;
|
RequestConfirmed = TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CLEAR:
|
case PHYSICAL_PRESENCE_CLEAR:
|
||||||
case ENABLE_ACTIVATE_CLEAR:
|
case PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR:
|
||||||
if ((Flags & FLAG_NO_PPI_CLEAR) != 0) {
|
if ((Flags & FLAG_NO_PPI_CLEAR) != 0) {
|
||||||
RequestConfirmed = TRUE;
|
RequestConfirmed = TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DEFERRED_PP_UNOWNERED_FIELD_UPGRADE:
|
case PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE:
|
||||||
if ((Flags & FLAG_NO_PPI_MAINTENANCE) != 0) {
|
if ((Flags & FLAG_NO_PPI_MAINTENANCE) != 0) {
|
||||||
RequestConfirmed = TRUE;
|
RequestConfirmed = TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE:
|
case PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE:
|
||||||
case CLEAR_ENABLE_ACTIVATE:
|
case PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE:
|
||||||
if ((Flags & FLAG_NO_PPI_CLEAR) != 0 && (Flags & FLAG_NO_PPI_PROVISION) != 0) {
|
if ((Flags & FLAG_NO_PPI_CLEAR) != 0 && (Flags & FLAG_NO_PPI_PROVISION) != 0) {
|
||||||
RequestConfirmed = TRUE;
|
RequestConfirmed = TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SET_NO_PPI_PROVISION_FALSE:
|
case PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_FALSE:
|
||||||
case SET_NO_PPI_CLEAR_FALSE:
|
case PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_FALSE:
|
||||||
case SET_NO_PPI_MAINTENANCE_FALSE:
|
case PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_FALSE:
|
||||||
case NO_ACTION:
|
case PHYSICAL_PRESENCE_NO_ACTION:
|
||||||
RequestConfirmed = TRUE;
|
RequestConfirmed = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SET_OPERATOR_AUTH:
|
case PHYSICAL_PRESENCE_SET_OPERATOR_AUTH:
|
||||||
//
|
//
|
||||||
// This command requires UI to prompt user for Auth data
|
// This command requires UI to prompt user for Auth data
|
||||||
// Here it is NOT implemented
|
// Here it is NOT implemented
|
||||||
|
|
Loading…
Reference in New Issue