#include <Guid/PhysicalPresenceData.h>\r
#include <Library/TcgPpVendorLib.h>\r
\r
-#define CONFIRM_BUFFER_SIZE 4096\r
+#define CONFIRM_BUFFER_SIZE 4096\r
\r
-EFI_HII_HANDLE mPpStringPackHandle;\r
+EFI_HII_HANDLE mPpStringPackHandle;\r
\r
/**\r
Get string by string id from HII Interface.\r
**/\r
CHAR16 *\r
PhysicalPresenceGetStringById (\r
- IN EFI_STRING_ID Id\r
+ IN EFI_STRING_ID Id\r
)\r
{\r
return HiiGetString (mPpStringPackHandle, Id, NULL);\r
**/\r
EFI_STATUS\r
GetTpmCapability (\r
- IN EFI_TCG_PROTOCOL *TcgProtocol,\r
- OUT BOOLEAN *LifetimeLock,\r
- OUT BOOLEAN *CmdEnable\r
+ IN EFI_TCG_PROTOCOL *TcgProtocol,\r
+ OUT BOOLEAN *LifetimeLock,\r
+ OUT BOOLEAN *CmdEnable\r
)\r
{\r
- EFI_STATUS Status;\r
- TPM_RQU_COMMAND_HDR *TpmRqu;\r
- TPM_RSP_COMMAND_HDR *TpmRsp;\r
- UINT32 *SendBufPtr;\r
- UINT8 SendBuffer[sizeof (*TpmRqu) + sizeof (UINT32) * 3];\r
- TPM_PERMANENT_FLAGS *TpmPermanentFlags;\r
- UINT8 RecvBuffer[40];\r
+ EFI_STATUS Status;\r
+ TPM_RQU_COMMAND_HDR *TpmRqu;\r
+ TPM_RSP_COMMAND_HDR *TpmRsp;\r
+ UINT32 *SendBufPtr;\r
+ UINT8 SendBuffer[sizeof (*TpmRqu) + sizeof (UINT32) * 3];\r
+ TPM_PERMANENT_FLAGS *TpmPermanentFlags;\r
+ UINT8 RecvBuffer[40];\r
\r
//\r
// Fill request header\r
//\r
- TpmRsp = (TPM_RSP_COMMAND_HDR*)RecvBuffer;\r
- TpmRqu = (TPM_RQU_COMMAND_HDR*)SendBuffer;\r
+ TpmRsp = (TPM_RSP_COMMAND_HDR *)RecvBuffer;\r
+ TpmRqu = (TPM_RQU_COMMAND_HDR *)SendBuffer;\r
\r
TpmRqu->tag = SwapBytes16 (TPM_TAG_RQU_COMMAND);\r
TpmRqu->paramSize = SwapBytes32 (sizeof (SendBuffer));\r
//\r
// Set request parameter\r
//\r
- SendBufPtr = (UINT32*)(TpmRqu + 1);\r
+ SendBufPtr = (UINT32 *)(TpmRqu + 1);\r
WriteUnaligned32 (SendBufPtr++, SwapBytes32 (TPM_CAP_FLAG));\r
WriteUnaligned32 (SendBufPtr++, SwapBytes32 (sizeof (TPM_CAP_FLAG_PERMANENT)));\r
WriteUnaligned32 (SendBufPtr, SwapBytes32 (TPM_CAP_FLAG_PERMANENT));\r
Status = TcgProtocol->PassThroughToTpm (\r
TcgProtocol,\r
sizeof (SendBuffer),\r
- (UINT8*)TpmRqu,\r
+ (UINT8 *)TpmRqu,\r
sizeof (RecvBuffer),\r
- (UINT8*)&RecvBuffer\r
+ (UINT8 *)&RecvBuffer\r
);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
**/\r
EFI_STATUS\r
TpmPhysicalPresence (\r
- IN EFI_TCG_PROTOCOL *TcgProtocol,\r
- IN TPM_PHYSICAL_PRESENCE PhysicalPresence\r
+ IN EFI_TCG_PROTOCOL *TcgProtocol,\r
+ IN TPM_PHYSICAL_PRESENCE PhysicalPresence\r
)\r
{\r
- EFI_STATUS Status;\r
- TPM_RQU_COMMAND_HDR *TpmRqu;\r
- TPM_PHYSICAL_PRESENCE *TpmPp;\r
- TPM_RSP_COMMAND_HDR TpmRsp;\r
- UINT8 Buffer[sizeof (*TpmRqu) + sizeof (*TpmPp)];\r
+ EFI_STATUS Status;\r
+ TPM_RQU_COMMAND_HDR *TpmRqu;\r
+ TPM_PHYSICAL_PRESENCE *TpmPp;\r
+ TPM_RSP_COMMAND_HDR TpmRsp;\r
+ UINT8 Buffer[sizeof (*TpmRqu) + sizeof (*TpmPp)];\r
\r
- TpmRqu = (TPM_RQU_COMMAND_HDR*)Buffer;\r
- TpmPp = (TPM_PHYSICAL_PRESENCE*)(TpmRqu + 1);\r
+ TpmRqu = (TPM_RQU_COMMAND_HDR *)Buffer;\r
+ TpmPp = (TPM_PHYSICAL_PRESENCE *)(TpmRqu + 1);\r
\r
TpmRqu->tag = SwapBytes16 (TPM_TAG_RQU_COMMAND);\r
TpmRqu->paramSize = SwapBytes32 (sizeof (Buffer));\r
TpmRqu->ordinal = SwapBytes32 (TSC_ORD_PhysicalPresence);\r
- WriteUnaligned16 (TpmPp, (TPM_PHYSICAL_PRESENCE) SwapBytes16 (PhysicalPresence));\r
+ WriteUnaligned16 (TpmPp, (TPM_PHYSICAL_PRESENCE)SwapBytes16 (PhysicalPresence));\r
\r
Status = TcgProtocol->PassThroughToTpm (\r
TcgProtocol,\r
sizeof (Buffer),\r
- (UINT8*)TpmRqu,\r
+ (UINT8 *)TpmRqu,\r
sizeof (TpmRsp),\r
- (UINT8*)&TpmRsp\r
+ (UINT8 *)&TpmRsp\r
);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
**/\r
UINT32\r
TpmCommandNoReturnData (\r
- IN EFI_TCG_PROTOCOL *TcgProtocol,\r
- IN TPM_COMMAND_CODE Ordinal,\r
- IN UINTN AdditionalParameterSize,\r
- IN VOID *AdditionalParameters\r
+ IN EFI_TCG_PROTOCOL *TcgProtocol,\r
+ IN TPM_COMMAND_CODE Ordinal,\r
+ IN UINTN AdditionalParameterSize,\r
+ IN VOID *AdditionalParameters\r
)\r
{\r
- EFI_STATUS Status;\r
- TPM_RQU_COMMAND_HDR *TpmRqu;\r
- TPM_RSP_COMMAND_HDR TpmRsp;\r
- UINT32 Size;\r
+ EFI_STATUS Status;\r
+ TPM_RQU_COMMAND_HDR *TpmRqu;\r
+ TPM_RSP_COMMAND_HDR TpmRsp;\r
+ UINT32 Size;\r
\r
- TpmRqu = (TPM_RQU_COMMAND_HDR*) AllocatePool (sizeof (*TpmRqu) + AdditionalParameterSize);\r
+ TpmRqu = (TPM_RQU_COMMAND_HDR *)AllocatePool (sizeof (*TpmRqu) + AdditionalParameterSize);\r
if (TpmRqu == NULL) {\r
return TCG_PP_OPERATION_RESPONSE_BIOS_FAILURE;\r
}\r
Status = TcgProtocol->PassThroughToTpm (\r
TcgProtocol,\r
Size,\r
- (UINT8*)TpmRqu,\r
+ (UINT8 *)TpmRqu,\r
(UINT32)sizeof (TpmRsp),\r
- (UINT8*)&TpmRsp\r
+ (UINT8 *)&TpmRsp\r
);\r
FreePool (TpmRqu);\r
if (EFI_ERROR (Status) || (TpmRsp.tag != SwapBytes16 (TPM_TAG_RSP_COMMAND))) {\r
return TCG_PP_OPERATION_RESPONSE_BIOS_FAILURE;\r
}\r
+\r
return SwapBytes32 (TpmRsp.returnCode);\r
}\r
\r
**/\r
UINT32\r
ExecutePhysicalPresence (\r
- IN EFI_TCG_PROTOCOL *TcgProtocol,\r
- IN UINT32 CommandCode,\r
- IN OUT EFI_PHYSICAL_PRESENCE_FLAGS *PpiFlags\r
+ IN EFI_TCG_PROTOCOL *TcgProtocol,\r
+ IN UINT32 CommandCode,\r
+ IN OUT EFI_PHYSICAL_PRESENCE_FLAGS *PpiFlags\r
)\r
{\r
- BOOLEAN BoolVal;\r
- UINT32 TpmResponse;\r
- UINT32 InData[5];\r
+ BOOLEAN BoolVal;\r
+ UINT32 TpmResponse;\r
+ UINT32 InData[5];\r
\r
switch (CommandCode) {\r
case PHYSICAL_PRESENCE_ENABLE:\r
if (TpmResponse == 0) {\r
TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_ACTIVATE, PpiFlags);\r
}\r
+\r
return TpmResponse;\r
\r
case PHYSICAL_PRESENCE_DEACTIVATE_DISABLE:\r
if (TpmResponse == 0) {\r
TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_DISABLE, PpiFlags);\r
}\r
+\r
return TpmResponse;\r
\r
case PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE:\r
// PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE will be executed after reboot\r
//\r
if ((PpiFlags->PPFlags & TCG_VENDOR_LIB_FLAG_RESET_TRACK) == 0) {\r
- TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_ENABLE_ACTIVATE, PpiFlags);\r
+ TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_ENABLE_ACTIVATE, PpiFlags);\r
PpiFlags->PPFlags |= TCG_VENDOR_LIB_FLAG_RESET_TRACK;\r
} else {\r
- TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE, PpiFlags);\r
+ TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE, PpiFlags);\r
PpiFlags->PPFlags &= ~TCG_VENDOR_LIB_FLAG_RESET_TRACK;\r
}\r
+\r
return TpmResponse;\r
\r
case PHYSICAL_PRESENCE_DEACTIVATE_DISABLE_OWNER_FALSE:\r
if (TpmResponse == 0) {\r
TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_DEACTIVATE_DISABLE, PpiFlags);\r
}\r
+\r
return TpmResponse;\r
\r
case PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE:\r
InData[0] = SwapBytes32 (TPM_SET_STCLEAR_DATA); // CapabilityArea\r
- InData[1] = SwapBytes32 (sizeof(UINT32)); // SubCapSize\r
+ InData[1] = SwapBytes32 (sizeof (UINT32)); // SubCapSize\r
InData[2] = SwapBytes32 (TPM_SD_DEFERREDPHYSICALPRESENCE); // SubCap\r
- InData[3] = SwapBytes32 (sizeof(UINT32)); // SetValueSize\r
+ InData[3] = SwapBytes32 (sizeof (UINT32)); // SetValueSize\r
InData[4] = SwapBytes32 (1); // UnownedFieldUpgrade; bit0\r
return TpmCommandNoReturnData (\r
TcgProtocol,\r
if (TpmResponse == 0) {\r
TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_ENABLE_ACTIVATE, PpiFlags);\r
}\r
+\r
return TpmResponse;\r
\r
case PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_FALSE:\r
// PHYSICAL_PRESENCE_CLEAR will be executed after reboot.\r
//\r
if ((PpiFlags->PPFlags & TCG_VENDOR_LIB_FLAG_RESET_TRACK) == 0) {\r
- TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_ENABLE_ACTIVATE, PpiFlags);\r
+ TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_ENABLE_ACTIVATE, PpiFlags);\r
PpiFlags->PPFlags |= TCG_VENDOR_LIB_FLAG_RESET_TRACK;\r
} else {\r
- TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_CLEAR, PpiFlags);\r
+ TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_CLEAR, PpiFlags);\r
PpiFlags->PPFlags &= ~TCG_VENDOR_LIB_FLAG_RESET_TRACK;\r
}\r
+\r
return TpmResponse;\r
\r
case PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE:\r
// PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE will be executed after reboot.\r
//\r
if ((PpiFlags->PPFlags & TCG_VENDOR_LIB_FLAG_RESET_TRACK) == 0) {\r
- TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_ENABLE_ACTIVATE, PpiFlags);\r
+ TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_ENABLE_ACTIVATE, PpiFlags);\r
PpiFlags->PPFlags |= TCG_VENDOR_LIB_FLAG_RESET_TRACK;\r
} else {\r
- TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE, PpiFlags);\r
+ TpmResponse = ExecutePhysicalPresence (TcgProtocol, PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE, PpiFlags);\r
PpiFlags->PPFlags &= ~TCG_VENDOR_LIB_FLAG_RESET_TRACK;\r
}\r
+\r
return TpmResponse;\r
\r
default:\r
;\r
}\r
+\r
return TCG_PP_OPERATION_RESPONSE_BIOS_FAILURE;\r
}\r
\r
-\r
/**\r
Read the specified key for user confirmation.\r
\r
**/\r
BOOLEAN\r
ReadUserKey (\r
- IN BOOLEAN CautionKey\r
+ IN BOOLEAN CautionKey\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_INPUT_KEY Key;\r
- UINT16 InputKey;\r
- UINTN Index;\r
+ EFI_STATUS Status;\r
+ EFI_INPUT_KEY Key;\r
+ UINT16 InputKey;\r
+ UINTN Index;\r
\r
InputKey = 0;\r
do {\r
if (Key.ScanCode == SCAN_ESC) {\r
InputKey = Key.ScanCode;\r
}\r
+\r
if ((Key.ScanCode == SCAN_F10) && !CautionKey) {\r
InputKey = Key.ScanCode;\r
}\r
+\r
if ((Key.ScanCode == SCAN_F12) && CautionKey) {\r
InputKey = Key.ScanCode;\r
}\r
**/\r
BOOLEAN\r
UserConfirm (\r
- IN UINT32 TpmPpCommand\r
+ IN UINT32 TpmPpCommand\r
)\r
{\r
- CHAR16 *ConfirmText;\r
- CHAR16 *TmpStr1;\r
- CHAR16 *TmpStr2;\r
- UINTN BufSize;\r
- BOOLEAN CautionKey;\r
- UINT16 Index;\r
- CHAR16 DstStr[81];\r
+ CHAR16 *ConfirmText;\r
+ CHAR16 *TmpStr1;\r
+ CHAR16 *TmpStr2;\r
+ UINTN BufSize;\r
+ BOOLEAN CautionKey;\r
+ UINT16 Index;\r
+ CHAR16 DstStr[81];\r
\r
TmpStr2 = NULL;\r
CautionKey = FALSE;\r
\r
case PHYSICAL_PRESENCE_CLEAR:\r
CautionKey = TRUE;\r
- TmpStr2 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_CLEAR));\r
+ TmpStr2 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_CLEAR));\r
\r
TmpStr1 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_HEAD_STR));\r
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);\r
\r
case PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE:\r
CautionKey = TRUE;\r
- TmpStr2 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_UNOWNED_FIELD_UPGRADE));\r
+ TmpStr2 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_UNOWNED_FIELD_UPGRADE));\r
\r
TmpStr1 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_UPGRADE_HEAD_STR));\r
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);\r
\r
case PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE:\r
CautionKey = TRUE;\r
- TmpStr2 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_CLEAR_TURN_ON));\r
+ TmpStr2 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_CLEAR_TURN_ON));\r
\r
TmpStr1 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_HEAD_STR));\r
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);\r
\r
case PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_TRUE:\r
CautionKey = TRUE;\r
- TmpStr2 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_CLEAR));\r
+ TmpStr2 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_CLEAR));\r
\r
TmpStr1 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_PPI_HEAD_STR));\r
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);\r
\r
case PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_TRUE:\r
CautionKey = TRUE;\r
- TmpStr2 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_NO_PPI_MAINTAIN));\r
+ TmpStr2 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_NO_PPI_MAINTAIN));\r
\r
TmpStr1 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_PPI_HEAD_STR));\r
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);\r
\r
case PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR:\r
CautionKey = TRUE;\r
- TmpStr2 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_ENABLE_ACTIVATE_CLEAR));\r
+ TmpStr2 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_ENABLE_ACTIVATE_CLEAR));\r
\r
TmpStr1 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_HEAD_STR));\r
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);\r
\r
case PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE:\r
CautionKey = TRUE;\r
- TmpStr2 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE));\r
+ TmpStr2 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE));\r
\r
TmpStr1 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_HEAD_STR));\r
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);\r
return FALSE;\r
}\r
\r
- TmpStr1 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_REJECT_KEY));\r
+ TmpStr1 = PhysicalPresenceGetStringById (STRING_TOKEN (TPM_REJECT_KEY));\r
BufSize -= StrSize (ConfirmText);\r
UnicodeSPrint (ConfirmText + StrLen (ConfirmText), BufSize, TmpStr1, TmpStr2);\r
\r
DstStr[80] = L'\0';\r
for (Index = 0; Index < StrLen (ConfirmText); Index += 80) {\r
- StrnCpyS(DstStr, sizeof (DstStr) / sizeof (CHAR16), ConfirmText + Index, sizeof (DstStr) / sizeof (CHAR16) - 1);\r
+ StrnCpyS (DstStr, sizeof (DstStr) / sizeof (CHAR16), ConfirmText + Index, sizeof (DstStr) / sizeof (CHAR16) - 1);\r
Print (DstStr);\r
}\r
\r
**/\r
BOOLEAN\r
HaveValidTpmRequest (\r
- IN EFI_PHYSICAL_PRESENCE *TcgPpData,\r
- IN EFI_PHYSICAL_PRESENCE_FLAGS Flags,\r
- OUT BOOLEAN *RequestConfirmed\r
+ IN EFI_PHYSICAL_PRESENCE *TcgPpData,\r
+ IN EFI_PHYSICAL_PRESENCE_FLAGS Flags,\r
+ OUT BOOLEAN *RequestConfirmed\r
)\r
{\r
BOOLEAN IsRequestValid;\r
if ((Flags.PPFlags & TCG_BIOS_TPM_MANAGEMENT_FLAG_NO_PPI_PROVISION) != 0) {\r
*RequestConfirmed = TRUE;\r
}\r
+\r
break;\r
\r
case PHYSICAL_PRESENCE_CLEAR:\r
if ((Flags.PPFlags & TCG_BIOS_TPM_MANAGEMENT_FLAG_NO_PPI_CLEAR) != 0) {\r
*RequestConfirmed = TRUE;\r
}\r
+\r
break;\r
\r
case PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE:\r
if ((Flags.PPFlags & TCG_BIOS_TPM_MANAGEMENT_FLAG_NO_PPI_MAINTENANCE) != 0) {\r
*RequestConfirmed = TRUE;\r
}\r
+\r
break;\r
\r
case PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE:\r
case PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE:\r
- if ((Flags.PPFlags & TCG_BIOS_TPM_MANAGEMENT_FLAG_NO_PPI_CLEAR) != 0 && (Flags.PPFlags & TCG_BIOS_TPM_MANAGEMENT_FLAG_NO_PPI_PROVISION) != 0) {\r
+ if (((Flags.PPFlags & TCG_BIOS_TPM_MANAGEMENT_FLAG_NO_PPI_CLEAR) != 0) && ((Flags.PPFlags & TCG_BIOS_TPM_MANAGEMENT_FLAG_NO_PPI_PROVISION) != 0)) {\r
*RequestConfirmed = TRUE;\r
}\r
+\r
break;\r
\r
case PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_FALSE:\r
return TRUE;\r
}\r
\r
-\r
/**\r
Check and execute the requested physical presence command.\r
\r
**/\r
VOID\r
ExecutePendingTpmRequest (\r
- IN EFI_TCG_PROTOCOL *TcgProtocol,\r
- IN EFI_PHYSICAL_PRESENCE *TcgPpData,\r
- IN EFI_PHYSICAL_PRESENCE_FLAGS Flags\r
+ IN EFI_TCG_PROTOCOL *TcgProtocol,\r
+ IN EFI_PHYSICAL_PRESENCE *TcgPpData,\r
+ IN EFI_PHYSICAL_PRESENCE_FLAGS Flags\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN DataSize;\r
- BOOLEAN RequestConfirmed;\r
- EFI_PHYSICAL_PRESENCE_FLAGS NewFlags;\r
- BOOLEAN ResetRequired;\r
- UINT32 NewPPFlags;\r
-\r
- if (!HaveValidTpmRequest(TcgPpData, Flags, &RequestConfirmed)) {\r
+ EFI_STATUS Status;\r
+ UINTN DataSize;\r
+ BOOLEAN RequestConfirmed;\r
+ EFI_PHYSICAL_PRESENCE_FLAGS NewFlags;\r
+ BOOLEAN ResetRequired;\r
+ UINT32 NewPPFlags;\r
+\r
+ if (!HaveValidTpmRequest (TcgPpData, Flags, &RequestConfirmed)) {\r
//\r
// Invalid operation request.\r
//\r
- TcgPpData->PPResponse = TCG_PP_OPERATION_RESPONSE_BIOS_FAILURE;\r
+ TcgPpData->PPResponse = TCG_PP_OPERATION_RESPONSE_BIOS_FAILURE;\r
TcgPpData->LastPPRequest = TcgPpData->PPRequest;\r
- TcgPpData->PPRequest = PHYSICAL_PRESENCE_NO_ACTION;\r
- DataSize = sizeof (EFI_PHYSICAL_PRESENCE);\r
- Status = gRT->SetVariable (\r
- PHYSICAL_PRESENCE_VARIABLE,\r
- &gEfiPhysicalPresenceGuid,\r
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,\r
- DataSize,\r
- TcgPpData\r
- );\r
+ TcgPpData->PPRequest = PHYSICAL_PRESENCE_NO_ACTION;\r
+ DataSize = sizeof (EFI_PHYSICAL_PRESENCE);\r
+ Status = gRT->SetVariable (\r
+ PHYSICAL_PRESENCE_VARIABLE,\r
+ &gEfiPhysicalPresenceGuid,\r
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,\r
+ DataSize,\r
+ TcgPpData\r
+ );\r
return;\r
}\r
\r
ResetRequired = FALSE;\r
if (TcgPpData->PPRequest >= TCG_PHYSICAL_PRESENCE_VENDOR_SPECIFIC_OPERATION) {\r
- NewFlags = Flags;\r
- NewPPFlags = NewFlags.PPFlags;\r
+ NewFlags = Flags;\r
+ NewPPFlags = NewFlags.PPFlags;\r
TcgPpData->PPResponse = TcgPpVendorLibExecutePendingRequest (TcgPpData->PPRequest, &NewPPFlags, &ResetRequired);\r
- NewFlags.PPFlags = (UINT8)NewPPFlags;\r
+ NewFlags.PPFlags = (UINT8)NewPPFlags;\r
} else {\r
if (!RequestConfirmed) {\r
//\r
// Execute requested physical presence command\r
//\r
TcgPpData->PPResponse = TCG_PP_OPERATION_RESPONSE_USER_ABORT;\r
- NewFlags = Flags;\r
+ NewFlags = Flags;\r
if (RequestConfirmed) {\r
TcgPpData->PPResponse = ExecutePhysicalPresence (TcgProtocol, TcgPpData->PPRequest, &NewFlags);\r
}\r
//\r
// Save the flags if it is updated.\r
//\r
- if (CompareMem (&Flags, &NewFlags, sizeof(EFI_PHYSICAL_PRESENCE_FLAGS)) != 0) {\r
- Status = gRT->SetVariable (\r
- PHYSICAL_PRESENCE_FLAGS_VARIABLE,\r
- &gEfiPhysicalPresenceGuid,\r
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,\r
- sizeof (EFI_PHYSICAL_PRESENCE_FLAGS),\r
- &NewFlags\r
- );\r
+ if (CompareMem (&Flags, &NewFlags, sizeof (EFI_PHYSICAL_PRESENCE_FLAGS)) != 0) {\r
+ Status = gRT->SetVariable (\r
+ PHYSICAL_PRESENCE_FLAGS_VARIABLE,\r
+ &gEfiPhysicalPresenceGuid,\r
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,\r
+ sizeof (EFI_PHYSICAL_PRESENCE_FLAGS),\r
+ &NewFlags\r
+ );\r
if (EFI_ERROR (Status)) {\r
return;\r
}\r
//\r
if ((NewFlags.PPFlags & TCG_VENDOR_LIB_FLAG_RESET_TRACK) == 0) {\r
TcgPpData->LastPPRequest = TcgPpData->PPRequest;\r
- TcgPpData->PPRequest = PHYSICAL_PRESENCE_NO_ACTION;\r
+ TcgPpData->PPRequest = PHYSICAL_PRESENCE_NO_ACTION;\r
}\r
\r
//\r
// Save changes\r
//\r
DataSize = sizeof (EFI_PHYSICAL_PRESENCE);\r
- Status = gRT->SetVariable (\r
- PHYSICAL_PRESENCE_VARIABLE,\r
- &gEfiPhysicalPresenceGuid,\r
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,\r
- DataSize,\r
- TcgPpData\r
- );\r
+ Status = gRT->SetVariable (\r
+ PHYSICAL_PRESENCE_VARIABLE,\r
+ &gEfiPhysicalPresenceGuid,\r
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,\r
+ DataSize,\r
+ TcgPpData\r
+ );\r
if (EFI_ERROR (Status)) {\r
return;\r
}\r
if (ResetRequired) {\r
break;\r
} else {\r
- return ;\r
+ return;\r
}\r
}\r
+\r
if (TcgPpData->PPRequest != PHYSICAL_PRESENCE_NO_ACTION) {\r
break;\r
}\r
+\r
return;\r
}\r
\r
VOID\r
)\r
{\r
- EFI_STATUS Status;\r
- BOOLEAN LifetimeLock;\r
- BOOLEAN CmdEnable;\r
- UINTN DataSize;\r
- EFI_PHYSICAL_PRESENCE TcgPpData;\r
- EFI_TCG_PROTOCOL *TcgProtocol;\r
- EDKII_VARIABLE_LOCK_PROTOCOL *VariableLockProtocol;\r
- EFI_PHYSICAL_PRESENCE_FLAGS PpiFlags;\r
+ EFI_STATUS Status;\r
+ BOOLEAN LifetimeLock;\r
+ BOOLEAN CmdEnable;\r
+ UINTN DataSize;\r
+ EFI_PHYSICAL_PRESENCE TcgPpData;\r
+ EFI_TCG_PROTOCOL *TcgProtocol;\r
+ EDKII_VARIABLE_LOCK_PROTOCOL *VariableLockProtocol;\r
+ EFI_PHYSICAL_PRESENCE_FLAGS PpiFlags;\r
\r
Status = gBS->LocateProtocol (&gEfiTcgProtocolGuid, NULL, (VOID **)&TcgProtocol);\r
if (EFI_ERROR (Status)) {\r
- return ;\r
+ return;\r
}\r
\r
//\r
// Initialize physical presence flags.\r
//\r
DataSize = sizeof (EFI_PHYSICAL_PRESENCE_FLAGS);\r
- Status = gRT->GetVariable (\r
- PHYSICAL_PRESENCE_FLAGS_VARIABLE,\r
- &gEfiPhysicalPresenceGuid,\r
- NULL,\r
- &DataSize,\r
- &PpiFlags\r
- );\r
+ Status = gRT->GetVariable (\r
+ PHYSICAL_PRESENCE_FLAGS_VARIABLE,\r
+ &gEfiPhysicalPresenceGuid,\r
+ NULL,\r
+ &DataSize,\r
+ &PpiFlags\r
+ );\r
if (EFI_ERROR (Status)) {\r
PpiFlags.PPFlags = TCG_BIOS_TPM_MANAGEMENT_FLAG_NO_PPI_PROVISION;\r
- Status = gRT->SetVariable (\r
- PHYSICAL_PRESENCE_FLAGS_VARIABLE,\r
- &gEfiPhysicalPresenceGuid,\r
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,\r
- sizeof (EFI_PHYSICAL_PRESENCE_FLAGS),\r
- &PpiFlags\r
- );\r
+ Status = gRT->SetVariable (\r
+ PHYSICAL_PRESENCE_FLAGS_VARIABLE,\r
+ &gEfiPhysicalPresenceGuid,\r
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,\r
+ sizeof (EFI_PHYSICAL_PRESENCE_FLAGS),\r
+ &PpiFlags\r
+ );\r
if (EFI_ERROR (Status)) {\r
DEBUG ((DEBUG_ERROR, "[TPM] Set physical presence flag failed, Status = %r\n", Status));\r
- return ;\r
+ return;\r
}\r
}\r
+\r
DEBUG ((DEBUG_INFO, "[TPM] PpiFlags = %x\n", PpiFlags.PPFlags));\r
\r
//\r
// Initialize physical presence variable.\r
//\r
DataSize = sizeof (EFI_PHYSICAL_PRESENCE);\r
- Status = gRT->GetVariable (\r
- PHYSICAL_PRESENCE_VARIABLE,\r
- &gEfiPhysicalPresenceGuid,\r
- NULL,\r
- &DataSize,\r
- &TcgPpData\r
- );\r
+ Status = gRT->GetVariable (\r
+ PHYSICAL_PRESENCE_VARIABLE,\r
+ &gEfiPhysicalPresenceGuid,\r
+ NULL,\r
+ &DataSize,\r
+ &TcgPpData\r
+ );\r
if (EFI_ERROR (Status)) {\r
- ZeroMem ((VOID*)&TcgPpData, sizeof (TcgPpData));\r
+ ZeroMem ((VOID *)&TcgPpData, sizeof (TcgPpData));\r
DataSize = sizeof (EFI_PHYSICAL_PRESENCE);\r
Status = gRT->SetVariable (\r
PHYSICAL_PRESENCE_VARIABLE,\r
\r
Status = GetTpmCapability (TcgProtocol, &LifetimeLock, &CmdEnable);\r
if (EFI_ERROR (Status)) {\r
- return ;\r
+ return;\r
}\r
\r
if (!CmdEnable) {\r
//\r
// physicalPresenceCMDEnable is locked, can't execute physical presence command.\r
//\r
- return ;\r
+ return;\r
}\r
+\r
Status = TpmPhysicalPresence (TcgProtocol, TPM_PHYSICAL_PRESENCE_CMD_ENABLE);\r
if (EFI_ERROR (Status)) {\r
- return ;\r
+ return;\r
}\r
}\r
\r
**/\r
BOOLEAN\r
EFIAPI\r
-TcgPhysicalPresenceLibNeedUserConfirm(\r
+TcgPhysicalPresenceLibNeedUserConfirm (\r
VOID\r
)\r
{\r
// Check Tpm requests\r
//\r
DataSize = sizeof (EFI_PHYSICAL_PRESENCE);\r
- Status = gRT->GetVariable (\r
- PHYSICAL_PRESENCE_VARIABLE,\r
- &gEfiPhysicalPresenceGuid,\r
- NULL,\r
- &DataSize,\r
- &TcgPpData\r
- );\r
+ Status = gRT->GetVariable (\r
+ PHYSICAL_PRESENCE_VARIABLE,\r
+ &gEfiPhysicalPresenceGuid,\r
+ NULL,\r
+ &DataSize,\r
+ &TcgPpData\r
+ );\r
if (EFI_ERROR (Status)) {\r
return FALSE;\r
}\r
\r
DataSize = sizeof (EFI_PHYSICAL_PRESENCE_FLAGS);\r
- Status = gRT->GetVariable (\r
- PHYSICAL_PRESENCE_FLAGS_VARIABLE,\r
- &gEfiPhysicalPresenceGuid,\r
- NULL,\r
- &DataSize,\r
- &PpiFlags\r
- );\r
+ Status = gRT->GetVariable (\r
+ PHYSICAL_PRESENCE_FLAGS_VARIABLE,\r
+ &gEfiPhysicalPresenceGuid,\r
+ NULL,\r
+ &DataSize,\r
+ &PpiFlags\r
+ );\r
if (EFI_ERROR (Status)) {\r
return FALSE;\r
}\r
return FALSE;\r
}\r
\r
- if (!HaveValidTpmRequest(&TcgPpData, PpiFlags, &RequestConfirmed)) {\r
+ if (!HaveValidTpmRequest (&TcgPpData, PpiFlags, &RequestConfirmed)) {\r
//\r
// Invalid operation request.\r
//\r