]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr
Update the copyright notice format
[mirror_edk2.git] / MdeModulePkg / Universal / DriverSampleDxe / Vfr.vfr
index 8a0a863e3fe80cf993b2945a03ea1db6ffa5d24d..e82cccc9db5a9d2be08251ad83583c8ecf410394 100644 (file)
@@ -2,8 +2,8 @@
 //\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
@@ -84,11 +84,20 @@ formset
   // 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
@@ -323,6 +332,41 @@ formset
 \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
@@ -380,6 +424,15 @@ formset
               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
@@ -388,6 +441,10 @@ formset
       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
@@ -526,7 +583,62 @@ formset
 \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