//\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
\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
+ 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
endform;\r
\r
suppressif ideqval MyIfrNVData.BootOrderLarge == 0;\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