1/** @file
2  VFR file used by the TCG2 configuration component.
3
4Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>
5This program and the accompanying materials
6are licensed and made available under the terms and conditions of the BSD License
7which accompanies this distribution.  The full text of the license may be found at
8http://opensource.org/licenses/bsd-license.php
9
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13**/
14
15#include "Tcg2ConfigNvData.h"
16
17formset
18  guid      = TCG2_CONFIG_FORM_SET_GUID,
19  title     = STRING_TOKEN(STR_TCG2_TITLE),
20  help      = STRING_TOKEN(STR_TCG2_HELP),
21  classguid = EFI_HII_PLATFORM_SETUP_FORMSET_GUID,
22
23  efivarstore TCG2_CONFIGURATION_INFO,
24    varid = TCG2_CONFIGURATION_INFO_VARSTORE_ID,
25    attribute = 0x02,  // EFI variable attribures  EFI_VARIABLE_BOOTSERVICE_ACCESS
26    name  = TCG2_CONFIGURATION_INFO,
27    guid  = TCG2_CONFIG_FORM_SET_GUID;
28
29  efivarstore TCG2_CONFIGURATION,
30    varid = TCG2_CONFIGURATION_VARSTORE_ID,
31    attribute = 0x03,  // EFI variable attribures  EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE
32    name  = TCG2_CONFIGURATION,
33    guid  = TCG2_CONFIG_FORM_SET_GUID;
34
35  form formid = TCG2_CONFIGURATION_FORM_ID,
36    title = STRING_TOKEN(STR_TCG2_TITLE);
37
38    subtitle text = STRING_TOKEN(STR_NULL);
39
40    text
41      help   = STRING_TOKEN(STR_TCG2_DEVICE_STATE_HELP),
42      text   = STRING_TOKEN(STR_TCG2_DEVICE_STATE_PROMPT),
43        text   = STRING_TOKEN(STR_TCG2_DEVICE_STATE_CONTENT);
44
45    oneof varid  = TCG2_CONFIGURATION.TpmDevice,
46          questionid = KEY_TPM_DEVICE,
47          prompt = STRING_TOKEN(STR_TCG2_DEVICE_PROMPT),
48          help   = STRING_TOKEN(STR_TCG2_DEVICE_HELP),
49          flags  = INTERACTIVE,
50            option text = STRING_TOKEN(STR_TCG2_TPM_1_2),          value = TPM_DEVICE_1_2,          flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
51            option text = STRING_TOKEN(STR_TCG2_TPM_2_0_DTPM),     value = TPM_DEVICE_2_0_DTPM,     flags = RESET_REQUIRED;
52    endoneof;
53
54    suppressif ideqvallist TCG2_CONFIGURATION.TpmDevice == TPM_DEVICE_NULL TPM_DEVICE_1_2;
55
56    subtitle text = STRING_TOKEN(STR_NULL);
57
58    text
59      help   = STRING_TOKEN(STR_TPM2_ACPI_HID_HELP),
60      text   = STRING_TOKEN(STR_TPM2_ACPI_HID_PROMPT),
61        text   = STRING_TOKEN(STR_TPM2_ACPI_HID_CONTENT);
62
63    text
64      help   = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_STATE_HELP),
65      text   = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_STATE_PROMPT),
66        text   = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_STATE_CONTENT);
67
68    text
69      help   = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_CAPABILITY_HELP),
70      text   = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_CAPABILITY_PROMPT),
71        text   = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_CAPABILITY_CONTENT);
72
73    suppressif ideqval TCG2_CONFIGURATION_INFO.TpmDeviceInterfacePtpFifoSupported == 0
74            OR ideqval TCG2_CONFIGURATION_INFO.TpmDeviceInterfacePtpCrbSupported == 0;
75    oneof varid  = TCG2_CONFIGURATION_INFO.TpmDeviceInterfaceAttempt,
76          questionid = KEY_TPM_DEVICE_INTERFACE,
77          prompt = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_PROMPT),
78          help   = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_HELP),
79          flags  = INTERACTIVE,
80            option text = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_TIS),          value = TPM_DEVICE_INTERFACE_TIS,          flags = RESET_REQUIRED;
81            option text = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_PTP_FIFO),     value = TPM_DEVICE_INTERFACE_PTP_FIFO,     flags = RESET_REQUIRED;
82            option text = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_PTP_CRB),      value = TPM_DEVICE_INTERFACE_PTP_CRB,      flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
83    endoneof;
84    endif;
85
86    endif;
87
88    subtitle text = STRING_TOKEN(STR_NULL);
89
90    suppressif ideqvallist TCG2_CONFIGURATION.TpmDevice == TPM_DEVICE_NULL TPM_DEVICE_1_2;
91    text
92      help   = STRING_TOKEN(STR_TPM2_ACTIVE_HASH_ALGO_HELP),
93      text   = STRING_TOKEN(STR_TPM2_ACTIVE_HASH_ALGO),
94        text   = STRING_TOKEN(STR_TPM2_ACTIVE_HASH_ALGO_CONTENT);
95    text
96      help   = STRING_TOKEN(STR_TPM2_SUPPORTED_HASH_ALGO_HELP),
97      text   = STRING_TOKEN(STR_TPM2_SUPPORTED_HASH_ALGO),
98        text   = STRING_TOKEN(STR_TPM2_SUPPORTED_HASH_ALGO_CONTENT);
99    text
100      help   = STRING_TOKEN(STR_BIOS_HASH_ALGO_HELP),
101      text   = STRING_TOKEN(STR_BIOS_HASH_ALGO),
102        text   = STRING_TOKEN(STR_BIOS_HASH_ALGO_CONTENT);
103
104    subtitle text = STRING_TOKEN(STR_NULL);
105    subtitle text = STRING_TOKEN(STR_TCG2_PP_OPERATION);
106
107    oneof name = Tpm2Operation,
108          questionid = KEY_TPM2_OPERATION,
109          prompt = STRING_TOKEN(STR_TCG2_OPERATION),
110          help   = STRING_TOKEN(STR_TCG2_OPERATION_HELP),
111          flags  = INTERACTIVE | NUMERIC_SIZE_1,
112            option text = STRING_TOKEN(STR_TCG2_NO_ACTION), value = TCG2_PHYSICAL_PRESENCE_NO_ACTION, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
113            option text = STRING_TOKEN(STR_TCG2_ENABLE), value = TCG2_PHYSICAL_PRESENCE_ENABLE, flags = RESET_REQUIRED;
114            option text = STRING_TOKEN(STR_TCG2_DISABLE), value = TCG2_PHYSICAL_PRESENCE_DISABLE, flags = RESET_REQUIRED;
115            option text = STRING_TOKEN(STR_TCG2_CLEAR), value = TCG2_PHYSICAL_PRESENCE_CLEAR, flags = RESET_REQUIRED;
116            option text = STRING_TOKEN(STR_TCG2_SET_PCD_BANKS), value = TCG2_PHYSICAL_PRESENCE_SET_PCR_BANKS, flags = RESET_REQUIRED;
117            option text = STRING_TOKEN(STR_TCG2_CHANGE_EPS), value = TCG2_PHYSICAL_PRESENCE_CHANGE_EPS, flags = RESET_REQUIRED;
118            option text = STRING_TOKEN(STR_TCG2_LOG_ALL_DIGESTS), value = TCG2_PHYSICAL_PRESENCE_LOG_ALL_DIGESTS, flags = RESET_REQUIRED;
119            option text = STRING_TOKEN(STR_TCG2_DISABLE_ENDORSEMENT_ENABLE_STORAGE_HIERARCHY), value = TCG2_PHYSICAL_PRESENCE_DISABLE_ENDORSEMENT_ENABLE_STORAGE_HIERARCHY, flags = RESET_REQUIRED;
120    endoneof;
121
122    suppressif NOT questionref(Tpm2Operation) == TCG2_PHYSICAL_PRESENCE_SET_PCR_BANKS;
123    numeric name = Tpm2OperationParameter,
124            questionid = KEY_TPM2_OPERATION_PARAMETER,
125            prompt  = STRING_TOKEN(STR_TCG2_OPERATION_PARAMETER),
126            help    = STRING_TOKEN(STR_TCG2_OPERATION_PARAMETER_HELP),
127            flags   = DISPLAY_UINT_HEX | INTERACTIVE | NUMERIC_SIZE_4,
128            minimum = 0,
129            maximum = 0xFFFFFFFF,
130            step    = 0,
131            default = 0,
132    endnumeric;
133    endif;
134
135    subtitle text = STRING_TOKEN(STR_NULL);
136    subtitle text = STRING_TOKEN(STR_TCG2_CONFIGURATION);
137
138    text
139      help   = STRING_TOKEN(STR_TCG2_SUPPORTED_EVENT_LOG_FORMAT_HELP),
140      text   = STRING_TOKEN(STR_TCG2_SUPPORTED_EVENT_LOG_FORMAT),
141        text   = STRING_TOKEN(STR_TCG2_SUPPORTED_EVENT_LOG_FORMAT_CONTENT);
142
143    text
144      help   = STRING_TOKEN(STR_TCG2_HASH_ALGO_BITMAP_HELP),
145      text   = STRING_TOKEN(STR_TCG2_HASH_ALGO_BITMAP),
146        text   = STRING_TOKEN(STR_TCG2_HASH_ALGO_BITMAP_CONTENT);
147
148    text
149      help   = STRING_TOKEN(STR_TCG2_NUMBER_OF_PCR_BANKS_HELP),
150      text   = STRING_TOKEN(STR_TCG2_NUMBER_OF_PCR_BANKS),
151        text   = STRING_TOKEN(STR_TCG2_NUMBER_OF_PCR_BANKS_CONTENT);
152
153    text
154      help   = STRING_TOKEN(STR_TCG2_ACTIVE_PCR_BANKS_HELP),
155      text   = STRING_TOKEN(STR_TCG2_ACTIVE_PCR_BANKS),
156        text   = STRING_TOKEN(STR_TCG2_ACTIVE_PCR_BANKS_CONTENT);
157
158    subtitle text = STRING_TOKEN(STR_NULL);
159
160  suppressif ideqval TCG2_CONFIGURATION_INFO.Sha1Supported == 0;
161    checkbox name = TCG2ActivatePCRBank0,
162            questionid = KEY_TPM2_PCR_BANKS_REQUEST_0,
163            prompt     = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA1),
164            help       = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA1_HELP),
165            flags      = INTERACTIVE | RESET_REQUIRED,
166            default    = 1,
167    endcheckbox;
168  endif;
169
170  suppressif ideqval TCG2_CONFIGURATION_INFO.Sha256Supported == 0;
171    checkbox name = TCG2ActivatePCRBank1,
172            questionid = KEY_TPM2_PCR_BANKS_REQUEST_1,
173            prompt     = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA256),
174            help       = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA256_HELP),
175            flags      = INTERACTIVE | RESET_REQUIRED,
176            default    = 0,
177    endcheckbox;
178  endif;
179
180  suppressif ideqval TCG2_CONFIGURATION_INFO.Sha384Supported == 0;
181    checkbox name = TCG2ActivatePCRBank2,
182            questionid = KEY_TPM2_PCR_BANKS_REQUEST_2,
183            prompt     = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA384),
184            help       = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA384_HELP),
185            flags      = INTERACTIVE | RESET_REQUIRED,
186            default    = 0,
187    endcheckbox;
188  endif;
189
190  suppressif ideqval TCG2_CONFIGURATION_INFO.Sha512Supported == 0;
191    checkbox name = TCG2ActivatePCRBank3,
192            questionid = KEY_TPM2_PCR_BANKS_REQUEST_3,
193            prompt     = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA512),
194            help       = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA512_HELP),
195            flags      = INTERACTIVE | RESET_REQUIRED,
196            default    = 0,
197    endcheckbox;
198  endif;
199
200  suppressif ideqval TCG2_CONFIGURATION_INFO.Sm3Supported == 0;
201    checkbox name = TCG2ActivatePCRBank4,
202            questionid = KEY_TPM2_PCR_BANKS_REQUEST_4,
203            prompt     = STRING_TOKEN(STR_TCG2_PCR_BANK_SM3_256),
204            help       = STRING_TOKEN(STR_TCG2_PCR_BANK_SM3_256_HELP),
205            flags      = INTERACTIVE | RESET_REQUIRED,
206            default    = 0,
207    endcheckbox;
208  endif;
209
210    endif;
211
212  endform;
213
214endformset;
215