1/** @file 2 VFR file used by the TCG2 configuration component. 3 4Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR> 5SPDX-License-Identifier: BSD-2-Clause-Patent 6 7**/ 8 9#include "Tcg2ConfigNvData.h" 10 11formset 12 guid = TCG2_CONFIG_FORM_SET_GUID, 13 title = STRING_TOKEN(STR_TCG2_TITLE), 14 help = STRING_TOKEN(STR_TCG2_HELP), 15 classguid = EFI_HII_PLATFORM_SETUP_FORMSET_GUID, 16 17 efivarstore TCG2_CONFIGURATION_INFO, 18 varid = TCG2_CONFIGURATION_INFO_VARSTORE_ID, 19 attribute = 0x02, // EFI variable attributes EFI_VARIABLE_BOOTSERVICE_ACCESS 20 name = TCG2_CONFIGURATION_INFO, 21 guid = TCG2_CONFIG_FORM_SET_GUID; 22 23 efivarstore TCG2_CONFIGURATION, 24 varid = TCG2_CONFIGURATION_VARSTORE_ID, 25 attribute = 0x03, // EFI variable attributes EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE 26 name = TCG2_CONFIGURATION, 27 guid = TCG2_CONFIG_FORM_SET_GUID; 28 29 efivarstore TCG2_VERSION, 30 varid = TCG2_VERSION_VARSTORE_ID, 31 attribute = 0x03, // EFI variable attributes EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE 32 name = TCG2_VERSION, 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_TPM2_ACPI_REVISION_STATE_HELP), 65 text = STRING_TOKEN(STR_TPM2_ACPI_REVISION_STATE_PROMPT), 66 text = STRING_TOKEN(STR_TPM2_ACPI_REVISION_STATE_CONTENT); 67 68 oneof varid = TCG2_VERSION.Tpm2AcpiTableRev, 69 questionid = KEY_TPM2_ACPI_REVISION, 70 prompt = STRING_TOKEN(STR_TPM2_ACPI_REVISION_PROMPT), 71 help = STRING_TOKEN(STR_TPM2_ACPI_REVISION_HELP), 72 flags = INTERACTIVE, 73 option text = STRING_TOKEN(STR_TPM2_ACPI_REVISION_3), value = TPM2_ACPI_REVISION_3, flags = RESET_REQUIRED; 74 option text = STRING_TOKEN(STR_TPM2_ACPI_REVISION_4), value = TPM2_ACPI_REVISION_4, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; 75 endoneof; 76 77 subtitle text = STRING_TOKEN(STR_NULL); 78 79 text 80 help = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_STATE_HELP), 81 text = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_STATE_PROMPT), 82 text = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_STATE_CONTENT); 83 84 text 85 help = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_CAPABILITY_HELP), 86 text = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_CAPABILITY_PROMPT), 87 text = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_CAPABILITY_CONTENT); 88 89 suppressif ideqval TCG2_CONFIGURATION_INFO.TpmDeviceInterfacePtpFifoSupported == 0 90 OR ideqval TCG2_CONFIGURATION_INFO.TpmDeviceInterfacePtpCrbSupported == 0; 91 oneof varid = TCG2_CONFIGURATION_INFO.TpmDeviceInterfaceAttempt, 92 questionid = KEY_TPM_DEVICE_INTERFACE, 93 prompt = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_PROMPT), 94 help = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_HELP), 95 flags = INTERACTIVE, 96 option text = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_TIS), value = TPM_DEVICE_INTERFACE_TIS, flags = RESET_REQUIRED; 97 option text = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_PTP_FIFO), value = TPM_DEVICE_INTERFACE_PTP_FIFO, flags = RESET_REQUIRED; 98 option text = STRING_TOKEN(STR_TCG2_DEVICE_INTERFACE_PTP_CRB), value = TPM_DEVICE_INTERFACE_PTP_CRB, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; 99 endoneof; 100 endif; 101 102 endif; 103 104 subtitle text = STRING_TOKEN(STR_NULL); 105 106 suppressif ideqvallist TCG2_CONFIGURATION.TpmDevice == TPM_DEVICE_NULL TPM_DEVICE_1_2; 107 text 108 help = STRING_TOKEN(STR_TPM2_ACTIVE_HASH_ALGO_HELP), 109 text = STRING_TOKEN(STR_TPM2_ACTIVE_HASH_ALGO), 110 text = STRING_TOKEN(STR_TPM2_ACTIVE_HASH_ALGO_CONTENT); 111 text 112 help = STRING_TOKEN(STR_TPM2_SUPPORTED_HASH_ALGO_HELP), 113 text = STRING_TOKEN(STR_TPM2_SUPPORTED_HASH_ALGO), 114 text = STRING_TOKEN(STR_TPM2_SUPPORTED_HASH_ALGO_CONTENT); 115 text 116 help = STRING_TOKEN(STR_BIOS_HASH_ALGO_HELP), 117 text = STRING_TOKEN(STR_BIOS_HASH_ALGO), 118 text = STRING_TOKEN(STR_BIOS_HASH_ALGO_CONTENT); 119 120 subtitle text = STRING_TOKEN(STR_NULL); 121 subtitle text = STRING_TOKEN(STR_TCG2_PP_OPERATION); 122 123 text 124 help = STRING_TOKEN(STR_TCG2_PPI_VERSION_STATE_HELP), 125 text = STRING_TOKEN(STR_TCG2_PPI_VERSION_STATE_PROMPT), 126 text = STRING_TOKEN(STR_TCG2_PPI_VERSION_STATE_CONTENT); 127 128 oneof varid = TCG2_VERSION.PpiVersion, 129 questionid = KEY_TCG2_PPI_VERSION, 130 prompt = STRING_TOKEN(STR_TCG2_PPI_VERSION_PROMPT), 131 help = STRING_TOKEN(STR_TCG2_PPI_VERSION_HELP), 132 flags = INTERACTIVE, 133 option text = STRING_TOKEN(STR_TCG2_PPI_VERSION_1_2), value = TCG2_PPI_VERSION_1_2, flags = RESET_REQUIRED; 134 option text = STRING_TOKEN(STR_TCG2_PPI_VERSION_1_3), value = TCG2_PPI_VERSION_1_3, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; 135 endoneof; 136 137 oneof name = Tpm2Operation, 138 questionid = KEY_TPM2_OPERATION, 139 prompt = STRING_TOKEN(STR_TCG2_OPERATION), 140 help = STRING_TOKEN(STR_TCG2_OPERATION_HELP), 141 flags = INTERACTIVE | NUMERIC_SIZE_1, 142 option text = STRING_TOKEN(STR_TCG2_NO_ACTION), value = TCG2_PHYSICAL_PRESENCE_NO_ACTION, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; 143 option text = STRING_TOKEN(STR_TCG2_ENABLE), value = TCG2_PHYSICAL_PRESENCE_ENABLE, flags = RESET_REQUIRED; 144 option text = STRING_TOKEN(STR_TCG2_DISABLE), value = TCG2_PHYSICAL_PRESENCE_DISABLE, flags = RESET_REQUIRED; 145 option text = STRING_TOKEN(STR_TCG2_CLEAR), value = TCG2_PHYSICAL_PRESENCE_CLEAR, flags = RESET_REQUIRED; 146 option text = STRING_TOKEN(STR_TCG2_SET_PCD_BANKS), value = TCG2_PHYSICAL_PRESENCE_SET_PCR_BANKS, flags = RESET_REQUIRED; 147 suppressif ideqval TCG2_CONFIGURATION_INFO.ChangeEPSSupported == 0; 148 option text = STRING_TOKEN(STR_TCG2_CHANGE_EPS), value = TCG2_PHYSICAL_PRESENCE_CHANGE_EPS, flags = RESET_REQUIRED; 149 endif 150 option text = STRING_TOKEN(STR_TCG2_LOG_ALL_DIGESTS), value = TCG2_PHYSICAL_PRESENCE_LOG_ALL_DIGESTS, flags = RESET_REQUIRED; 151 option text = STRING_TOKEN(STR_TCG2_DISABLE_ENDORSEMENT_ENABLE_STORAGE_HIERARCHY), value = TCG2_PHYSICAL_PRESENCE_DISABLE_ENDORSEMENT_ENABLE_STORAGE_HIERARCHY, flags = RESET_REQUIRED; 152 endoneof; 153 154 suppressif NOT questionref(Tpm2Operation) == TCG2_PHYSICAL_PRESENCE_SET_PCR_BANKS; 155 numeric name = Tpm2OperationParameter, 156 questionid = KEY_TPM2_OPERATION_PARAMETER, 157 prompt = STRING_TOKEN(STR_TCG2_OPERATION_PARAMETER), 158 help = STRING_TOKEN(STR_TCG2_OPERATION_PARAMETER_HELP), 159 flags = DISPLAY_UINT_HEX | INTERACTIVE | NUMERIC_SIZE_4, 160 minimum = 0, 161 maximum = 0xFFFFFFFF, 162 step = 0, 163 default = 0, 164 endnumeric; 165 endif; 166 167 subtitle text = STRING_TOKEN(STR_NULL); 168 subtitle text = STRING_TOKEN(STR_TCG2_CONFIGURATION); 169 170 text 171 help = STRING_TOKEN(STR_TCG2_SUPPORTED_EVENT_LOG_FORMAT_HELP), 172 text = STRING_TOKEN(STR_TCG2_SUPPORTED_EVENT_LOG_FORMAT), 173 text = STRING_TOKEN(STR_TCG2_SUPPORTED_EVENT_LOG_FORMAT_CONTENT); 174 175 text 176 help = STRING_TOKEN(STR_TCG2_HASH_ALGO_BITMAP_HELP), 177 text = STRING_TOKEN(STR_TCG2_HASH_ALGO_BITMAP), 178 text = STRING_TOKEN(STR_TCG2_HASH_ALGO_BITMAP_CONTENT); 179 180 text 181 help = STRING_TOKEN(STR_TCG2_NUMBER_OF_PCR_BANKS_HELP), 182 text = STRING_TOKEN(STR_TCG2_NUMBER_OF_PCR_BANKS), 183 text = STRING_TOKEN(STR_TCG2_NUMBER_OF_PCR_BANKS_CONTENT); 184 185 text 186 help = STRING_TOKEN(STR_TCG2_ACTIVE_PCR_BANKS_HELP), 187 text = STRING_TOKEN(STR_TCG2_ACTIVE_PCR_BANKS), 188 text = STRING_TOKEN(STR_TCG2_ACTIVE_PCR_BANKS_CONTENT); 189 190 subtitle text = STRING_TOKEN(STR_NULL); 191 192 suppressif ideqval TCG2_CONFIGURATION_INFO.Sha1Supported == 0; 193 checkbox name = TCG2ActivatePCRBank0, 194 questionid = KEY_TPM2_PCR_BANKS_REQUEST_0, 195 prompt = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA1), 196 help = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA1_HELP), 197 flags = INTERACTIVE | RESET_REQUIRED, 198 default = 1, 199 endcheckbox; 200 endif; 201 202 suppressif ideqval TCG2_CONFIGURATION_INFO.Sha256Supported == 0; 203 checkbox name = TCG2ActivatePCRBank1, 204 questionid = KEY_TPM2_PCR_BANKS_REQUEST_1, 205 prompt = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA256), 206 help = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA256_HELP), 207 flags = INTERACTIVE | RESET_REQUIRED, 208 default = 0, 209 endcheckbox; 210 endif; 211 212 suppressif ideqval TCG2_CONFIGURATION_INFO.Sha384Supported == 0; 213 checkbox name = TCG2ActivatePCRBank2, 214 questionid = KEY_TPM2_PCR_BANKS_REQUEST_2, 215 prompt = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA384), 216 help = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA384_HELP), 217 flags = INTERACTIVE | RESET_REQUIRED, 218 default = 0, 219 endcheckbox; 220 endif; 221 222 suppressif ideqval TCG2_CONFIGURATION_INFO.Sha512Supported == 0; 223 checkbox name = TCG2ActivatePCRBank3, 224 questionid = KEY_TPM2_PCR_BANKS_REQUEST_3, 225 prompt = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA512), 226 help = STRING_TOKEN(STR_TCG2_PCR_BANK_SHA512_HELP), 227 flags = INTERACTIVE | RESET_REQUIRED, 228 default = 0, 229 endcheckbox; 230 endif; 231 232 suppressif ideqval TCG2_CONFIGURATION_INFO.Sm3Supported == 0; 233 checkbox name = TCG2ActivatePCRBank4, 234 questionid = KEY_TPM2_PCR_BANKS_REQUEST_4, 235 prompt = STRING_TOKEN(STR_TCG2_PCR_BANK_SM3_256), 236 help = STRING_TOKEN(STR_TCG2_PCR_BANK_SM3_256_HELP), 237 flags = INTERACTIVE | RESET_REQUIRED, 238 default = 0, 239 endcheckbox; 240 endif; 241 242 endif; 243 244 endform; 245 246endformset; 247