]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add FormMap form example.
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Sun, 28 Feb 2010 23:56:57 +0000 (23:56 +0000)
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Sun, 28 Feb 2010 23:56:57 +0000 (23:56 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10125 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/DriverSampleDxe/NVDataStruc.h
MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr
MdeModulePkg/Universal/DriverSampleDxe/VfrStrings.uni

index 648b6dba915a68107783f9497ae50d4edb595689..40231bef47b3079784176a795657c0dd9e4519aa 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 \r
-Copyright (c) 2007 - 2009, Intel Corporation\r
+Copyright (c) 2007 - 2010, Intel Corporation\r
 All rights reserved. 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
@@ -26,6 +26,7 @@ Revision History:
 #define _NVDATASTRUC_H_\r
 \r
 #include <Guid/HiiPlatformSetupFormset.h>\r
+#include <Guid/HiiFormMapMethodGuid.h>\r
 \r
 #define FORMSET_GUID \\r
   { \\r
@@ -66,6 +67,10 @@ typedef struct {
   UINT8   NameValueVar0;\r
   UINT16  NameValueVar1;\r
   UINT16  NameValueVar2[20];\r
+  UINT8   SerialPortNo;\r
+  UINT8   SerialPortStatus;\r
+  UINT16  SerialPortIo;\r
+  UINT8   SerialPortIrq;\r
 } DRIVER_SAMPLE_CONFIGURATION;\r
 \r
 //\r
index bc821a61b54460a036e7083bbe75f35c71737eb3..7b18c3c64553cef286d62ad764ff143e1b7533a1 100644 (file)
@@ -2,7 +2,7 @@
 //\r
 //    Sample Setup formset.\r
 //\r
-//  Copyright (c) 2004 - 2008, Intel Corporation. <BR>\r
+//  Copyright (c) 2004 - 2010, Intel Corporation. <BR>\r
 //  All rights reserved. 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
@@ -84,7 +84,7 @@ 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
@@ -432,6 +432,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
@@ -570,7 +574,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
index 355538a9a5d7b7f40d4f8af7d8cc7a950596d4c1..2cb502dc13a0973f9841a1cf9d52e0dc81b0fd95 100644 (file)
Binary files a/MdeModulePkg/Universal/DriverSampleDxe/VfrStrings.uni and b/MdeModulePkg/Universal/DriverSampleDxe/VfrStrings.uni differ