Copyright (c) 2015, Intel Corporation. All rights reserved.
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.
#define TCG2_BIOS_INFORMATION_FLAG_HIERACHY_CONTROL_ENDORSEMENT_DISABLE BIT9 |
#define TCG2_BIOS_INFORMATION_FLAG_HIERACHY_CONTROL_STORAGE_DISABLE BIT8 |
#define TCG2_BIOS_STORAGE_MANAGEMENT_FLAG_PP_REQUIRED_FOR_DISABLE_BLOCK_SID BIT17 |
#define TCG2_BIOS_STORAGE_MANAGEMENT_FLAG_PP_REQUIRED_FOR_ENABLE_BLOCK_SID BIT16 |
#define TCG2_BIOS_TPM_MANAGEMENT_FLAG_DEFAULT |
Value:
(TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_TURN_OFF | \ TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CLEAR | \ TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CHANGE_EPS | \ TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CHANGE_PCRS)
Referenced by Tcg2PhysicalPresenceLibGetManagementFlags(), Tcg2PhysicalPresenceLibProcessRequest(), and Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunction().
#define TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CHANGE_EPS BIT6 |
Referenced by Tcg2HaveValidTpmRequest(), and Tcg2PhysicalPresenceLibGetUserConfirmationStatusFunction().
#define TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CHANGE_PCRS BIT7 |
Referenced by Tcg2HaveValidTpmRequest(), and Tcg2PhysicalPresenceLibGetUserConfirmationStatusFunction().
#define TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CLEAR BIT1 |
#define TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_TURN_OFF BIT5 |
#define TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_TURN_ON BIT4 |
#define TCG2_LIB_PP_FLAG_RESET_TRACK BIT3 |
Referenced by Tcg2ExecutePendingTpmRequest(), and Tcg2HaveValidTpmRequest().
UINT32 EFIAPI Tcg2PhysicalPresenceLibGetManagementFlags | ( | VOID | ) |
Return TPM2 ManagementFlags set by PP interface.
ManagementFlags | TPM2 Management Flags. |
References EFI_STATUS(), gEfiTcg2PhysicalPresenceGuid, EFI_TCG2_PHYSICAL_PRESENCE_FLAGS::PPFlags, TCG2_BIOS_TPM_MANAGEMENT_FLAG_DEFAULT, TCG2_PHYSICAL_PRESENCE_FLAGS_VARIABLE, and UINTN().
UINT32 EFIAPI Tcg2PhysicalPresenceLibGetUserConfirmationStatusFunction | ( | IN UINT32 | OperationRequest | ) |
The handler for TPM physical presence function: Get User Confirmation Status for Operation.
This API should be invoked in OS runtime phase to interface with ACPI method.
Caution: This function may receive untrusted input.
[in] | OperationRequest | TPM physical presence operation request. |
References BOOLEAN(), EFI_STATUS(), gEfiTcg2PhysicalPresenceGuid, mTcg2PpSmmVariable, EFI_TCG2_PHYSICAL_PRESENCE_FLAGS::PPFlags, TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CHANGE_EPS, TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CHANGE_PCRS, TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CLEAR, TCG2_PHYSICAL_PRESENCE_FLAGS_VARIABLE, TCG2_PHYSICAL_PRESENCE_VARIABLE, Tcg2PpVendorLibGetUserConfirmationStatusFunction(), TCG_PP_GET_USER_CONFIRMATION_ALLOWED_AND_PPUSER_NOT_REQUIRED, TCG_PP_GET_USER_CONFIRMATION_ALLOWED_AND_PPUSER_REQUIRED, TCG_PP_GET_USER_CONFIRMATION_BLOCKED_BY_BIOS_CONFIGURATION, TCG_PP_GET_USER_CONFIRMATION_NOT_IMPLEMENTED, TRUE, and UINTN().
Referenced by PhysicalPresenceCallback().
BOOLEAN EFIAPI Tcg2PhysicalPresenceLibNeedUserConfirm | ( | VOID | ) |
Check if the pending TPM request needs user input to confirm.
The TPM request may come from OS. This API will check if TPM request exists and need user input to confirmation.
TRUE | TPM needs input to confirm user physical presence. | |
FALSE | TPM doesn't need input to confirm user physical presence. |
References BOOLEAN(), EFI_STATUS(), gEfiTcg2PhysicalPresenceGuid, EFI_TCG2_PHYSICAL_PRESENCE::PPRequest, TCG2_PHYSICAL_PRESENCE_FLAGS_VARIABLE, TCG2_PHYSICAL_PRESENCE_VARIABLE, Tcg2HaveValidTpmRequest(), TRUE, and UINTN().
VOID EFIAPI Tcg2PhysicalPresenceLibProcessRequest | ( | IN TPM2B_AUTH * | PlatformAuth | ) |
Check and execute the pending TPM request.
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.
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.
PlatformAuth | platform auth value. NULL means no platform auth change. |
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.
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.
[in] | PlatformAuth | platform auth value. NULL means no platform auth change. |
References EFI_STATUS(), gEfiTcg2PhysicalPresenceGuid, EFI_TCG2_PHYSICAL_PRESENCE::LastPPRequest, mTcg2PpStringPackHandle, EFI_TCG2_PHYSICAL_PRESENCE_FLAGS::PPFlags, EFI_TCG2_PHYSICAL_PRESENCE::PPRequest, EFI_TCG2_PHYSICAL_PRESENCE::PPResponse, TCG2_BIOS_TPM_MANAGEMENT_FLAG_DEFAULT, TCG2_PHYSICAL_PRESENCE_FLAGS_VARIABLE, TCG2_PHYSICAL_PRESENCE_VARIABLE, Tcg2ExecutePendingTpmRequest(), and UINTN().
UINT32 EFIAPI Tcg2PhysicalPresenceLibReturnOperationResponseToOsFunction | ( | OUT UINT32 * | MostRecentRequest, | |
OUT UINT32 * | Response | |||
) |
The handler for TPM physical presence function: Return TPM Operation Response to OS Environment.
This API should be invoked in OS runtime phase to interface with ACPI method.
[out] | MostRecentRequest | Most recent operation request. |
[out] | Response | Response to the most recent operation request. |
[out] | MostRecentRequest | Most recent operation request. |
[out] | Response | Response to the most recent operation request. |
References EFI_STATUS(), gEfiTcg2PhysicalPresenceGuid, EFI_TCG2_PHYSICAL_PRESENCE::LastPPRequest, mTcg2PpSmmVariable, EFI_TCG2_PHYSICAL_PRESENCE::PPResponse, TCG2_PHYSICAL_PRESENCE_VARIABLE, and UINTN().
Referenced by PhysicalPresenceCallback(), and Tcg2GetResultOfSetActivePcrBanks().
UINT32 EFIAPI Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunction | ( | IN UINT32 | OperationRequest, | |
IN UINT32 | RequestParameter | |||
) |
The handler for TPM physical presence function: Submit TPM Operation Request to Pre-OS Environment and Submit TPM Operation Request to Pre-OS Environment 2.
This API should be invoked in OS runtime phase to interface with ACPI method.
Caution: This function may receive untrusted input.
[in] | OperationRequest | TPM physical presence operation request. |
[in] | RequestParameter | TPM physical presence operation request parameter. |
Caution: This function may receive untrusted input.
[in] | OperationRequest | TPM physical presence operation request. |
[in] | RequestParameter | TPM physical presence operation request parameter. |
References EFI_STATUS(), gEfiTcg2PhysicalPresenceGuid, mTcg2PpSmmVariable, EFI_TCG2_PHYSICAL_PRESENCE_FLAGS::PPFlags, EFI_TCG2_PHYSICAL_PRESENCE::PPRequest, EFI_TCG2_PHYSICAL_PRESENCE::PPRequestParameter, TCG2_BIOS_TPM_MANAGEMENT_FLAG_DEFAULT, TCG2_PHYSICAL_PRESENCE_FLAGS_VARIABLE, TCG2_PHYSICAL_PRESENCE_VARIABLE, Tcg2PpVendorLibSubmitRequestToPreOSFunction(), TCG_PP_SUBMIT_REQUEST_TO_PREOS_GENERAL_FAILURE, TCG_PP_SUBMIT_REQUEST_TO_PREOS_NOT_IMPLEMENTED, TCG_PP_SUBMIT_REQUEST_TO_PREOS_SUCCESS, and UINTN().
Referenced by PhysicalPresenceCallback(), SaveTcg2PCRBanksRequest(), SaveTcg2PpRequest(), SaveTcg2PpRequestParameter(), and Tcg2SetActivePCRBanks().