1 /** @file 2 3 Copyright (c) 2016, Intel Corporation. All rights reserved.<BR> 4 This program and the accompanying materials 5 are licensed and made available under the terms and conditions of the BSD License 6 which accompanies this distribution. The full text of the license may be found at 7 http://opensource.org/licenses/bsd-license.php 8 9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11 12 **/ 13 #include "OpalHiiFormValues.h" 14 15 16 #define EFI_HII_PLATFORM_SETUP_FORMSET_GUID \ 17 { 0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe } } 18 19 formset 20 guid = SETUP_FORMSET_GUID, 21 title = STRING_TOKEN(STR_OPAL), 22 help = STRING_TOKEN(STR_FORM_SET_HELP), 23 classguid = EFI_HII_PLATFORM_SETUP_FORMSET_GUID, 24 25 // Define a Buffer Storage (EFI_IFR_VARSTORE) that will be filled 26 // out initially through extractConfig call 27 varstore OPAL_HII_CONFIGURATION, // This is the Data structure type 28 name = OpalHiiConfig, // Define referenced name in vfr 29 guid = SETUP_VARIABLE_GUID; // GUID of this Buffer storage 30 31 form formid = FORMID_VALUE_MAIN_MENU, 32 title = STRING_TOKEN(STR_OPAL); 33 34 //CONFIG_VARIABLE(HII_KEY(HII_KEY_ID_VAR_SUPPORTED_DISKS), SupportedDisks, 0x0, 0xFFFF); 35 suppressif TRUE; 36 numeric 37 name = SupportedDisks, 38 varid = OpalHiiConfig.SupportedDisks, 39 prompt = STRING_TOKEN(STR_NULL), 40 help = STRING_TOKEN(STR_NULL), 41 flags = INTERACTIVE, 42 key = 0x800E, //32782, 43 minimum = 0x0, 44 maximum = 0xFFFF, 45 endnumeric; 46 endif; 47 48 subtitle text = STRING_TOKEN(STR_MAIN_OPAL_VERSION); 49 50 subtitle text = STRING_TOKEN(STR_NULL); 51 52 text 53 help = STRING_TOKEN(STR_NULL), 54 text = STRING_TOKEN(STR_MAIN_PHY_DISKS_LBL); 55 56 subtitle text = STRING_TOKEN(STR_NULL); 57 58 //DISK( 0 ); 59 suppressif ( questionref(SupportedDisks) & ( 0x1 ) ) == 0; 60 goto FORMID_VALUE_DISK_INFO_FORM_MAIN, 61 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_0 ), 62 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP), 63 flags = INTERACTIVE, \ 64 key = 0x8001; //32769 65 endif; 66 67 //DISK( 1 ); 68 suppressif ( questionref(SupportedDisks) & ( 0x2 ) ) == 0; 69 goto FORMID_VALUE_DISK_INFO_FORM_MAIN, 70 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_1 ), 71 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP), 72 flags = INTERACTIVE, \ 73 key = 0x8101; //33025 74 endif; 75 76 //DISK( 2 ); 77 suppressif ( questionref(SupportedDisks) & ( 0x4 ) ) == 0; 78 goto FORMID_VALUE_DISK_INFO_FORM_MAIN, 79 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_2 ), 80 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP), 81 flags = INTERACTIVE, \ 82 key = 0x8201; //33281 83 endif; 84 85 //DISK( 3 ); 86 suppressif ( questionref(SupportedDisks) & ( 0x8 ) ) == 0; 87 goto FORMID_VALUE_DISK_INFO_FORM_MAIN, 88 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_3 ), 89 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP), 90 flags = INTERACTIVE, \ 91 key = 0x8301; // 33537 92 endif; 93 94 //DISK( 4 ); 95 suppressif ( questionref(SupportedDisks) & ( 0x10 ) ) == 0; 96 goto FORMID_VALUE_DISK_INFO_FORM_MAIN, 97 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_4 ), 98 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP), 99 flags = INTERACTIVE, \ 100 key = 0x8401; // 33793 101 endif; 102 103 //DISK( 5 ); 104 suppressif ( questionref(SupportedDisks) & ( 0x20 ) ) == 0; 105 goto FORMID_VALUE_DISK_INFO_FORM_MAIN, 106 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_5 ), 107 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP), 108 flags = INTERACTIVE, \ 109 key = 0x8501; // 34049 110 endif; 111 112 //No disks on system 113 suppressif ideqval OpalHiiConfig.NumDisks > 0; 114 text 115 help = STRING_TOKEN(STR_NULL), 116 text = STRING_TOKEN(STR_MAIN_NO_DISKS_PRESENT_LBL); 117 endif; 118 119 subtitle text = STRING_TOKEN(STR_NULL); 120 121 grayoutif TRUE; 122 text 123 help = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP), 124 text = STRING_TOKEN(STR_BLOCKSID_STATUS); 125 text 126 help = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP), 127 text = STRING_TOKEN(STR_BLOCKSID_STATUS1); 128 text 129 help = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP), 130 text = STRING_TOKEN(STR_BLOCKSID_STATUS2); 131 text 132 help = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP), 133 text = STRING_TOKEN(STR_BLOCKSID_STATUS3); 134 subtitle text = STRING_TOKEN(STR_NULL); 135 endif; 136 137 oneof varid = OpalHiiConfig.EnableBlockSid, 138 questionid = 0x8017, // 32791, 139 prompt = STRING_TOKEN(STR_DISK_INFO_ENABLE_BLOCKSID), 140 help = STRING_TOKEN(STR_DISK_INFO_GOTO_ENABLE_BLOCKSID_HELP), 141 flags = INTERACTIVE, 142 option text = STRING_TOKEN(STR_NONE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED; 143 option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED; 144 option text = STRING_TOKEN(STR_DISABLED), value = 2, flags = RESET_REQUIRED; 145 option text = STRING_TOKEN(STR_DISK_INFO_ENABLE_BLOCKSID_TRUE), value = 3, flags = RESET_REQUIRED; 146 option text = STRING_TOKEN(STR_DISK_INFO_ENABLE_BLOCKSID_FALSE), value = 4, flags = RESET_REQUIRED; 147 option text = STRING_TOKEN(STR_DISK_INFO_DISABLE_BLOCKSID_TRUE), value = 5, flags = RESET_REQUIRED; 148 option text = STRING_TOKEN(STR_DISK_INFO_DISABLE_BLOCKSID_FALSE), value = 6, flags = RESET_REQUIRED; 149 endoneof; 150 151 152 153 endform; // MAIN MENU FORM 154 155 // 156 ///////////////// DISK INFO FORM ///////////////// 157 // 158 form formid = FORMID_VALUE_DISK_INFO_FORM_MAIN, 159 title = STRING_TOKEN(STR_OPAL); 160 161 suppressif TRUE; 162 numeric 163 name = SelectedDiskAvailableActions, 164 varid = OpalHiiConfig.SelectedDiskAvailableActions, 165 prompt = STRING_TOKEN(STR_NULL), 166 help = STRING_TOKEN(STR_NULL), 167 flags = INTERACTIVE, 168 key = 0x800F, // 32783 169 minimum = 0x0, 170 maximum = 0xFFFF, 171 endnumeric; 172 endif; 173 174 subtitle text = STRING_TOKEN(STR_MAIN_OPAL_VERSION); 175 176 subtitle text = STRING_TOKEN(STR_NULL); 177 178 text 179 help = STRING_TOKEN(STR_NULL), 180 text = STRING_TOKEN(STR_DISK_INFO_SELECTED_DISK_NAME); 181 182 subtitle text = STRING_TOKEN(STR_NULL); 183 184 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_LOCK ) == 0; 185 goto FORMID_VALUE_DISK_ACTION_FORM, 186 prompt = STRING_TOKEN(STR_DISK_INFO_LOCK), 187 help = STRING_TOKEN(STR_DISK_INFO_GOTO_LOCK_HELP), 188 flags = INTERACTIVE, 189 key = 0x8002; // 32770 190 endif; 191 192 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_UNLOCK ) == 0; 193 goto FORMID_VALUE_DISK_ACTION_FORM, 194 prompt = STRING_TOKEN(STR_DISK_INFO_UNLOCK), 195 help = STRING_TOKEN(STR_DISK_INFO_GOTO_UNLOCK_HELP), 196 flags = INTERACTIVE, 197 key = 0x8003; //32771; 198 endif; 199 200 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_SET_ADMIN_PWD ) == 0; 201 goto FORMID_VALUE_DISK_ACTION_FORM, 202 prompt = STRING_TOKEN(STR_DISK_INFO_SET_ADMIN_PSWD), 203 help = STRING_TOKEN(STR_DISK_INFO_GOTO_SET_ADMIN_PSWD_HELP), 204 flags = INTERACTIVE, 205 key = 0x8004; //32772; 206 endif; 207 208 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_SET_USER_PWD ) == 0; 209 goto FORMID_VALUE_DISK_ACTION_FORM, 210 prompt = STRING_TOKEN(STR_DISK_INFO_SET_USER_PSWD), 211 help = STRING_TOKEN(STR_DISK_INFO_GOTO_SET_USER_PSWD_HELP), 212 flags = INTERACTIVE, 213 key = 0x8005; //32773; 214 endif; 215 216 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_SECURE_ERASE ) == 0; 217 goto FORMID_VALUE_DISK_ACTION_FORM, 218 prompt = STRING_TOKEN(STR_DISK_INFO_SECURE_ERASE), 219 help = STRING_TOKEN(STR_DISK_INFO_GOTO_SECURE_ERASE_HELP), 220 flags = INTERACTIVE, 221 key = 0x8006; //32774; 222 endif; 223 224 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_REVERT ) == 0; 225 goto FORMID_VALUE_DISK_ACTION_FORM, 226 prompt = STRING_TOKEN(STR_DISK_INFO_REVERT), 227 help = STRING_TOKEN(STR_DISK_INFO_GOTO_PSID_REVERT_HELP), 228 flags = INTERACTIVE, 229 key = 0x8008; //32776; 230 endif; 231 232 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_PSID_REVERT ) == 0; 233 goto FORMID_VALUE_DISK_ACTION_FORM, 234 prompt = STRING_TOKEN(STR_DISK_INFO_PSID_REVERT), 235 help = STRING_TOKEN(STR_DISK_INFO_GOTO_PSID_REVERT_HELP), 236 flags = INTERACTIVE, 237 key = 0x8007; //32775; 238 endif; 239 240 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_DISABLE_USER ) == 0; 241 goto FORMID_VALUE_DISK_ACTION_FORM, 242 prompt = STRING_TOKEN(STR_DISK_INFO_DISABLE_USER), 243 help = STRING_TOKEN(STR_DISK_INFO_GOTO_DISABLE_USER_HELP), 244 flags = INTERACTIVE, 245 key = 0x8009; //32777; 246 endif; 247 248 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_ENABLE_FEATURE ) == 0; 249 goto FORMID_VALUE_DISK_ACTION_FORM, 250 prompt = STRING_TOKEN(STR_DISK_INFO_ENABLE_FEATURE), 251 help = STRING_TOKEN(STR_DISK_INFO_GOTO_ENABLE_FEATURE_HELP), 252 flags = INTERACTIVE, 253 key = 0x800A; //32778; 254 endif; 255 256 endform; // DISK INFO FORM 257 258 // 259 ///////////////// DISK ACTION FORM ///////////////// 260 // 261 form formid = FORMID_VALUE_DISK_ACTION_FORM, 262 title = STRING_TOKEN(STR_OPAL); 263 264 suppressif TRUE; 265 numeric 266 name = AvailableFields, 267 varid = OpalHiiConfig.AvailableFields, 268 prompt = STRING_TOKEN(STR_NULL), 269 help = STRING_TOKEN(STR_NULL), 270 flags = INTERACTIVE, 271 key = 0x8012, //32786, 272 minimum = 0x0, 273 maximum = 0xFFFF, 274 endnumeric; 275 endif; 276 277 subtitle text = STRING_TOKEN(STR_MAIN_OPAL_VERSION); 278 279 subtitle text = STRING_TOKEN(STR_NULL); 280 281 text 282 help = STRING_TOKEN(STR_NULL), 283 text = STRING_TOKEN(STR_DISK_INFO_SELECTED_DISK_NAME); 284 285 subtitle text = STRING_TOKEN(STR_NULL); 286 287 text 288 help = STRING_TOKEN(STR_NULL), 289 text = STRING_TOKEN(STR_DISK_ACTION_LBL); 290 291 subtitle text = STRING_TOKEN(STR_NULL); 292 293 suppressif (questionref(AvailableFields) & HII_FIELD_KEEP_USER_DATA) == 0; 294 grayoutif (questionref(AvailableFields) & HII_FIELD_KEEP_USER_DATA_FORCED) != 0; 295 checkbox 296 name = MyCheckbox, 297 varid = OpalHiiConfig.KeepUserData, 298 prompt = STRING_TOKEN(STR_KEEP_USER_DATA_PROMPT), 299 help = STRING_TOKEN(STR_KEEP_USER_DATA_HELP), 300 key = 0x8011, //32785, 301 endcheckbox; 302 303 //EMPTY_LINE; 304 text 305 help = STRING_TOKEN(STR_NULL), 306 text = STRING_TOKEN(STR_NULL); 307 endif; 308 endif; 309 310 suppressif (questionref(AvailableFields) & HII_FIELD_PASSWORD) == 0; 311 password 312 varid = OpalHiiConfig.Password, 313 prompt = STRING_TOKEN(STR_PASSWORD_PROMPT), 314 help = STRING_TOKEN(STR_PASSWORD_HELP), 315 flags = INTERACTIVE, 316 key = 0x800C, //32780, 317 minsize = 6, 318 maxsize = 20, 319 endpassword; 320 endif; 321 322 suppressif (questionref(AvailableFields) & HII_FIELD_PSID) == 0; 323 string 324 varid = OpalHiiConfig.Psid, 325 prompt = STRING_TOKEN(STR_REVERT_PROMPT), 326 help = STRING_TOKEN(STR_REVERT_HELP), 327 flags = INTERACTIVE, 328 key = 0x800D, //32781, 329 minsize = PSID_CHARACTER_LENGTH, 330 maxsize = PSID_CHARACTER_LENGTH, 331 endstring; 332 endif; 333 334 subtitle text = STRING_TOKEN(STR_NULL); 335 336 text 337 help = STRING_TOKEN(STR_NULL), 338 text = STRING_TOKEN(STR_ACTION_STATUS); 339 340 subtitle text = STRING_TOKEN(STR_NULL); 341 342 goto FORMID_VALUE_MAIN_MENU, 343 prompt = STRING_TOKEN(STR_GOTO_HOME), 344 help = STRING_TOKEN(STR_GOTO_HOME_HELP), 345 flags = INTERACTIVE, 346 key = 0x8000; //32768; 347 348 endform; // DISK ACTION FORM 349 350 endformset; 351