//\r
// Sample Setup formset.\r
//\r
-// Copyright (c) 2004 - 2008, Intel Corporation. <BR>\r
-// All rights reserved. This program and the accompanying materials\r
+// Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+// This program and the accompanying materials\r
// are licensed and made available under the terms and conditions of the BSD License\r
// which accompanies this distribution. The full text of the license may be found at\r
// http://opensource.org/licenses/bsd-license.php\r
// Define a EFI variable Storage (EFI_IFR_VARSTORE_EFI)\r
//\r
efivarstore MyEfiVar, // Define referenced name in vfr\r
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS, // EFI variable attribures\r
+ attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE, // EFI variable attribures\r
name = STRING_TOKEN(STR_VAR_NAME), // EFI variable name\r
varsize = 1, // Size of the EFI variable\r
guid = FORMSET_GUID; // EFI variable GUID\r
\r
+ //\r
+ // Define a Name/Value Storage (EFI_IFR_VARSTORE_NAME_VALUE)\r
+ //\r
+ namevaluevarstore MyNameValueVar, // Define storage reference name in vfr\r
+ name = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME0), // Define Name list of this storage, refer it by MyNameValueVar[0]\r
+ name = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME1), // Define Name list of this storage, refer it by MyNameValueVar[1]\r
+ name = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME2), // Define Name list of this storage, refer it by MyNameValueVar[2]\r
+ guid = FORMSET_GUID; // GUID of this Name/Value storage\r
+\r
defaultstore MyStandardDefault,\r
prompt = STRING_TOKEN(STR_STANDARD_DEFAULT_PROMPT),\r
attribute = 0x0000; // Default ID: 0000 standard default\r
oneof varid = MyIfrNVData.BootOrderLarge,\r
prompt = STRING_TOKEN(STR_ONE_OF_PROMPT),\r
help = STRING_TOKEN(STR_ONE_OF_HELP),\r
+ default value = cond (pushthis == 0 ? 0 : cond ((questionref(MyOneOf) >> 0x4 & 0xF00) == 0x0 + 0x2 ? 0 : 1)),\r
option text = STRING_TOKEN(STR_BOOT_ORDER1), value = 0x0, flags = 0;\r
- option text = STRING_TOKEN(STR_BOOT_ORDER2), value = 0x1, flags = DEFAULT;\r
+ option text = STRING_TOKEN(STR_BOOT_ORDER2), value = 0x1, flags = 0;\r
endoneof;\r
\r
grayoutif ideqval MyIfrNVData.SuppressGrayOutSomething == 0x1;\r
\r
endif; // end suppressif\r
\r
- suppressif ideqval MyIfrNVData.SuppressGrayOutSomething == 0x2;\r
+ disableif ideqval MyIfrNVData.SuppressGrayOutSomething == 0x2;\r
orderedlist\r
varid = MyIfrNVData.OrderedList,\r
prompt = STRING_TOKEN(STR_TEST_OPCODE),\r
endnumeric;\r
\r
numeric varid = MyEfiVar, // Reference of EFI variable storage\r
+ questionid = 0x1111,\r
prompt = STRING_TOKEN(STR_TALL_HEX_PROMPT),\r
help = STRING_TOKEN(STR_NUMERIC_HELP1),\r
- flags = DISPLAY_UINT_HEX, // Display in HEX format (if not specified, default is in decimal format)\r
+ flags = DISPLAY_UINT_HEX | INTERACTIVE, // Display in HEX format (if not specified, default is in decimal format)\r
minimum = 0,\r
maximum = 250,\r
default = 175,\r
\r
endnumeric;\r
\r
+ //\r
+ // Define numeric using Name/Value Storage\r
+ //\r
+ numeric varid = MyNameValueVar[0], // This numeric take NameValueVar0 as storage\r
+ prompt = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME0),\r
+ help = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME0_HELP),\r
+ //\r
+ // Size should be defined for numeric when use Name/Value storage\r
+ // Valid value for numerice size are: NUMERIC_SIZE_1, NUMERIC_SIZE_2, NUMERIC_SIZE_4 and NUMERIC_SIZE_8\r
+ //\r
+ flags = NUMERIC_SIZE_1, // Size of this numeric is 1 byte\r
+ minimum = 0,\r
+ maximum = 0xff,\r
+ step = 0,\r
+ endnumeric;\r
+\r
+ numeric varid = MyNameValueVar[1], // This numeric take NameValueVar1 as storage\r
+ prompt = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME1),\r
+ help = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME1_HELP),\r
+ flags = NUMERIC_SIZE_2, // Size of this numeric is 2 bytes\r
+ minimum = 0,\r
+ maximum = 0xffff,\r
+ step = 0,\r
+ endnumeric;\r
+\r
+ //\r
+ // Define string using Name/Value Storage\r
+ //\r
+ string varid = MyNameValueVar[2], // This string take NameValueVar2 as storage\r
+ prompt = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME2),\r
+ help = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME2_HELP),\r
+ minsize = 2,\r
+ maxsize = 0x14,\r
+ endstring;\r
+\r
label LABEL_1_VALUE;\r
label LABEL_2_VALUE;\r
\r
maxsize = 20,\r
endpassword;\r
\r
+ //\r
+ // Sample use case for IFR Security op-code\r
+ //\r
+ grayoutif NOT security (EFI_USER_INFO_ACCESS_SETUP_ADMIN_GUID);\r
+ text\r
+ help = STRING_TOKEN(STR_TEXT_SECRUITY_TEST_HELP),\r
+ text = STRING_TOKEN(STR_TEXT_SECRUITY_TEST_TEXT);\r
+ endif;\r
+ \r
goto 2,\r
prompt = STRING_TOKEN(STR_GOTO_FORM2), //SecondSetupPage // this too has no end-op and basically it's a jump to a form ONLY\r
help = STRING_TOKEN(STR_GOTO_HELP);\r
prompt = STRING_TOKEN(STR_GOTO_FORM3), //ThirdSetupPage // this too has no end-op and basically it's a jump to a form ONLY\r
help = STRING_TOKEN(STR_GOTO_HELP);\r
\r
- endform;\r
-\r
- form formid = 2, // SecondSetupPage,\r
- 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
-\r
-\r
- date year varid = Date.Year, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
- prompt = STRING_TOKEN(STR_DATE_PROMPT),\r
- help = STRING_TOKEN(STR_DATE_HELP),\r
- minimum = 1998,\r
- maximum = 2099,\r
- step = 1,\r
- default = 2004,\r
-\r
- month varid = Date.Month, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
- prompt = STRING_TOKEN(STR_DATE_PROMPT),\r
- help = STRING_TOKEN(STR_DATE_HELP),\r
- minimum = 1,\r
- maximum = 12,\r
- step = 1,\r
- default = 1,\r
-\r
- day varid = Date.Day, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
- prompt = STRING_TOKEN(STR_DATE_PROMPT),\r
- help = STRING_TOKEN(STR_DATE_HELP),\r
- minimum = 1,\r
- maximum = 31,\r
- step = 0x1,\r
- default = 1,\r
-\r
- inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
- ideqval Date.Day == 31\r
- AND\r
- ideqvallist Date.Month == 2 4 6 9 11\r
- endif\r
-\r
- //\r
- // If the day is 30 AND month is 2\r
- //\r
- inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
- ideqval Date.Day == 30\r
- AND\r
- ideqval Date.Month == 2\r
- endif\r
+ goto 4,\r
+ prompt = STRING_TOKEN(STR_GOTO_FORM4), //FourthSetupPage // this too has no end-op and basically it's a jump to a form ONLY\r
+ help = STRING_TOKEN(STR_GOTO_HELP);\r
\r
- //\r
- // If the day is 29 AND month is 2 AND it year is NOT a leapyear\r
- //\r
- inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
- ideqval Date.Day == 0x1D\r
- AND\r
- ideqval Date.Month == 2\r
- AND\r
- NOT\r
- ideqvallist Date.Year == 2004 2008 20012 20016 2020 2024 2028 2032 2036\r
- endif\r
+ endform;\r
\r
- enddate;\r
-\r
- time hour varid = Time.Hours, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
- prompt = STRING_TOKEN(STR_TIME_PROMPT),\r
- help = STRING_TOKEN(STR_TIME_HELP),\r
- minimum = 0,\r
- maximum = 23,\r
- step = 1,\r
- default = 0,\r
-\r
- minute varid = Time.Minutes, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
- prompt = STRING_TOKEN(STR_TIME_PROMPT),\r
- help = STRING_TOKEN(STR_TIME_HELP),\r
- minimum = 0,\r
- maximum = 59,\r
- step = 1,\r
- default = 0,\r
-\r
- second varid = Time.Seconds, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
- prompt = STRING_TOKEN(STR_TIME_PROMPT),\r
- help = STRING_TOKEN(STR_TIME_HELP),\r
- minimum = 0,\r
- maximum = 59,\r
- step = 1,\r
- default = 0,\r
-\r
- endtime;\r
-\r
- checkbox varid = MyIfrNVData.ChooseToActivateNuclearWeaponry,\r
- prompt = STRING_TOKEN(STR_CHECK_BOX_PROMPT),\r
- help = STRING_TOKEN(STR_CHECK_BOX_HELP),\r
- flags = CHECKBOX_DEFAULT,\r
- key = 0,\r
- endcheckbox;\r
+ suppressif ideqval MyIfrNVData.BootOrderLarge == 0;\r
+ form formid = 2, // SecondSetupPage,\r
+ 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
+\r
+\r
+ date year varid = Date.Year, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+ prompt = STRING_TOKEN(STR_DATE_PROMPT),\r
+ help = STRING_TOKEN(STR_DATE_HELP),\r
+ minimum = 1998,\r
+ maximum = 2099,\r
+ step = 1,\r
+ default = 2004,\r
+\r
+ month varid = Date.Month, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+ prompt = STRING_TOKEN(STR_DATE_PROMPT),\r
+ help = STRING_TOKEN(STR_DATE_HELP),\r
+ minimum = 1,\r
+ maximum = 12,\r
+ step = 1,\r
+ default = 1,\r
+\r
+ day varid = Date.Day, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+ prompt = STRING_TOKEN(STR_DATE_PROMPT),\r
+ help = STRING_TOKEN(STR_DATE_HELP),\r
+ minimum = 1,\r
+ maximum = 31,\r
+ step = 0x1,\r
+ default = 1,\r
+\r
+ inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
+ ideqval Date.Day == 31\r
+ AND\r
+ ideqvallist Date.Month == 2 4 6 9 11\r
+ endif\r
+\r
+ //\r
+ // If the day is 30 AND month is 2\r
+ //\r
+ inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
+ ideqval Date.Day == 30\r
+ AND\r
+ ideqval Date.Month == 2\r
+ endif\r
+\r
+ //\r
+ // If the day is 29 AND month is 2 AND it year is NOT a leapyear\r
+ //\r
+ inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),\r
+ ideqval Date.Day == 0x1D\r
+ AND\r
+ ideqval Date.Month == 2\r
+ AND\r
+ NOT\r
+ ideqvallist Date.Year == 2004 2008 20012 20016 2020 2024 2028 2032 2036\r
+ endif\r
+\r
+ enddate;\r
+\r
+ time hour varid = Time.Hours, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+ prompt = STRING_TOKEN(STR_TIME_PROMPT),\r
+ help = STRING_TOKEN(STR_TIME_HELP),\r
+ minimum = 0,\r
+ maximum = 23,\r
+ step = 1,\r
+ default = 0,\r
+\r
+ minute varid = Time.Minutes, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+ prompt = STRING_TOKEN(STR_TIME_PROMPT),\r
+ help = STRING_TOKEN(STR_TIME_HELP),\r
+ minimum = 0,\r
+ maximum = 59,\r
+ step = 1,\r
+ default = 0,\r
+\r
+ second varid = Time.Seconds, // Note that it is a member of NULL, so the RTC will be the system resource to retrieve and save from\r
+ prompt = STRING_TOKEN(STR_TIME_PROMPT),\r
+ help = STRING_TOKEN(STR_TIME_HELP),\r
+ minimum = 0,\r
+ maximum = 59,\r
+ step = 1,\r
+ default = 0,\r
+\r
+ endtime;\r
+\r
+ checkbox varid = MyIfrNVData.ChooseToActivateNuclearWeaponry,\r
+ prompt = STRING_TOKEN(STR_CHECK_BOX_PROMPT),\r
+ help = STRING_TOKEN(STR_CHECK_BOX_HELP),\r
+ flags = CHECKBOX_DEFAULT,\r
+ key = 0,\r
+ endcheckbox;\r
\r
- text\r
- help = STRING_TOKEN(STR_TEXT_HELP),\r
- text = STRING_TOKEN(STR_TEXT_TEXT_1);\r
+ text\r
+ help = STRING_TOKEN(STR_TEXT_HELP),\r
+ text = STRING_TOKEN(STR_TEXT_TEXT_1);\r
\r
- text\r
- help = STRING_TOKEN(STR_TEXT_HELP),\r
- text = STRING_TOKEN(STR_TEXT_TEXT_1),\r
- text = STRING_TOKEN(STR_TEXT_TEXT_2);\r
+ text\r
+ help = STRING_TOKEN(STR_TEXT_HELP),\r
+ text = STRING_TOKEN(STR_TEXT_TEXT_1),\r
+ text = STRING_TOKEN(STR_TEXT_TEXT_2);\r
\r
- goto 1,\r
- prompt = STRING_TOKEN(STR_GOTO_FORM1), //MainSetupPage // this too has no end-op and basically it's a jump to a form ONLY\r
- help = STRING_TOKEN(STR_GOTO_HELP);\r
+ goto 1,\r
+ prompt = STRING_TOKEN(STR_GOTO_FORM1), //MainSetupPage // this too has no end-op and basically it's a jump to a form ONLY\r
+ help = STRING_TOKEN(STR_GOTO_HELP);\r
\r
- endform;\r
+ endform;\r
+ endif;\r
\r
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
\r
\r
endform;\r
\r
- form formid = 4, title = STRING_TOKEN(STR_FORM3_TITLE);\r
+ formmap formid = 4, \r
+ maptitle = STRING_TOKEN(STR_SAMPL_MAP_METHOD); \r
+ mapguid = FORMSET_GUID;\r
+ maptitle = STRING_TOKEN(STR_STANDARD_MAP_METHOD); \r
+ mapguid = EFI_HII_STANDARD_FORM_GUID;\r
+\r
+ oneof varid = MyIfrNVData.SerialPortNo, \r
+ prompt = STRING_TOKEN(STR_SERIAL_PORT),\r
+ help = STRING_TOKEN(STR_ONE_OF_HELP),\r
+\r
+ 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
+ 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
+ \r
+ option text = STRING_TOKEN(STR_SERIAL_PORT_DISABLE), value = 0x0, flags = DEFAULT;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT1), value = 0x1, flags = 0;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT2), value = 0x2, flags = 0;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT3), value = 0x3, flags = 0;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT4), value = 0x4, flags = 0;\r
+ endoneof;\r
+\r
+ grayoutif TRUE;\r
+ checkbox varid = MyIfrNVData.SerialPortStatus,\r
+ prompt = STRING_TOKEN(STR_SERIAL_PORT_STATUS),\r
+ help = STRING_TOKEN(STR_CHECK_BOX_HELP),\r
+ endcheckbox;\r
+ endif;\r
+\r
+ grayoutif TRUE;\r
+ suppressif ideqval MyIfrNVData.SerialPortStatus == 0;\r
+ oneof varid = MyIfrNVData.SerialPortIo, \r
+ prompt = STRING_TOKEN(STR_SERIAL_PORT_IO_ADDRESS),\r
+ help = STRING_TOKEN(STR_ONE_OF_HELP),\r
+ \r
+ option text = STRING_TOKEN(STR_SERIAL_PORT1_IOADDR), value = 0x3F8, flags = DEFAULT;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT2_IOADDR), value = 0x2F8, flags = 0;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT3_IOADDR), value = 0x3E8, flags = 0;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT4_IOADDR), value = 0x2E8, flags = 0;\r
+ endoneof;\r
+ endif;\r
+ endif;\r
+\r
+ grayoutif TRUE;\r
+ suppressif ideqval MyIfrNVData.SerialPortStatus == 0;\r
+ oneof varid = MyIfrNVData.SerialPortIrq, \r
+ prompt = STRING_TOKEN(STR_SERIAL_PORT_IRQ),\r
+ help = STRING_TOKEN(STR_ONE_OF_HELP),\r
+ \r
+ option text = STRING_TOKEN(STR_SERIAL_PORT13_IRQ), value = 0x4, flags = DEFAULT;\r
+ option text = STRING_TOKEN(STR_SERIAL_PORT24_IRQ), value = 0x3, flags = 0;\r
+ endoneof;\r
+ endif;\r
+ endif;\r
+\r
+ goto 1,\r
+ prompt = STRING_TOKEN(STR_GOTO_FORM1), //MainSetupPage\r
+ help = STRING_TOKEN(STR_GOTO_HELP);\r
\r
endform;\r
\r