1 /** @file
2   TCG Physical Presence definition.
3 
4 Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution.  The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9 
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 **/
14 
15 #ifndef _TCG_PHYSICAL_PRESENCE_H_
16 #define _TCG_PHYSICAL_PRESENCE_H_
17 
18 //
19 // TCG PP definition for physical presence ACPI function
20 //
21 #define TCG_ACPI_FUNCTION_GET_PHYSICAL_PRESENCE_INTERFACE_VERSION      1
22 #define TCG_ACPI_FUNCTION_SUBMIT_REQUEST_TO_BIOS                       2
23 #define TCG_ACPI_FUNCTION_GET_PENDING_REQUEST_BY_OS                    3
24 #define TCG_ACPI_FUNCTION_GET_PLATFORM_ACTION_TO_TRANSITION_TO_BIOS    4
25 #define TCG_ACPI_FUNCTION_RETURN_REQUEST_RESPONSE_TO_OS                5
26 #define TCG_ACPI_FUNCTION_SUBMIT_PREFERRED_USER_LANGUAGE               6
27 #define TCG_ACPI_FUNCTION_SUBMIT_REQUEST_TO_BIOS_2                     7
28 #define TCG_ACPI_FUNCTION_GET_USER_CONFIRMATION_STATUS_FOR_REQUEST     8
29 
30 //
31 // TCG PP definition for TPM Operation Response to OS Environment
32 //
33 #define TCG_PP_OPERATION_RESPONSE_SUCCESS              0x0
34 #define TCG_PP_OPERATION_RESPONSE_USER_ABORT           0xFFFFFFF0
35 #define TCG_PP_OPERATION_RESPONSE_BIOS_FAILURE         0xFFFFFFF1
36 
37 //
38 // TCG PP definition of return code for Return TPM Operation Response to OS Environment
39 //
40 #define TCG_PP_RETURN_TPM_OPERATION_RESPONSE_SUCCESS                   0
41 #define TCG_PP_RETURN_TPM_OPERATION_RESPONSE_FAILURE                   1
42 
43 //
44 // TCG PP definition of return code for Sumbit TPM Request to Pre-OS Environment
45 // and Sumbit TPM Request to Pre-OS Environment 2
46 //
47 #define TCG_PP_SUBMIT_REQUEST_TO_PREOS_SUCCESS                                  0
48 #define TCG_PP_SUBMIT_REQUEST_TO_PREOS_NOT_IMPLEMENTED                          1
49 #define TCG_PP_SUBMIT_REQUEST_TO_PREOS_GENERAL_FAILURE                          2
50 #define TCG_PP_SUBMIT_REQUEST_TO_PREOS_BLOCKED_BY_BIOS_SETTINGS                 3
51 
52 //
53 // TCG PP definition of return code for Get User Confirmation Status for Operation
54 //
55 #define TCG_PP_GET_USER_CONFIRMATION_NOT_IMPLEMENTED                                 0
56 #define TCG_PP_GET_USER_CONFIRMATION_BIOS_ONLY                                       1
57 #define TCG_PP_GET_USER_CONFIRMATION_BLOCKED_BY_BIOS_CONFIGURATION                   2
58 #define TCG_PP_GET_USER_CONFIRMATION_ALLOWED_AND_PPUSER_REQUIRED                     3
59 #define TCG_PP_GET_USER_CONFIRMATION_ALLOWED_AND_PPUSER_NOT_REQUIRED                 4
60 
61 //
62 // TCG PP definition of physical presence operation actions for TPM12
63 //
64 #define TCG_PHYSICAL_PRESENCE_NO_ACTION                               0
65 #define TCG_PHYSICAL_PRESENCE_ENABLE                                  1
66 #define TCG_PHYSICAL_PRESENCE_DISABLE                                 2
67 #define TCG_PHYSICAL_PRESENCE_ACTIVATE                                3
68 #define TCG_PHYSICAL_PRESENCE_DEACTIVATE                              4
69 #define TCG_PHYSICAL_PRESENCE_CLEAR                                   5
70 #define TCG_PHYSICAL_PRESENCE_ENABLE_ACTIVATE                         6
71 #define TCG_PHYSICAL_PRESENCE_DEACTIVATE_DISABLE                      7
72 #define TCG_PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE                  8
73 #define TCG_PHYSICAL_PRESENCE_SET_OWNER_INSTALL_FALSE                 9
74 #define TCG_PHYSICAL_PRESENCE_ENABLE_ACTIVATE_OWNER_TRUE              10
75 #define TCG_PHYSICAL_PRESENCE_DEACTIVATE_DISABLE_OWNER_FALSE          11
76 #define TCG_PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE     12
77 #define TCG_PHYSICAL_PRESENCE_SET_OPERATOR_AUTH                       13
78 #define TCG_PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE                   14
79 #define TCG_PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_FALSE              15
80 #define TCG_PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_TRUE               16
81 #define TCG_PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_FALSE                  17
82 #define TCG_PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_TRUE                   18
83 #define TCG_PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_FALSE            19
84 #define TCG_PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_TRUE             20
85 #define TCG_PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR                   21
86 #define TCG_PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE   22
87 
88 #define TCG_PHYSICAL_PRESENCE_VENDOR_SPECIFIC_OPERATION               128
89 
90 //
91 // TCG PP definition of physical presence operation actions for TPM2
92 //
93 #define TCG2_PHYSICAL_PRESENCE_NO_ACTION                                         0
94 #define TCG2_PHYSICAL_PRESENCE_ENABLE                                            1
95 #define TCG2_PHYSICAL_PRESENCE_DISABLE                                           2
96 #define TCG2_PHYSICAL_PRESENCE_CLEAR                                             5
97 #define TCG2_PHYSICAL_PRESENCE_ENABLE_CLEAR                                      14
98 #define TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_CLEAR_TRUE                    17
99 #define TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_CLEAR_FALSE                   18
100 #define TCG2_PHYSICAL_PRESENCE_ENABLE_CLEAR_2                                    21
101 #define TCG2_PHYSICAL_PRESENCE_ENABLE_CLEAR_3                                    22
102 #define TCG2_PHYSICAL_PRESENCE_SET_PCR_BANKS                                     23
103 #define TCG2_PHYSICAL_PRESENCE_CHANGE_EPS                                        24
104 #define TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_CHANGE_PCRS_FALSE             25
105 #define TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_CHANGE_PCRS_TRUE              26
106 #define TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_TURN_ON_FALSE                 27
107 #define TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_TURN_ON_TRUE                  28
108 #define TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_TURN_OFF_FALSE                29
109 #define TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_TURN_OFF_TRUE                 30
110 #define TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_CHANGE_EPS_FALSE              31
111 #define TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_CHANGE_EPS_TRUE               32
112 #define TCG2_PHYSICAL_PRESENCE_LOG_ALL_DIGESTS                                   33
113 #define TCG2_PHYSICAL_PRESENCE_DISABLE_ENDORSEMENT_ENABLE_STORAGE_HIERARCHY      34
114 #define TCG2_PHYSICAL_PRESENCE_NO_ACTION_MAX                                     34
115 
116 //
117 // TCG PP definition of physical presence operation actions for storage management
118 //
119 #define TCG2_PHYSICAL_PRESENCE_STORAGE_MANAGEMENT_BEGIN                          96
120 #define TCG2_PHYSICAL_PRESENCE_ENABLE_BLOCK_SID                                  96
121 #define TCG2_PHYSICAL_PRESENCE_DISABLE_BLOCK_SID                                 97
122 #define TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_ENABLE_BLOCK_SID_FUNC_TRUE    98
123 #define TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_ENABLE_BLOCK_SID_FUNC_FALSE   99
124 #define TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_DISABLE_BLOCK_SID_FUNC_TRUE   100
125 #define TCG2_PHYSICAL_PRESENCE_SET_PP_REQUIRED_FOR_DISABLE_BLOCK_SID_FUNC_FALSE  101
126 
127 #define TCG2_PHYSICAL_PRESENCE_VENDOR_SPECIFIC_OPERATION                         128
128 
129 #endif