]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdeModulePkg / Universal / DriverSampleDxe / Vfr.vfr
CommitLineData
7b414b4e 1///** @file\r
93e3992d 2//\r
7b414b4e 3// Sample Setup formset.\r
93e3992d 4//\r
f7d05bdd 5// Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>\r
36c50bd5 6// (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>\r
9d510e61 7// SPDX-License-Identifier: BSD-2-Clause-Patent\r
93e3992d 8//\r
7b414b4e 9//**/\r
93e3992d 10\r
11\r
a9b7e035 12#include <Uefi/UefiMultiPhase.h>\r
93e3992d 13#include "NVDataStruc.h"\r
14\r
15//\r
16// Formset class used by Device Manager\r
17//\r
18#define EFI_NON_DEVICE_CLASS 0x00\r
19#define EFI_DISK_DEVICE_CLASS 0x01\r
20#define EFI_VIDEO_DEVICE_CLASS 0x02\r
21#define EFI_NETWORK_DEVICE_CLASS 0x04\r
22#define EFI_INPUT_DEVICE_CLASS 0x08\r
23#define EFI_ON_BOARD_DEVICE_CLASS 0x10\r
24#define EFI_OTHER_DEVICE_CLASS 0x20\r
25\r
26//\r
27// Formset subclass\r
28//\r
29#define EFI_SETUP_APPLICATION_SUBCLASS 0x00\r
30#define EFI_GENERAL_APPLICATION_SUBCLASS 0x01\r
31#define EFI_FRONT_PAGE_SUBCLASS 0x02\r
32#define EFI_SINGLE_USE_SUBCLASS 0x03\r
33\r
5c5afa72
LG
34#define EFI_USER_INFO_ACCESS_SETUP_ADMIN_GUID \\r
35 { 0x85b75607, 0xf7ce, 0x471e, { 0xb7, 0xe4, 0x2a, 0xea, 0x5f, 0x72, 0x32, 0xee } }\r
36\r
9bd22b08
ED
37#define PERL_GUID \\r
38 { 0x63E60A51, 0x497D, 0xD427, {0xC4, 0xA5, 0xB8, 0xAB, 0xDC, 0x3A, 0xAE, 0xB6 }}\r
39\r
93e3992d 40//\r
41// Labels definition\r
42//\r
43#define LABEL_1_VALUE 0x01\r
44#define LABEL_2_VALUE 0x1000\r
45#define LABEL_UPDATE_BBS 0x2222\r
93e3992d 46\r
47formset\r
c8ad2d7a 48 guid = DRIVER_SAMPLE_FORMSET_GUID,\r
d91c7bf9
LG
49 title = STRING_TOKEN(STR_FORM_SET_TITLE),\r
50 help = STRING_TOKEN(STR_FORM_SET_TITLE_HELP),\r
51 classguid = EFI_HII_PLATFORM_SETUP_FORMSET_GUID,\r
d1102dba 52\r
d2927081 53 //\r
d1102dba 54 // Notes: VfrCompiler will insert a Standard Default Storage declaration\r
d2927081 55 // after the formset declaration. >00000040: 5C 06 00 00 00 00.\r
56 // So we don't need to declare the Standard Default.\r
57 // Please check the vfr.lst file for details.\r
58 // To enable list file for VFR, add "-l" to VfrCompile <Command> in [Build.Visual-Form-Representation-File] as follows:\r
59 // VfrCompile -l --no-pre-processing --output-directory ${d_path} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii\r
60 //\r
d1102dba 61\r
8d00a0f1 62 //\r
93e3992d 63 // Define a Buffer Storage (EFI_IFR_VARSTORE)\r
64 //\r
65 varstore DRIVER_SAMPLE_CONFIGURATION, // This is the data structure type\r
8d00a0f1 66 varid = CONFIGURATION_VARSTORE_ID, // Optional VarStore ID\r
93e3992d 67 name = MyIfrNVData, // Define referenced name in vfr\r
c8ad2d7a 68 guid = DRIVER_SAMPLE_FORMSET_GUID; // GUID of this buffer storage\r
93e3992d 69\r
93e3992d 70 //\r
71 // Define a EFI variable Storage (EFI_IFR_VARSTORE_EFI)\r
72 //\r
78c2b9a3 73 efivarstore MY_EFI_VARSTORE_DATA,\r
d1102dba 74 attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE, // EFI variable attribures\r
78c2b9a3 75 name = MyEfiVar,\r
c8ad2d7a 76 guid = DRIVER_SAMPLE_FORMSET_GUID;\r
93e3992d 77\r
911405a3
DB
78 //\r
79 // Define a Buffer Storage (EFI_IFR_VARSTORE)\r
80 //\r
81 efivarstore MY_EFI_BITS_VARSTORE_DATA, // This is the data structure type\r
82 attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE, // EFI variable attribures\r
83 name = MyEfiBitVar, // Define referenced name in vfr\r
84 guid = DRIVER_SAMPLE_FORMSET_GUID; // GUID of this buffer storage\r
85\r
86 efivarstore MY_EFI_UNION_DATA,\r
87 attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE, // EFI variable attribures\r
88 name = MyEfiUnionVar,\r
89 guid = DRIVER_SAMPLE_FORMSET_GUID;\r
90\r
38ebfecb
LG
91 //\r
92 // Define a Name/Value Storage (EFI_IFR_VARSTORE_NAME_VALUE)\r
93 //\r
94 namevaluevarstore MyNameValueVar, // Define storage reference name in vfr\r
95 name = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME0), // Define Name list of this storage, refer it by MyNameValueVar[0]\r
96 name = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME1), // Define Name list of this storage, refer it by MyNameValueVar[1]\r
97 name = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME2), // Define Name list of this storage, refer it by MyNameValueVar[2]\r
c8ad2d7a 98 guid = DRIVER_SAMPLE_FORMSET_GUID; // GUID of this Name/Value storage\r
38ebfecb 99\r
8d00a0f1 100 defaultstore MyStandardDefault,\r
101 prompt = STRING_TOKEN(STR_STANDARD_DEFAULT_PROMPT),\r
102 attribute = 0x0000; // Default ID: 0000 standard default\r
103\r
104 defaultstore MyManufactureDefault,\r
105 prompt = STRING_TOKEN(STR_MANUFACTURE_DEFAULT_PROMPT),\r
106 attribute = 0x0001; // Default ID: 0001 manufacture default\r
107\r
93e3992d 108 //\r
109 // Define a Form (EFI_IFR_FORM)\r
110 //\r
111 form formid = 1, // Form ID\r
112 title = STRING_TOKEN(STR_FORM1_TITLE); // Form title\r
113\r
114 subtitle text = STRING_TOKEN(STR_SUBTITLE_TEXT);\r
115\r
116 subtitle text = STRING_TOKEN(STR_SUBTITLE_TEXT2);\r
117\r
118 //\r
119 // Define a display only text (EFI_IFR_TEXT)\r
120 //\r
121 text\r
122 help = STRING_TOKEN(STR_TEXT_HELP), // Help string\r
123 text = STRING_TOKEN(STR_CPU_STRING), // Prompt string\r
124 text = STRING_TOKEN(STR_CPU_STRING2); // TextTwo\r
125\r
8d00a0f1 126 //\r
127 // Define action button (EFI_IFR_ACTION)\r
128 //\r
93e3992d 129 text\r
130 help = STRING_TOKEN(STR_EXIT_TEXT),\r
131 text = STRING_TOKEN(STR_EXIT_TEXT),\r
8d00a0f1 132 flags = INTERACTIVE, // VfrCompiler will generate opcode EFI_IFR_ACTION for Text marked as INTERACTIVE\r
93e3992d 133 key = 0x1237;\r
134\r
135 text\r
136 help = STRING_TOKEN(STR_SAVE_TEXT),\r
137 text = STRING_TOKEN(STR_SAVE_TEXT),\r
93e3992d 138 flags = INTERACTIVE,\r
139 key = 0x1238;\r
140\r
b18e7050
ED
141 text\r
142 help = STRING_TOKEN(STR_SAVE_CURRENT),\r
143 text = STRING_TOKEN(STR_SAVE_CURRENT),\r
b18e7050
ED
144 flags = INTERACTIVE,\r
145 key = 0x1243;\r
146\r
147 text\r
148 help = STRING_TOKEN(STR_DISCARD_CURRENT_AND_EXIT),\r
149 text = STRING_TOKEN(STR_DISCARD_CURRENT_AND_EXIT),\r
b18e7050
ED
150 flags = INTERACTIVE,\r
151 key = 0x1244;\r
93e3992d 152 //\r
153 // Define oneof (EFI_IFR_ONE_OF)\r
154 //\r
8d00a0f1 155 oneof name = MyOneOf, // Define reference name for Question\r
156 varid = MyIfrNVData.SuppressGrayOutSomething, // Use "DataStructure.Member" to reference Buffer Storage\r
157 prompt = STRING_TOKEN(STR_ONE_OF_PROMPT),\r
158 help = STRING_TOKEN(STR_ONE_OF_HELP),\r
93e3992d 159 //\r
160 // Define an option (EFI_IFR_ONE_OF_OPTION)\r
161 //\r
162 option text = STRING_TOKEN(STR_ONE_OF_TEXT4), value = 0x0, flags = 0;\r
163 option text = STRING_TOKEN(STR_ONE_OF_TEXT5), value = 0x1, flags = 0;\r
164 //\r
165 // DEFAULT indicate this option will be marked with EFI_IFR_OPTION_DEFAULT\r
166 //\r
167 option text = STRING_TOKEN(STR_ONE_OF_TEXT6), value = 0x2, flags = DEFAULT;\r
168 endoneof;\r
169\r
170 oneof varid = MyIfrNVData.BootOrderLarge,\r
171 prompt = STRING_TOKEN(STR_ONE_OF_PROMPT),\r
172 help = STRING_TOKEN(STR_ONE_OF_HELP),\r
16019c85 173 default value = cond (pushthis == 0 ? 0 : cond ((questionref(MyOneOf) >> 0x4 & 0xF00) == 0x0 + 0x2 ? 0 : 1)),\r
93e3992d 174 option text = STRING_TOKEN(STR_BOOT_ORDER1), value = 0x0, flags = 0;\r
16019c85 175 option text = STRING_TOKEN(STR_BOOT_ORDER2), value = 0x1, flags = 0;\r
93e3992d 176 endoneof;\r
177\r
178 grayoutif ideqval MyIfrNVData.SuppressGrayOutSomething == 0x1;\r
8d00a0f1 179 suppressif questionref(MyOneOf) == 0x0;\r
93e3992d 180\r
181 checkbox varid = MyIfrNVData.ChooseToActivateNuclearWeaponry,\r
182 prompt = STRING_TOKEN(STR_CHECK_BOX_PROMPT),\r
183 help = STRING_TOKEN(STR_CHECK_BOX_HELP),\r
184 //\r
185 // CHECKBOX_DEFAULT indicate this checkbox is marked with EFI_IFR_CHECKBOX_DEFAULT\r
d2927081 186 // CHECKBOX_DEFAULT_MFG indicate EFI_IFR_CHECKBOX_DEFAULT_MFG.\r
93e3992d 187 //\r
d2927081 188 flags = CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG,\r
3abc11f6 189 default = TRUE,\r
93e3992d 190 endcheckbox;\r
191 endif;\r
3abc11f6 192 endif;\r
93e3992d 193\r
194 //\r
195 // Ordered list:\r
196 // sizeof(MyIfrNVData) storage must be UINT8 array, and\r
197 // size written for the variable must be size of the entire\r
198 // variable.\r
199 //\r
200 //\r
201 suppressif ideqval MyIfrNVData.SuppressGrayOutSomething == 0x0;\r
202\r
203 //\r
204 // label is defined as an anchor where you want to insert some dynamic\r
205 // opcodes created on-the-fly\r
206 //\r
207 label LABEL_UPDATE_BBS;\r
208\r
209 orderedlist\r
210 varid = MyIfrNVData.BootOrder,\r
211 prompt = STRING_TOKEN(STR_BOOT_OPTIONS),\r
212 help = STRING_TOKEN(STR_NULL_STRING),\r
3abc11f6
ED
213 flags = RESET_REQUIRED,\r
214 option text = STRING_TOKEN(STR_BOOT_OPTION2), value = 2, flags = 0;\r
215 option text = STRING_TOKEN(STR_BOOT_OPTION1), value = 1, flags = 0;\r
216 option text = STRING_TOKEN(STR_BOOT_OPTION3), value = 3, flags = 0;\r
93e3992d 217 suppressif ideqval MyIfrNVData.BootOrderLarge == 0;\r
3abc11f6 218 option text = STRING_TOKEN(STR_BOOT_OPTION4), value = 4, flags = 0;\r
7bf301db 219 endif;\r
93e3992d 220 endlist;\r
221\r
222 //\r
223 // label should be paired with each other\r
224 //\r
225 label LABEL_END;\r
226\r
227 endif; // end suppressif\r
228\r
9c169595 229 disableif ideqval MyIfrNVData.SuppressGrayOutSomething == 0x2;\r
93e3992d 230 orderedlist\r
231 varid = MyIfrNVData.OrderedList,\r
232 prompt = STRING_TOKEN(STR_TEST_OPCODE),\r
233 help = STRING_TOKEN(STR_TEXT_HELP),\r
3abc11f6
ED
234 flags = RESET_REQUIRED,\r
235 option text = STRING_TOKEN(STR_ONE_OF_TEXT1), value = 3, flags = 0;\r
236 option text = STRING_TOKEN(STR_ONE_OF_TEXT2), value = 2, flags = 0;\r
237 option text = STRING_TOKEN(STR_ONE_OF_TEXT3), value = 1, flags = 0;\r
9495c01e 238 default = {1,2,3},\r
93e3992d 239 endlist;\r
240 endif;\r
241\r
242 label 100;\r
243\r
244 //\r
245 // Define a hyperlink (EFI_IFR_REF)\r
246 //\r
247 goto 0x1234, // Destination Form ID\r
248 prompt = STRING_TOKEN(STR_GOTO_DYNAMIC), // Prompt string\r
249 help = STRING_TOKEN(STR_GOTO_HELP), // Help string\r
250 flags = INTERACTIVE, // INTERACTIVE indicate it's marked with EFI_IFR_FLAG_CALLBACK\r
251 key = 0x1234; // Question ID which will be passed-in in COnfigAccess.Callback()\r
252\r
253 goto 0x1234,\r
254 prompt = STRING_TOKEN(STR_GOTO_DYNAMIC2),\r
255 help = STRING_TOKEN(STR_GOTO_HELP),\r
256 flags = INTERACTIVE,\r
257 key = 0x1235;\r
258\r
259 oneof varid = MyIfrNVData.TestLateCheck,\r
260 prompt = STRING_TOKEN(STR_TEST_OPCODE),\r
261 help = STRING_TOKEN(STR_ONE_OF_HELP),\r
3abc11f6
ED
262 flags = RESET_REQUIRED,\r
263 option text = STRING_TOKEN(STR_ONE_OF_TEXT1), value = 0, flags = 0;\r
264 option text = STRING_TOKEN(STR_ONE_OF_TEXT2), value = 1, flags = DEFAULT;\r
76edfba6
ED
265 warningif prompt = STRING_TOKEN(STR_WARNING_POPUP), timeout = 5,\r
266 ideqval MyIfrNVData.TestLateCheck == 0\r
7bf301db 267 endif;\r
93e3992d 268\r
269 endoneof;\r
270\r
271 oneof varid = MyIfrNVData.TestLateCheck2,\r
272 prompt = STRING_TOKEN(STR_TEST_OPCODE2),\r
273 help = STRING_TOKEN(STR_ONE_OF_HELP),\r
3abc11f6
ED
274 flags = RESET_REQUIRED,\r
275 option text = STRING_TOKEN(STR_ONE_OF_TEXT1), value = 0, flags = DEFAULT;\r
276 option text = STRING_TOKEN(STR_ONE_OF_TEXT2), value = 1, flags = 0;\r
93e3992d 277\r
278 inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
279 ideqid MyIfrNVData.TestLateCheck == MyIfrNVData.TestLateCheck2\r
7bf301db 280 endif;\r
93e3992d 281\r
282 endoneof;\r
283\r
284 oneof varid = MyIfrNVData.QuestionAboutTreeHugging,\r
34326197 285 prompt = STRING_TOKEN(STR_ONE_OF_PROMPT_KEYWORD),\r
93e3992d 286 help = STRING_TOKEN(STR_ONE_OF_HELP),\r
3abc11f6
ED
287 flags = RESET_REQUIRED,\r
288 option text = STRING_TOKEN(STR_ONE_OF_TEXT1), value = 0, flags = 0;\r
289 option text = STRING_TOKEN(STR_ONE_OF_TEXT2), value = 1, flags = DEFAULT;\r
290 option text = STRING_TOKEN(STR_ONE_OF_TEXT3), value = 3, flags = 0;\r
93e3992d 291 endoneof;\r
292\r
36c50bd5
AC
293 //\r
294 // This is an HII option which has REST_STYLE flag and x-UEFI namespace\r
295 // UNI string associated. This HII option could be configured by either in-band\r
296 // edk2 setup browser or the remote management in out-of-band such as Redfish\r
297 // service. This HII option is configured through EFI_KEYWORD_HANDLER_PROTOCOL.\r
298 //\r
299 oneof varid = MyIfrNVData.QuestionXUefiKeywordRestStyle,\r
300 prompt = STRING_TOKEN(STR_ONE_OF_PROMPT_X_UEFI),\r
301 help = STRING_TOKEN(STR_ONE_OF_PROMPT_X_UEFI_HELP),\r
302 flags = RESET_REQUIRED | REST_STYLE,\r
303 option text = STRING_TOKEN(STR_ONE_OF_TEXT1), value = 0, flags = 0;\r
304 option text = STRING_TOKEN(STR_ONE_OF_TEXT2), value = 1, flags = DEFAULT;\r
305 option text = STRING_TOKEN(STR_ONE_OF_TEXT3), value = 3, flags = 0;\r
306 endoneof;\r
307\r
308\r
309 //\r
310 // This is a HII option which has REST_STYLE flag but without the x-UEFI namespace\r
311 // UNI string associated. This HII option could be configured by either\r
312 // setup browser or the remote management in out-of-band such as Redfish\r
313 // service. This HII option is configured through EFI HII Configuration Routing\r
314 // Protocol becasue it doesn't have x-UEFI namespace UNI string.\r
315 //\r
316 numeric varid = MyIfrNVData.QuestionNonXUefiKeywordRestStyle,\r
317 prompt = STRING_TOKEN(STR_ONE_OF_PROMPT_NON_X_UEFI),\r
318 help = STRING_TOKEN(STR_ONE_OF_PROMPT_NON_X_UEFI_HELP),\r
319 flags = RESET_REQUIRED | REST_STYLE,\r
320 minimum = 0,\r
321 maximum = 0xf0,\r
322 step = 0, // Stepping of 0 equates to a manual entering\r
323 // of a value, otherwise it will be adjusted by "+"/"-"\r
324 default = 0, // defaultstore could be used to specify the default type\r
325 // If no defaultstore is specified, it implies Standard Default\r
326 endnumeric;\r
327\r
93e3992d 328 //\r
329 // Define a string (EFI_IFR_STRING)\r
330 //\r
331 string varid = MyIfrNVData.MyStringData,\r
332 prompt = STRING_TOKEN(STR_MY_STRING_PROMPT2),\r
333 help = STRING_TOKEN(STR_MY_STRING_HELP2),\r
334 flags = INTERACTIVE,\r
335 key = 0x1236,\r
336 minsize = 6,\r
cb19869a 337 maxsize = 40,\r
e2100bfa
ED
338 inconsistentif prompt = STRING_TOKEN(STR_STRING_CHECK_ERROR_POPUP),\r
339 pushthis != stringref(STRING_TOKEN(STR_STRING_CHECK))\r
7bf301db 340 endif;\r
93e3992d 341 endstring;\r
342\r
343 //\r
344 // Define a numeric (EFI_IFR_NUMERIC)\r
345 //\r
346 numeric varid = MyIfrNVData.HowOldAreYouInYearsManual,\r
347 prompt = STRING_TOKEN(STR_NUMERIC_READONLY_PROMPT),\r
348 help = STRING_TOKEN(STR_NUMERIC_HELP0),\r
349 flags = READ_ONLY, // READ_ONLY indicate it's marked with EFI_IFR_FLAG_READ_ONLY\r
350 minimum = 0,\r
351 maximum = 0xf0,\r
352 step = 0, // Stepping of 0 equates to a manual entering\r
353 // of a value, otherwise it will be adjusted by "+"/"-"\r
8d00a0f1 354 default = 21, // defaultstore could be used to specify the default type\r
355 // If no defaultstore is specified, it implies Standard Default\r
93e3992d 356\r
357 endnumeric;\r
358\r
359 numeric varid = MyIfrNVData.HowOldAreYouInYearsManual,\r
360 prompt = STRING_TOKEN(STR_NUMERIC_MANUAL_PROMPT),\r
361 help = STRING_TOKEN(STR_NUMERIC_HELP0),\r
362 minimum = 0,\r
363 maximum = 0xf0,\r
364 step = 0,\r
b204f2b5 365 default value = questionrefval(devicepath = STRING_TOKEN (STR_DEVICE_PATH), guid = DRIVER_SAMPLE_FORMSET_GUID, 0x1111),\r
93e3992d 366\r
367 inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
368 ideqval MyIfrNVData.HowOldAreYouInYearsManual == 99\r
369 OR\r
78c2b9a3 370 ideqid MyIfrNVData.HowOldAreYouInYearsManual == MyEfiVar.Field8\r
93e3992d 371 OR\r
372 ideqvallist MyIfrNVData.HowOldAreYouInYearsManual == 1 3 5 7\r
7bf301db 373 endif;\r
93e3992d 374\r
375 endnumeric;\r
376\r
78c2b9a3 377 numeric varid = MyEfiVar.Field8, // Reference of EFI variable storage\r
16019c85 378 questionid = 0x1111,\r
93e3992d 379 prompt = STRING_TOKEN(STR_TALL_HEX_PROMPT),\r
380 help = STRING_TOKEN(STR_NUMERIC_HELP1),\r
16019c85 381 flags = DISPLAY_UINT_HEX | INTERACTIVE, // Display in HEX format (if not specified, default is in decimal format)\r
93e3992d 382 minimum = 0,\r
383 maximum = 250,\r
78c2b9a3
ED
384 default = 18, defaultstore = MyStandardDefault, // This is standard default value\r
385 default = 19, defaultstore = MyManufactureDefault, // This is manufacture default value\r
93e3992d 386\r
387 endnumeric;\r
388\r
38ebfecb
LG
389 //\r
390 // Define numeric using Name/Value Storage\r
391 //\r
392 numeric varid = MyNameValueVar[0], // This numeric take NameValueVar0 as storage\r
393 prompt = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME0),\r
394 help = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME0_HELP),\r
395 //\r
396 // Size should be defined for numeric when use Name/Value storage\r
397 // Valid value for numerice size are: NUMERIC_SIZE_1, NUMERIC_SIZE_2, NUMERIC_SIZE_4 and NUMERIC_SIZE_8\r
398 //\r
399 flags = NUMERIC_SIZE_1, // Size of this numeric is 1 byte\r
400 minimum = 0,\r
401 maximum = 0xff,\r
402 step = 0,\r
f67c4382 403 locked,\r
82e8c138
ED
404 default = 16, defaultstore = MyStandardDefault, // This is standard default value\r
405 default = 17, defaultstore = MyManufactureDefault, // This is manufacture default value\r
38ebfecb
LG
406 endnumeric;\r
407\r
408 numeric varid = MyNameValueVar[1], // This numeric take NameValueVar1 as storage\r
409 prompt = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME1),\r
410 help = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME1_HELP),\r
411 flags = NUMERIC_SIZE_2, // Size of this numeric is 2 bytes\r
412 minimum = 0,\r
413 maximum = 0xffff,\r
414 step = 0,\r
82e8c138
ED
415 default = 18, defaultstore = MyStandardDefault, // This is standard default value\r
416 default = 19, defaultstore = MyManufactureDefault, // This is manufacture default value\r
38ebfecb
LG
417 endnumeric;\r
418\r
419 //\r
420 // Define string using Name/Value Storage\r
421 //\r
422 string varid = MyNameValueVar[2], // This string take NameValueVar2 as storage\r
423 prompt = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME2),\r
424 help = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME2_HELP),\r
425 minsize = 2,\r
426 maxsize = 0x14,\r
427 endstring;\r
428\r
78c2b9a3
ED
429 oneof varid = MyEfiVar.Field16,\r
430 prompt = STRING_TOKEN(STR_ONE_OF_PROMPT),\r
431 help = STRING_TOKEN(STR_NUMERIC_NUM_HELP),\r
432 option text = STRING_TOKEN(STR_BOOT_ORDER1), value = 0x0, flags = 0;\r
433 option text = STRING_TOKEN(STR_BOOT_ORDER2), value = 0x1, flags = DEFAULT;\r
434 endoneof;\r
435\r
93e3992d 436 label LABEL_1_VALUE;\r
437 label LABEL_2_VALUE;\r
438\r
439 grayoutif ideqval MyIfrNVData.HowOldAreYouInYearsManual == 23 AND ideqval MyIfrNVData.SuppressGrayOutSomething == 0x1;\r
440 numeric varid = MyIfrNVData.HowOldAreYouInYears,\r
441 prompt = STRING_TOKEN(STR_NUMERIC_STEP_PROMPT),\r
442 help = STRING_TOKEN(STR_NUMERIC_HELP2),\r
443 minimum = 0,\r
444 maximum = 243,\r
445 step = 1,\r
8d00a0f1 446 default = 18, defaultstore = MyStandardDefault, // This is standard default value\r
447 default = 19, defaultstore = MyManufactureDefault, // This is manufacture default value\r
d1102dba 448\r
93e3992d 449 endnumeric;\r
450 endif;\r
ee31d1be
ED
451\r
452 numeric varid = MyIfrNVData.GetDefaultValueFromAccess,\r
453 questionid = 0x1239,\r
454 prompt = STRING_TOKEN(STR_DEFAULT_VALUE_FROM_ACCESS_PROMPT),\r
455 help = STRING_TOKEN(STR_DEFAULT_VALUE_FROM_ACCESS_HELP),\r
d1102dba 456 flags = DISPLAY_UINT_HEX | INTERACTIVE,\r
ee31d1be
ED
457 minimum = 0,\r
458 maximum = 255,\r
459 step = 1,\r
460 default = 18,\r
461 endnumeric;\r
462\r
463 numeric varid = MyIfrNVData.GetDefaultValueFromCallBack,\r
464 questionid = 0x1240,\r
465 prompt = STRING_TOKEN(STR_DEFAULT_VALUE_FROM_CALLBACK_PROMPT),\r
466 help = STRING_TOKEN(STR_DEFAULT_VALUE_FROM_CALLBACK_HELP),\r
d1102dba 467 flags = DISPLAY_UINT_HEX | INTERACTIVE,\r
ee31d1be
ED
468 minimum = 0,\r
469 maximum = 255,\r
470 step = 1,\r
471 default = 18,\r
472 endnumeric;\r
622ce645
DB
473\r
474 orderedlist\r
475 varid = MyIfrNVData.GetDefaultValueFromCallBackForOrderedList,\r
476 questionid = 0x1252,\r
477 prompt = STRING_TOKEN(STR_DEFAULT_VALUE_FROM_CALLBACK_PROMPT),\r
478 help = STRING_TOKEN(STR_DEFAULT_VALUE_FROM_CALLBACK_HELP),\r
479 flags = INTERACTIVE,\r
480 option text = STRING_TOKEN(STR_ONE_OF_TEXT1), value = 1, flags = 0;\r
481 option text = STRING_TOKEN(STR_ONE_OF_TEXT2), value = 2, flags = 0;\r
482 option text = STRING_TOKEN(STR_ONE_OF_TEXT3), value = 3, flags = 0;\r
483 endlist;\r
d1102dba 484\r
8d00a0f1 485 resetbutton\r
486 defaultstore = MyStandardDefault,\r
487 prompt = STRING_TOKEN(STR_STANDARD_DEFAULT_PROMPT),\r
488 help = STRING_TOKEN(STR_STANDARD_DEFAULT_HELP),\r
489 endresetbutton;\r
d1102dba 490\r
8d00a0f1 491 resetbutton\r
492 defaultstore = MyManufactureDefault,\r
493 prompt = STRING_TOKEN(STR_MANUFACTURE_DEFAULT_PROMPT),\r
494 help = STRING_TOKEN(STR_MANUFACTURE_DEFAULT_HELP),\r
495 endresetbutton;\r
93e3992d 496\r
fe817262 497 //\r
498 // Sample use case for IFR Security op-code\r
499 //\r
500 grayoutif NOT security (EFI_USER_INFO_ACCESS_SETUP_ADMIN_GUID);\r
501 text\r
502 help = STRING_TOKEN(STR_TEXT_SECRUITY_TEST_HELP),\r
503 text = STRING_TOKEN(STR_TEXT_SECRUITY_TEST_TEXT);\r
504 endif;\r
003f3c00
DB
505\r
506 numeric varid = MyEfiVar.SubmittedCallback,\r
507 questionid = 0x1250,\r
508 prompt = STRING_TOKEN(STR_SUBMITTED_CALLBACK_TEST_PROMPT),\r
509 help = STRING_TOKEN(STR_SUBMITTED_CALLBACK_TEST_HELP),\r
510 flags = INTERACTIVE,\r
511 minimum = 0,\r
512 maximum = 255,\r
513 default = 18,\r
514 endnumeric;\r
dfc55275
DB
515\r
516 text\r
517 help = STRING_TOKEN(STR_POPUP_TEST_HELP),\r
518 text = STRING_TOKEN(STR_POPUP_TEST_PROMPT),\r
519 flags = INTERACTIVE,\r
520 key = 0x1330;\r
521\r
93e3992d 522 goto 2,\r
523 prompt = STRING_TOKEN(STR_GOTO_FORM2), //SecondSetupPage // this too has no end-op and basically it's a jump to a form ONLY\r
524 help = STRING_TOKEN(STR_GOTO_HELP);\r
525\r
526 goto 3,\r
527 prompt = STRING_TOKEN(STR_GOTO_FORM3), //ThirdSetupPage // this too has no end-op and basically it's a jump to a form ONLY\r
528 help = STRING_TOKEN(STR_GOTO_HELP);\r
529\r
96a65fc8
LG
530 goto 4,\r
531 prompt = STRING_TOKEN(STR_GOTO_FORM4), //FourthSetupPage // this too has no end-op and basically it's a jump to a form ONLY\r
532 help = STRING_TOKEN(STR_GOTO_HELP);\r
533\r
78c2b9a3
ED
534 goto 5,\r
535 prompt = STRING_TOKEN(STR_GOTO_FORM5), //FifthSetupPage // this too has no end-op and basically it's a jump to a form ONLY\r
536 help = STRING_TOKEN(STR_GOTO_FORM5_HELP);\r
d1102dba 537\r
78c2b9a3
ED
538 goto 6,\r
539 prompt = STRING_TOKEN(STR_GOTO_FORM6), //SixthSetupPage // this too has no end-op and basically it's a jump to a form ONLY\r
540 help = STRING_TOKEN(STR_GOTO_HELP);\r
541\r
d1102dba 542 goto\r
b2e444aa
ED
543 formsetguid = DRIVER_SAMPLE_INVENTORY_GUID,\r
544 formid = 0x1,\r
545 question = 0x1,\r
546 prompt = STRING_TOKEN(STR_GOTO_ANOTHER_FORMSET),\r
547 help = STRING_TOKEN(STR_GOTO_ANOTHER_FORMSET_HELP);\r
548\r
d1102dba 549 guidop\r
c8ad2d7a 550 guid = DRIVER_SAMPLE_FORMSET_GUID,\r
78c2b9a3 551 datatype = MY_EFI_VARSTORE_DATA,\r
d1102dba 552 data.Field8 = 0x21,\r
8f766f6e 553 data.Field16 = 0x2121,\r
d1102dba 554 data.OrderedList[0] = 0x21,\r
8f766f6e
ED
555 endguidop;\r
556\r
911405a3
DB
557 goto 7,\r
558 prompt = STRING_TOKEN(STR_GOTO_FORM7),\r
559 help = STRING_TOKEN(STR_GOTO_FORM7_HELP);\r
8f766f6e 560\r
93e3992d 561 endform;\r
562\r
9c169595
LG
563 suppressif ideqval MyIfrNVData.BootOrderLarge == 0;\r
564 form formid = 2, // SecondSetupPage,\r
565 title = STRING_TOKEN(STR_FORM2_TITLE); // note formid is a variable (for readability) (UINT16) - also added Form to the line to signify the Op-Code\r
566\r
bf1a8c06
ED
567 date\r
568 name = Date,\r
569 prompt = STRING_TOKEN(STR_DATE_PROMPT),\r
570 help = STRING_TOKEN(STR_DATE_HELP),\r
571 flags = STORAGE_TIME,\r
a94733b0 572 default = 2004/1/1,\r
9c169595
LG
573\r
574 inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
575 ideqval Date.Day == 31\r
576 AND\r
577 ideqvallist Date.Month == 2 4 6 9 11\r
7bf301db 578 endif;\r
9c169595
LG
579\r
580 //\r
581 // If the day is 30 AND month is 2\r
582 //\r
583 inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
584 ideqval Date.Day == 30\r
585 AND\r
586 ideqval Date.Month == 2\r
7bf301db 587 endif;\r
9c169595
LG
588\r
589 //\r
590 // If the day is 29 AND month is 2 AND it year is NOT a leapyear\r
591 //\r
592 inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
593 ideqval Date.Day == 0x1D\r
594 AND\r
595 ideqval Date.Month == 2\r
596 AND\r
597 NOT\r
598 ideqvallist Date.Year == 2004 2008 20012 20016 2020 2024 2028 2032 2036\r
7bf301db 599 endif;\r
9c169595
LG
600\r
601 enddate;\r
602\r
b18e7050
ED
603 text\r
604 help = STRING_TOKEN(STR_SAVE_CURRENT_AND_EXIT),\r
605 text = STRING_TOKEN(STR_SAVE_CURRENT_AND_EXIT),\r
b18e7050
ED
606 flags = INTERACTIVE,\r
607 key = 0x1241;\r
608\r
609 text\r
610 help = STRING_TOKEN(STR_DISCARD_CURRENT),\r
611 text = STRING_TOKEN(STR_DISCARD_CURRENT),\r
b18e7050
ED
612 flags = INTERACTIVE,\r
613 key = 0x1242;\r
614\r
bf1a8c06
ED
615 time\r
616 prompt = STRING_TOKEN(STR_TIME_PROMPT),\r
617 help = STRING_TOKEN(STR_TIME_HELP),\r
618 flags = STORAGE_TIME,\r
9c169595 619 endtime;\r
d1102dba
LG
620\r
621 time\r
622 name = MyTime,\r
623 varid = MyIfrNVData.Time,\r
624 prompt = STRING_TOKEN(STR_TIME_PROMPT),\r
625 help = STRING_TOKEN(STR_TIME_PROMPT),\r
4a6876b7 626 flags = STORAGE_NORMAL | SECOND_SUPPRESS,\r
d1102dba 627 default = 15:33:33,\r
ee31d1be 628 endtime;\r
d1102dba 629\r
9c169595
LG
630 checkbox varid = MyIfrNVData.ChooseToActivateNuclearWeaponry,\r
631 prompt = STRING_TOKEN(STR_CHECK_BOX_PROMPT),\r
632 help = STRING_TOKEN(STR_CHECK_BOX_HELP),\r
633 flags = CHECKBOX_DEFAULT,\r
9c169595 634 endcheckbox;\r
93e3992d 635\r
9c169595
LG
636 text\r
637 help = STRING_TOKEN(STR_TEXT_HELP),\r
638 text = STRING_TOKEN(STR_TEXT_TEXT_1);\r
93e3992d 639\r
9c169595
LG
640 text\r
641 help = STRING_TOKEN(STR_TEXT_HELP),\r
642 text = STRING_TOKEN(STR_TEXT_TEXT_1),\r
643 text = STRING_TOKEN(STR_TEXT_TEXT_2);\r
93e3992d 644\r
9c169595
LG
645 goto 1,\r
646 prompt = STRING_TOKEN(STR_GOTO_FORM1), //MainSetupPage // this too has no end-op and basically it's a jump to a form ONLY\r
647 help = STRING_TOKEN(STR_GOTO_HELP);\r
93e3992d 648\r
d1102dba 649 goto\r
78c2b9a3
ED
650 varid = MyIfrNVData.RefData,\r
651 prompt = STRING_TOKEN(STR_GOTO_DYNAMIC3),\r
652 help = STRING_TOKEN(STR_GOTO_DYNAMIC3_HELP),\r
653 flags = INTERACTIVE,\r
e7fd76d1 654 key = 0x1248,\r
78c2b9a3
ED
655 //\r
656 // Set the defult value, format is QuestionId; FormId; FormsetGuid; Device Path String Token\r
657 //\r
d1102dba 658 default = 0;0;ZERO_GUID;STRING_TOKEN(STR_NULL_STRING),\r
e7fd76d1 659 ; // goto opcode end flag.\r
78c2b9a3 660\r
d1102dba 661 goto\r
78c2b9a3
ED
662 prompt = STRING_TOKEN(STR_GOTO_DYNAMIC4),\r
663 help = STRING_TOKEN(STR_GOTO_DYNAMIC4_HELP),\r
664 flags = INTERACTIVE,\r
665 key = 0x1249;\r
d1102dba 666\r
9c169595
LG
667 endform;\r
668 endif;\r
93e3992d 669\r
670 form formid = 3, title = STRING_TOKEN(STR_FORM3_TITLE); // note formid is a variable (for readability) (UINT16) - also added Form to the line to signify the Op-Code\r
671\r
78c2b9a3 672 suppressif ideqval MyEfiVar.Field8 == 111;\r
93e3992d 673 text\r
674 help = STRING_TOKEN(STR_TEXT_HELP),\r
675 text = STRING_TOKEN(STR_TEXT_TEXT_1);\r
676 endif;\r
677\r
8d00a0f1 678 goto 1,\r
679 prompt = STRING_TOKEN(STR_GOTO_FORM1), //MainSetupPage\r
680 help = STRING_TOKEN(STR_GOTO_HELP);\r
681\r
682 numeric varid = MyIfrNVData.DynamicRefresh,\r
683 prompt = STRING_TOKEN(STR_NUMERIC_MANUAL_PROMPT),\r
684 help = STRING_TOKEN(STR_NUMERIC_HELP0),\r
685 flags = INTERACTIVE,\r
686 key = 0x5678,\r
687 minimum = 0,\r
688 maximum = 0xff,\r
689 step = 0,\r
690 default = 0,\r
691 refresh interval = 3 // Refresh interval in seconds\r
692 endnumeric;\r
693\r
588fde6c 694 grayoutif match2 (stringref(STRING_TOKEN(STR_PATTERN)), stringref(STRING_TOKEN(STR_STRING)), PERL_GUID);\r
d1102dba 695 numeric\r
9bd22b08
ED
696 varid = MyIfrNVData.Match2,\r
697 prompt = STRING_TOKEN(STR_MATCH2_PROMPT),\r
698 help = STRING_TOKEN(STR_MATCH2_HELP),\r
699 minimum = 0,\r
700 maximum = 243,\r
701 endnumeric;\r
702 endif;\r
703\r
7e3bcccb 704 label LABEL_UPDATE2;\r
8d00a0f1 705 label LABEL_END;\r
706\r
93e3992d 707 endform;\r
708\r
d1102dba
LG
709 formmap formid = 4,\r
710 maptitle = STRING_TOKEN(STR_SAMPL_MAP_METHOD);\r
c8ad2d7a 711 mapguid = DRIVER_SAMPLE_FORMSET_GUID;\r
d1102dba 712 maptitle = STRING_TOKEN(STR_STANDARD_MAP_METHOD);\r
96a65fc8
LG
713 mapguid = EFI_HII_STANDARD_FORM_GUID;\r
714\r
d1102dba 715 oneof varid = MyIfrNVData.SerialPortNo,\r
96a65fc8
LG
716 prompt = STRING_TOKEN(STR_SERIAL_PORT),\r
717 help = STRING_TOKEN(STR_ONE_OF_HELP),\r
718\r
719 read cond (get(MyIfrNVData.SerialPortStatus) != 0 ? 0 : cond ((get(MyIfrNVData.SerialPortIo) & 0xF00) >> 0x8 == get(MyIfrNVData.SerialPortIrq) - 1 ? UNDEFINED : map (get(MyIfrNVData.SerialPortIo) : 0x3f8,1; 0x2F8,2; 0x3E8,3; 0x2E8,4;)));\r
720 write set(MyIfrNVData.SerialPortStatus, pushthis != 0) AND set(MyIfrNVData.SerialPortIo, map (pushthis : 1,0x3F8; 2,0x2F8; 3,0x3E8; 4,0x2E8;)) AND set (MyIfrNVData.SerialPortIrq, map (pushthis: 1,4; 2,3; 3,4; 4,3;));\r
d1102dba 721\r
96a65fc8
LG
722 option text = STRING_TOKEN(STR_SERIAL_PORT_DISABLE), value = 0x0, flags = DEFAULT;\r
723 option text = STRING_TOKEN(STR_SERIAL_PORT1), value = 0x1, flags = 0;\r
724 option text = STRING_TOKEN(STR_SERIAL_PORT2), value = 0x2, flags = 0;\r
725 option text = STRING_TOKEN(STR_SERIAL_PORT3), value = 0x3, flags = 0;\r
726 option text = STRING_TOKEN(STR_SERIAL_PORT4), value = 0x4, flags = 0;\r
727 endoneof;\r
728\r
729 grayoutif TRUE;\r
730 checkbox varid = MyIfrNVData.SerialPortStatus,\r
731 prompt = STRING_TOKEN(STR_SERIAL_PORT_STATUS),\r
732 help = STRING_TOKEN(STR_CHECK_BOX_HELP),\r
733 endcheckbox;\r
734 endif;\r
735\r
736 grayoutif TRUE;\r
737 suppressif ideqval MyIfrNVData.SerialPortStatus == 0;\r
d1102dba 738 oneof varid = MyIfrNVData.SerialPortIo,\r
96a65fc8
LG
739 prompt = STRING_TOKEN(STR_SERIAL_PORT_IO_ADDRESS),\r
740 help = STRING_TOKEN(STR_ONE_OF_HELP),\r
d1102dba 741\r
96a65fc8
LG
742 option text = STRING_TOKEN(STR_SERIAL_PORT1_IOADDR), value = 0x3F8, flags = DEFAULT;\r
743 option text = STRING_TOKEN(STR_SERIAL_PORT2_IOADDR), value = 0x2F8, flags = 0;\r
744 option text = STRING_TOKEN(STR_SERIAL_PORT3_IOADDR), value = 0x3E8, flags = 0;\r
745 option text = STRING_TOKEN(STR_SERIAL_PORT4_IOADDR), value = 0x2E8, flags = 0;\r
746 endoneof;\r
747 endif;\r
748 endif;\r
749\r
750 grayoutif TRUE;\r
751 suppressif ideqval MyIfrNVData.SerialPortStatus == 0;\r
d1102dba 752 oneof varid = MyIfrNVData.SerialPortIrq,\r
96a65fc8
LG
753 prompt = STRING_TOKEN(STR_SERIAL_PORT_IRQ),\r
754 help = STRING_TOKEN(STR_ONE_OF_HELP),\r
d1102dba 755\r
96a65fc8
LG
756 option text = STRING_TOKEN(STR_SERIAL_PORT13_IRQ), value = 0x4, flags = DEFAULT;\r
757 option text = STRING_TOKEN(STR_SERIAL_PORT24_IRQ), value = 0x3, flags = 0;\r
758 endoneof;\r
759 endif;\r
760 endif;\r
761\r
762 goto 1,\r
763 prompt = STRING_TOKEN(STR_GOTO_FORM1), //MainSetupPage\r
764 help = STRING_TOKEN(STR_GOTO_HELP);\r
93e3992d 765\r
766 endform;\r
767\r
78c2b9a3
ED
768 form formid = 5, // Modal form\r
769 title = STRING_TOKEN(STR_MODAL_FORM_TITLE);\r
770 //\r
771 // This form is a modal form.\r
772 //\r
773 modal;\r
774 text\r
775 help = STRING_TOKEN(STR_EXIT_TEXT),\r
776 text = STRING_TOKEN(STR_EXIT_TEXT),\r
78c2b9a3
ED
777 flags = INTERACTIVE, // VfrCompiler will generate opcode EFI_IFR_ACTION for Text marked as INTERACTIVE\r
778 key = 0x1245;\r
779\r
780 text\r
781 help = STRING_TOKEN(STR_SAVE_TEXT),\r
782 text = STRING_TOKEN(STR_SAVE_TEXT),\r
78c2b9a3
ED
783 flags = INTERACTIVE, // VfrCompiler will generate opcode EFI_IFR_ACTION for Text marked as INTERACTIVE\r
784 key = 0x1246;\r
785 endform;\r
786\r
787 form formid = 6, // Form to show the refresh guid group op-code\r
d1102dba 788 title = STRING_TOKEN(STR_FORM6_TITLE);\r
78c2b9a3
ED
789\r
790 text\r
791 help = STRING_TOKEN(STR_TEXT_REFRESH_GUID),\r
792 text = STRING_TOKEN(STR_TEXT_REFRESH_GUID);\r
793\r
794 numeric varid = MyIfrNVData.RefreshGuidCount,\r
795 prompt = STRING_TOKEN(STR_TEXT_REFRESH_GUID_COUNT),\r
796 help = STRING_TOKEN(STR_NUMERIC_HELP0),\r
797 flags = INTERACTIVE,\r
798 key = 0x1247,\r
799 minimum = 0,\r
800 maximum = 0xff,\r
801 step = 0,\r
802 default = 0,\r
803 refreshguid = EFI_IFR_REFRESH_ID_OP_GUID,\r
804 endnumeric;\r
805\r
806 label LABEL_UPDATE3;\r
807 label LABEL_END;\r
808\r
809 endform;\r
810\r
93e3992d 811 form formid = 0x1234, // Dynamically created page,\r
812 title = STRING_TOKEN(STR_DYNAMIC_TITLE); // note formid is a variable (for readability) (UINT16) - also added Form to the line to signify the Op-Code\r
813\r
7e3bcccb 814 label LABEL_UPDATE1;\r
93e3992d 815 //\r
816 // This is where we will insert dynamic created opcodes\r
817 //\r
818 label LABEL_END;\r
819\r
820 endform;\r
821\r
911405a3
DB
822\r
823 form formid = 7, // Form to show the question refer to union and bit Varstore\r
824 title = STRING_TOKEN(STR_FORM7_TITLE);\r
825\r
826 subtitle text = STRING_TOKEN(STR_NEST_BIT_EFI_VARSTORE);\r
827\r
828 checkbox varid = MyEfiBitVar.BitsData.NestBitCheckbox,\r
829 prompt = STRING_TOKEN(STR_BIT_NEST_CHECK_BOX_PROMPT),\r
830 help = STRING_TOKEN(STR_BIT_NEST_CHECK_BOX_HELP),\r
831 flags = CHECKBOX_DEFAULT,\r
832 endcheckbox;\r
833\r
834 oneof varid = MyEfiBitVar.BitsData.NestBitOneof,\r
835 prompt = STRING_TOKEN(STR_ONE_OF_BIT_NEST_PROMPT),\r
836 help = STRING_TOKEN(STR_ONE_OF_BIT_NEST_HELP),\r
837 option text = STRING_TOKEN(STR_BOOT_ORDER1), value = 0, flags = MANUFACTURING;\r
838 option text = STRING_TOKEN(STR_BOOT_ORDER2), value = 1, flags = DEFAULT;\r
839 endoneof;\r
840\r
841 numeric varid = MyEfiBitVar.BitsData.NestBitNumeric,\r
842 questionid = 0x6666,\r
843 prompt = STRING_TOKEN(STR_BIT_NEST_NUMERIC_PROMPT),\r
844 help = STRING_TOKEN(STR_BIT_NEST_NUMERIC_DEFAULT_HELP),\r
845 flags = DISPLAY_UINT_HEX | INTERACTIVE,\r
846 minimum = 2,\r
847 maximum = 15,\r
848 step = 1,\r
849 endnumeric;\r
850\r
851 oneof varid = MyEfiBitVar.BitsData.NestByteField,\r
852 prompt = STRING_TOKEN(BYTE_QUESTION_NEST_BIT_PROMPT),\r
853 help = STRING_TOKEN(BYTE_QUESTION_NEST_BIT_HELP),\r
854 option text = STRING_TOKEN(STR_BOOT_ORDER1), value = 0, flags = MANUFACTURING;\r
855 option text = STRING_TOKEN(STR_BOOT_ORDER2), value = 1, flags = DEFAULT;\r
856 endoneof;\r
857\r
858 subtitle text = STRING_TOKEN(STR_SUBTITLE_TEXT2);\r
859 subtitle text = STRING_TOKEN(STR_BIT_EFI_VARSTORE);\r
860\r
861 checkbox varid = MyEfiBitVar.EfiBitCheckbox,\r
862 prompt = STRING_TOKEN(STR_BIT_CHECK_BOX_PROMPT),\r
863 help = STRING_TOKEN(STR_BIT_CHECK_BOX_HELP),\r
864 flags = CHECKBOX_DEFAULT,\r
865 endcheckbox;\r
866\r
867 grayoutif ideqval MyEfiBitVar.EfiBitGrayoutTest == 0;\r
868 numeric varid = MyEfiBitVar.EfiBitNumeric,\r
869 prompt = STRING_TOKEN(STR_BIT_NUMERIC_PROMPT),\r
870 help = STRING_TOKEN(STR_BIT_NUMERIC_HELP),\r
871 minimum = 0,\r
872 maximum = 7,\r
873 step = 0,\r
874 default = 4, defaultstore = MyStandardDefault,\r
875 default = 5, defaultstore = MyManufactureDefault,\r
876 endnumeric;\r
877 endif;\r
878\r
879 oneof varid = MyEfiBitVar.EfiBitOneof,\r
880 questionid = 0x9999,\r
881 prompt = STRING_TOKEN(STR_ONE_OF_BIT_PROMPT),\r
882 help = STRING_TOKEN(STR_ONE_OF_BIT_HELP),\r
883 option text = STRING_TOKEN(STR_BOOT_ORDER1), value = 0x0, flags = MANUFACTURING;\r
884 option text = STRING_TOKEN(STR_BOOT_ORDER2), value = 0x1, flags = DEFAULT;\r
885 endoneof;\r
886\r
887 subtitle text = STRING_TOKEN(STR_SUBTITLE_TEXT2);\r
888 subtitle text = STRING_TOKEN(STR_NEST_BIT_VARSTORE);\r
889 checkbox varid = MyIfrNVData.MyBitData.NestBitCheckbox,\r
890 prompt = STRING_TOKEN(STR_BIT_NEST_CHECK_BOX_PROMPT),\r
891 help = STRING_TOKEN(STR_BIT_NEST_CHECK_BOX_HELP),\r
892 flags = CHECKBOX_DEFAULT,\r
893 endcheckbox;\r
894\r
895 oneof varid = MyIfrNVData.MyBitData.NestBitOneof,\r
896 prompt = STRING_TOKEN(STR_ONE_OF_BIT_NEST_PROMPT),\r
897 help = STRING_TOKEN(STR_ONE_OF_BIT_NEST_HELP),\r
898 option text = STRING_TOKEN(STR_BOOT_ORDER1), value = 0, flags = MANUFACTURING;\r
899 option text = STRING_TOKEN(STR_BOOT_ORDER2), value = 1, flags = DEFAULT;\r
900 endoneof;\r
901\r
902 numeric varid = MyIfrNVData.MyBitData.NestBitNumeric,\r
903 prompt = STRING_TOKEN(STR_BIT_NEST_NUMERIC_PROMPT),\r
904 help = STRING_TOKEN(STR_BIT_NEST_NUMERIC_HELP),\r
905 minimum = 0,\r
906 maximum = 7,\r
907 step = 0,\r
908 default = 6, defaultstore = MyStandardDefault,\r
909 default = 7, defaultstore = MyManufactureDefault,\r
910 endnumeric;\r
911\r
912 oneof varid = MyIfrNVData.MyBitData.NestByteField,\r
913 prompt = STRING_TOKEN(BYTE_QUESTION_NEST_BIT_PROMPT),\r
914 help = STRING_TOKEN(BYTE_QUESTION_NEST_BIT_HELP),\r
915 option text = STRING_TOKEN(STR_BOOT_ORDER1), value = 0, flags = MANUFACTURING;\r
916 option text = STRING_TOKEN(STR_BOOT_ORDER2), value = 1, flags = DEFAULT;\r
917 endoneof;\r
918\r
919 subtitle text = STRING_TOKEN(STR_SUBTITLE_TEXT2);\r
920 subtitle text = STRING_TOKEN(STR_BIT_VARSTORE);\r
921\r
922 oneof varid = MyIfrNVData.BitOneof,\r
923 prompt = STRING_TOKEN(STR_ONE_OF_BIT_PROMPT),\r
924 help = STRING_TOKEN(STR_ONE_OF_BIT_HELP),\r
925 option text = STRING_TOKEN(STR_BOOT_ORDER1), value = 0, flags = MANUFACTURING;\r
926 option text = STRING_TOKEN(STR_BOOT_ORDER2), value = 1, flags = DEFAULT;\r
927 endoneof;\r
928\r
929 checkbox varid = MyIfrNVData.BitCheckbox,\r
930 prompt = STRING_TOKEN(STR_BIT_CHECK_BOX_PROMPT),\r
931 help = STRING_TOKEN(STR_BIT_CHECK_BOX_HELP),\r
932 flags = CHECKBOX_DEFAULT,\r
933 endcheckbox;\r
934\r
935 numeric varid = MyIfrNVData.BitNumeric,\r
936 prompt = STRING_TOKEN(STR_BIT_NUMERIC_PROMPT),\r
937 help = STRING_TOKEN(STR_BUFFER_BIT_NUMERIC_HELP),\r
938 minimum = 0,\r
939 maximum = 20,\r
940 step = 0,\r
941 default = 16, defaultstore = MyStandardDefault,\r
942 default = 17, defaultstore = MyManufactureDefault,\r
943 endnumeric;\r
944\r
945 subtitle text = STRING_TOKEN(STR_SUBTITLE_TEXT2);\r
946 subtitle text = STRING_TOKEN(STR_UNION_EFI_VARSTORE);\r
947\r
f7d05bdd 948 numeric varid = MyEfiUnionVar.UnionNumeric,\r
911405a3
DB
949 prompt = STRING_TOKEN(STR_UNION_BYTE_NUMERIC_PROMPT),\r
950 help = STRING_TOKEN(STR_UNION_BYTE_NUMERIC_HELP),\r
951 minimum = 0,\r
952 maximum = 20,\r
953 step = 0,\r
954 default = 7, defaultstore = MyStandardDefault,\r
955 default = 8, defaultstore = MyManufactureDefault,\r
956 endnumeric;\r
957\r
911405a3
DB
958 guidop\r
959 guid = DRIVER_SAMPLE_FORMSET_GUID,\r
960 datatype = MY_EFI_BITS_VARSTORE_DATA,\r
961 data.EfiBitNumeric = 1,\r
962 data.EfiBitOneof = 1,\r
963 data.EfiBitCheckbox = 1,\r
964 endguidop;\r
965\r
966 endform;\r
967\r
93e3992d 968endformset;\r