VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/FirmwareNew/SecurityPkg/Include/Library/Tcg2PhysicalPresenceLib.h

Last change on this file was 99404, checked in by vboxsync, 2 years ago

Devices/EFI/FirmwareNew: Update to edk2-stable202302 and make it build, bugref:4643

  • Property svn:eol-style set to native
File size: 5.3 KB
Line 
1/** @file
2 This library is intended to be used by BDS modules.
3 This library will execute TPM2 request.
4
5Copyright (c) 2015 - 2020, Intel Corporation. All rights reserved.<BR>
6SPDX-License-Identifier: BSD-2-Clause-Patent
7
8**/
9
10#ifndef _TCG2_PHYSICAL_PRESENCE_LIB_H_
11#define _TCG2_PHYSICAL_PRESENCE_LIB_H_
12
13#include <IndustryStandard/Tpm20.h>
14#include <IndustryStandard/TcgPhysicalPresence.h>
15#include <Protocol/Tcg2Protocol.h>
16
17//
18// UEFI TCG2 library definition bit of the BIOS TPM Management Flags
19//
20// BIT0 is reserved
21#define TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CLEAR BIT1
22// BIT2 is reserved
23#define TCG2_LIB_PP_FLAG_RESET_TRACK BIT3
24#define TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_TURN_ON BIT4
25#define TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_TURN_OFF BIT5
26#define TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CHANGE_EPS BIT6
27#define TCG2_BIOS_TPM_MANAGEMENT_FLAG_PP_REQUIRED_FOR_CHANGE_PCRS BIT7
28
29//
30// UEFI TCG2 library definition bit of the BIOS Information Flags
31//
32#define TCG2_BIOS_INFORMATION_FLAG_HIERARCHY_CONTROL_STORAGE_DISABLE BIT8
33#define TCG2_BIOS_INFORMATION_FLAG_HIERARCHY_CONTROL_ENDORSEMENT_DISABLE BIT9
34
35//
36// UEFI TCG2 library definition bit of the BIOS Storage Management Flags
37//
38#define TCG2_BIOS_STORAGE_MANAGEMENT_FLAG_PP_REQUIRED_FOR_ENABLE_BLOCK_SID BIT16
39#define TCG2_BIOS_STORAGE_MANAGEMENT_FLAG_PP_REQUIRED_FOR_DISABLE_BLOCK_SID BIT17
40#define TCG2_BIOS_STORAGE_MANAGEMENT_FLAG_ENABLE_BLOCK_SID BIT18
41
42/**
43 Check and execute the pending TPM request.
44
45 The TPM request may come from OS or BIOS. This API will display request information and wait
46 for user confirmation if TPM request exists. The TPM request will be sent to TPM device after
47 the TPM request is confirmed, and one or more reset may be required to make TPM request to
48 take effect.
49
50 This API should be invoked after console in and console out are all ready as they are required
51 to display request information and get user input to confirm the request.
52
53 @param PlatformAuth platform auth value. NULL means no platform auth change.
54**/
55VOID
56EFIAPI
57Tcg2PhysicalPresenceLibProcessRequest (
58 IN TPM2B_AUTH *PlatformAuth OPTIONAL
59 );
60
61/**
62 Check if the pending TPM request needs user input to confirm.
63
64 The TPM request may come from OS. This API will check if TPM request exists and need user
65 input to confirmation.
66
67 @retval TRUE TPM needs input to confirm user physical presence.
68 @retval FALSE TPM doesn't need input to confirm user physical presence.
69
70**/
71BOOLEAN
72EFIAPI
73Tcg2PhysicalPresenceLibNeedUserConfirm (
74 VOID
75 );
76
77/**
78 Return TPM2 ManagementFlags set by PP interface.
79
80 @retval ManagementFlags TPM2 Management Flags.
81**/
82UINT32
83EFIAPI
84Tcg2PhysicalPresenceLibGetManagementFlags (
85 VOID
86 );
87
88/**
89 The handler for TPM physical presence function:
90 Return TPM Operation Response to OS Environment.
91
92 This API should be invoked in OS runtime phase to interface with ACPI method.
93
94 @param[out] MostRecentRequest Most recent operation request.
95 @param[out] Response Response to the most recent operation request.
96
97 @return Return Code for Return TPM Operation Response to OS Environment.
98**/
99UINT32
100EFIAPI
101Tcg2PhysicalPresenceLibReturnOperationResponseToOsFunction (
102 OUT UINT32 *MostRecentRequest,
103 OUT UINT32 *Response
104 );
105
106/**
107 The handler for TPM physical presence function:
108 Submit TPM Operation Request to Pre-OS Environment and
109 Submit TPM Operation Request to Pre-OS Environment 2.
110
111 This API should be invoked in OS runtime phase to interface with ACPI method.
112
113 Caution: This function may receive untrusted input.
114
115 @param[in, out] Pointer to OperationRequest TPM physical presence operation request.
116 @param[in, out] Pointer to RequestParameter TPM physical presence operation request parameter.
117
118 @return Return Code for Submit TPM Operation Request to Pre-OS Environment and
119 Submit TPM Operation Request to Pre-OS Environment 2.
120 **/
121UINT32
122Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunctionEx (
123 IN OUT UINT32 *OperationRequest,
124 IN OUT UINT32 *RequestParameter
125 );
126
127/**
128 The handler for TPM physical presence function:
129 Submit TPM Operation Request to Pre-OS Environment and
130 Submit TPM Operation Request to Pre-OS Environment 2.
131
132 This API should be invoked in OS runtime phase to interface with ACPI method.
133
134 Caution: This function may receive untrusted input.
135
136 @param[in] OperationRequest TPM physical presence operation request.
137 @param[in] RequestParameter TPM physical presence operation request parameter.
138
139 @return Return Code for Submit TPM Operation Request to Pre-OS Environment and
140 Submit TPM Operation Request to Pre-OS Environment 2.
141**/
142UINT32
143EFIAPI
144Tcg2PhysicalPresenceLibSubmitRequestToPreOSFunction (
145 IN UINT32 OperationRequest,
146 IN UINT32 RequestParameter
147 );
148
149/**
150 The handler for TPM physical presence function:
151 Get User Confirmation Status for Operation.
152
153 This API should be invoked in OS runtime phase to interface with ACPI method.
154
155 Caution: This function may receive untrusted input.
156
157 @param[in] OperationRequest TPM physical presence operation request.
158
159 @return Return Code for Get User Confirmation Status for Operation.
160**/
161UINT32
162EFIAPI
163Tcg2PhysicalPresenceLibGetUserConfirmationStatusFunction (
164 IN UINT32 OperationRequest
165 );
166
167#endif
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette