]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr
Add example of Name/Value pair var store to DriverSample
[mirror_edk2.git] / MdeModulePkg / Universal / DriverSampleDxe / Vfr.vfr
index d5f906b93c98abf80a646d6365a6fae07dae7556..bc821a61b54460a036e7083bbe75f35c71737eb3 100644 (file)
@@ -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_NON_VOLATILE,  // EFI variable attribures\r
+    attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS,  // 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
@@ -209,7 +218,7 @@ formset
 \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
@@ -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
@@ -390,110 +434,112 @@ formset
 \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
-\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
+  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
-    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