]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkUnixPkg/Dxe/PlatformBds/Generic/BootMaint/Bm.vfr
Unix version of EFI emulator
[mirror_edk2.git] / EdkUnixPkg / Dxe / PlatformBds / Generic / BootMaint / Bm.vfr
diff --git a/EdkUnixPkg/Dxe/PlatformBds/Generic/BootMaint/Bm.vfr b/EdkUnixPkg/Dxe/PlatformBds/Generic/BootMaint/Bm.vfr
new file mode 100644 (file)
index 0000000..9b6cf5c
--- /dev/null
@@ -0,0 +1,495 @@
+// *++\r
+//\r
+// Copyright (c) 2006, 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
+// http://opensource.org/licenses/bsd-license.php                                            \r
+//                                                                                           \r
+// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+// \r
+// Module Name:\r
+//\r
+//   bm.vfr \r
+// \r
+// Abstract:\r
+// \r
+//   Boot Maintenance Utility Formset\r
+// \r
+// Revision History: \r
+// \r
+// --*/\r
+\r
+#include "BdsStrDefs.h" \r
+#include "FormGuid.h"\r
+\r
+#pragma pack(1)\r
+\r
+//\r
+// This is the structure that will be used to store the \r
+// question's current value. Use it at initialize time to \r
+// set default value for each question. When using at run\r
+// time, this map is returned by the callback function,\r
+// so dynamically changing the question's value will be\r
+// possible through this mechanism\r
+//\r
+typedef struct {\r
+\r
+//\r
+// Three questions displayed at the main page\r
+// for Timeout, BootNext Variables respectively\r
+//\r
+  UINT16                    BootTimeOut;\r
+  UINT16                    BootNext;\r
+\r
+//\r
+// This is the COM1 Attributes value storage\r
+//\r
+  UINT8                     COM1BaudRate;\r
+  UINT8                     COM1DataRate;\r
+  UINT8                     COM1StopBits;\r
+  UINT8                     COM1Parity;\r
+  UINT8                     COM1TerminalType;\r
+  \r
+//\r
+// This is the COM2 Attributes value storage\r
+//\r
+  UINT8                     COM2BaudRate;\r
+  UINT8                     COM2DataRate;\r
+  UINT8                     COM2StopBits;\r
+  UINT8                     COM2Parity;\r
+  UINT8                     COM2TerminalType;\r
+\r
+// \r
+// Driver Option Add Handle page storage\r
+//\r
+  UINT16                    DriverAddHandleDesc[100];\r
+  UINT16                    DriverAddHandleOptionalData[100];\r
+  UINT8                     DriverAddActive;\r
+  UINT8                     DriverAddForceReconnect;\r
+  \r
+//\r
+// Console Input/Output/Errorout using COM port check storage\r
+//\r
+  UINT8                     ConsoleInputCOM1;\r
+  UINT8                     ConsoleInputCOM2;\r
+  UINT8                     ConsoleOutputCOM1;\r
+  UINT8                     ConsoleOutputCOM2;\r
+  UINT8                     ConsoleErrorCOM1;\r
+  UINT8                     ConsoleErrorCOM2;\r
+\r
+//\r
+// At most 100 input/output/errorout device for console storage\r
+//\r
+  UINT8                     ConsoleCheck[100];\r
+\r
+//\r
+// Boot or Driver Option Order storage\r
+//\r
+  UINT8                     OptionOrder[100];\r
+  UINT8                     DriverOptionToBeDeleted[100];\r
+\r
+//\r
+// Boot Option Delete storage\r
+// \r
+  UINT8                     BootOptionDel[100];\r
+  UINT8                     DriverOptionDel[100];\r
+  \r
+//\r
+// This is the Terminal Attributes value storage\r
+//\r
+  UINT8                     COMBaudRate;\r
+  UINT8                     COMDataRate;\r
+  UINT8                     COMStopBits;\r
+  UINT8                     COMParity;\r
+  UINT8                     COMTerminalType;\r
+  \r
+//\r
+// Legacy Device Order Selection Storage\r
+//\r
+  UINT8                     LegacyFD[100];\r
+  UINT8                     LegacyHD[100];\r
+  UINT8                     LegacyCD[100];\r
+  UINT8                     LegacyNET[100];\r
+  UINT8                     LegacyBEV[100];\r
+} BMM_FAKE_NV_DATA;\r
+#pragma pack()\r
+\r
+\r
+#define FORM_MAIN_ID                         0x0001\r
+#define FORM_BOOT_ADD_ID                     0x0002\r
+#define FORM_BOOT_DEL_ID                     0x0003\r
+#define FORM_BOOT_CHG_ID                     0x0004\r
+#define FORM_DRV_ADD_ID                      0x0005\r
+#define FORM_DRV_DEL_ID                      0x0006\r
+#define FORM_DRV_CHG_ID                      0x0007\r
+#define FORM_CON_MAIN_ID                     0x0008\r
+#define FORM_CON_IN_ID                       0x0009\r
+#define FORM_CON_OUT_ID                      0x000A\r
+#define FORM_CON_ERR_ID                      0x000B\r
+#define FORM_FILE_SEEK_ID                    0x000C\r
+#define FORM_FILE_NEW_SEEK_ID                0x000D\r
+#define FORM_DRV_ADD_FILE_ID                 0x000E\r
+#define FORM_DRV_ADD_HANDLE_ID               0x000F\r
+#define FORM_DRV_ADD_HANDLE_DESC_ID          0x0010\r
+#define FORM_BOOT_NEXT_ID                    0x0011\r
+#define FORM_TIME_OUT_ID                     0x0012\r
+#define FORM_RESET                           0x0013\r
+#define FORM_BOOT_SETUP_ID                   0x0014\r
+#define FORM_DRIVER_SETUP_ID                 0x0015\r
+#define FORM_BOOT_LEGACY_DEVICE_ID           0x0016\r
+#define FORM_CON_COM_ID                      0x0017\r
+#define FORM_CON_COM_SETUP_ID                0x0018\r
+#define FORM_SET_FD_ORDER_ID                 0x0019\r
+#define FORM_SET_HD_ORDER_ID                 0x001A\r
+#define FORM_SET_CD_ORDER_ID                 0x001B\r
+#define FORM_SET_NET_ORDER_ID                0x001C\r
+#define FORM_SET_BEV_ORDER_ID                0x001D\r
+                                                                       \r
+#define KEY_VALUE_BOOT_FROM_FILE             0x0092\r
+\r
+formset \r
+  guid = MAIN_FORMSET_GUID,\r
+  title = STRING_TOKEN(STR_FORM_MAIN_TITLE),  // uint8 opcode, uint8 length, guid Handle, uint16 Title\r
+  help = STRING_TOKEN(STR_NULL_STRING),\r
+  class = 0,      \r
+  subclass = 0,\r
+\r
+  form formid = FORM_MAIN_ID,\r
+       title = STRING_TOKEN(STR_FORM_MAIN_TITLE);\r
+\r
+    goto FORM_BOOT_SETUP_ID,\r
+         prompt = STRING_TOKEN(STR_FORM_BOOT_SETUP_TITLE),\r
+         help = STRING_TOKEN(STR_FORM_BOOT_SETUP_HELP),\r
+         flags = INTERACTIVE | NV_ACCESS,\r
+         key = FORM_BOOT_SETUP_ID;\r
+\r
+    subtitle text = STRING_TOKEN(STR_NULL_STRING);\r
+\r
+    goto FORM_DRIVER_SETUP_ID,\r
+         prompt = STRING_TOKEN(STR_FORM_DRIVER_SETUP_TITLE),\r
+         help = STRING_TOKEN(STR_FORM_DRIVER_SETUP_HELP),\r
+         flags = INTERACTIVE | NV_ACCESS,\r
+         key = FORM_DRIVER_SETUP_ID;\r
+\r
+    subtitle text = STRING_TOKEN(STR_NULL_STRING);\r
+\r
+    goto FORM_CON_MAIN_ID,\r
+         prompt = STRING_TOKEN(STR_FORM_CON_MAIN_TITLE),\r
+         help = STRING_TOKEN(STR_FORM_CON_MAIN_HELP),\r
+         flags = INTERACTIVE | NV_ACCESS,\r
+         key = FORM_CON_MAIN_ID;\r
+   \r
+    subtitle text = STRING_TOKEN(STR_NULL_STRING);\r
+\r
+    text \r
+         help   = STRING_TOKEN(STR_BOOT_FROM_FILE_HELP),  \r
+         text   = STRING_TOKEN(STR_BOOT_FROM_FILE),\r
+         text   = STRING_TOKEN(STR_NULL_STRING),\r
+         flags  = INTERACTIVE | NV_ACCESS,\r
+         key    = KEY_VALUE_BOOT_FROM_FILE;\r
+\r
+    subtitle text = STRING_TOKEN(STR_NULL_STRING);\r
+\r
+//    label FORM_MAIN_ID;\r
+\r
+    goto FORM_BOOT_NEXT_ID,\r
+         prompt = STRING_TOKEN(STR_FORM_BOOT_NEXT_TITLE),\r
+         help = STRING_TOKEN(STR_FORM_BOOT_NEXT_HELP),\r
+         flags = INTERACTIVE | NV_ACCESS,\r
+         key = FORM_BOOT_NEXT_ID;            \r
+\r
+    goto FORM_TIME_OUT_ID,\r
+         prompt = STRING_TOKEN(STR_FORM_TIME_OUT_TITLE),\r
+         help = STRING_TOKEN(STR_FORM_TIME_OUT_HELP),\r
+         flags = INTERACTIVE | NV_ACCESS,\r
+         key = FORM_TIME_OUT_ID;\r
+         \r
+    subtitle text = STRING_TOKEN(STR_NULL_STRING);\r
+\r
+    goto FORM_MAIN_ID,\r
+         prompt = STRING_TOKEN(STR_RESET),\r
+         help = STRING_TOKEN(STR_RESET),\r
+         flags = INTERACTIVE | NV_ACCESS,\r
+         key = FORM_RESET;\r
+         \r
+  endform;       \r
+\r
+  form formid = FORM_BOOT_SETUP_ID,\r
+       title = STRING_TOKEN(STR_FORM_BOOT_SETUP_TITLE);\r
+\r
+       goto FORM_MAIN_ID,\r
+            prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
+            help = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
+            flags = INTERACTIVE | NV_ACCESS,\r
+            key = FORM_MAIN_ID;\r
+\r
+       goto FORM_BOOT_ADD_ID,\r
+            prompt = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE),\r
+            help = STRING_TOKEN(STR_FORM_BOOT_ADD_HELP),\r
+            flags = INTERACTIVE | NV_ACCESS,\r
+            key = FORM_BOOT_ADD_ID;\r
+      \r
+       goto FORM_BOOT_DEL_ID,\r
+            prompt = STRING_TOKEN(STR_FORM_BOOT_DEL_TITLE),\r
+            help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),\r
+            flags = INTERACTIVE | NV_ACCESS,\r
+            key = FORM_BOOT_DEL_ID;\r
+       \r
+       goto FORM_BOOT_CHG_ID,\r
+            prompt = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE),\r
+            help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),\r
+            flags = INTERACTIVE | NV_ACCESS,\r
+            key = FORM_BOOT_CHG_ID;\r
+\r
+       subtitle text = STRING_TOKEN(STR_NULL_STRING);\r
+       //\r
+          // We will add "Select Legacy Boot Floppy Drive" and "Select Legacy Boot Hard Drive" \r
+          // here dynamically\r
+          //\r
+       label FORM_BOOT_LEGACY_DEVICE_ID;\r
+\r
+  endform;       \r
+\r
+  form formid = FORM_DRIVER_SETUP_ID,\r
+       title = STRING_TOKEN(STR_FORM_DRIVER_SETUP_TITLE);\r
+\r
+       goto FORM_MAIN_ID,\r
+            prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
+            help = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
+            flags = INTERACTIVE | NV_ACCESS,\r
+            key = FORM_MAIN_ID;\r
+\r
+       goto FORM_DRV_ADD_ID,\r
+            prompt = STRING_TOKEN(STR_FORM_DRV_ADD_TITLE),\r
+            help = STRING_TOKEN(STR_FORM_DRV_ADD_HELP),\r
+            flags = INTERACTIVE | NV_ACCESS,\r
+            key = FORM_DRV_ADD_ID;\r
+     \r
+       goto FORM_DRV_DEL_ID,\r
+            prompt = STRING_TOKEN(STR_FORM_DRV_DEL_TITLE),\r
+            help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),\r
+            flags = INTERACTIVE | NV_ACCESS,\r
+            key = FORM_DRV_DEL_ID;\r
+       \r
+       goto FORM_DRV_CHG_ID,\r
+            prompt = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE),\r
+            help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),\r
+            flags = INTERACTIVE | NV_ACCESS,\r
+            key = FORM_DRV_CHG_ID;\r
+  endform;       \r
+\r
+  form formid = FORM_BOOT_ADD_ID,\r
+       title = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE);\r
+\r
+       label FORM_BOOT_ADD_ID;\r
+  endform;\r
+\r
+  form formid = FORM_BOOT_DEL_ID,\r
+       title = STRING_TOKEN(STR_FORM_BOOT_DEL_TITLE);\r
+\r
+       label FORM_BOOT_DEL_ID;\r
+  endform;\r
+\r
+  form formid = FORM_BOOT_CHG_ID,\r
+       title = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE);\r
+\r
+       label FORM_BOOT_CHG_ID;\r
+       \r
+       //\r
+       // This tag is added for bypassing issue of setup browser\r
+       // setup browser could not support dynamic form very well.\r
+       //\r
+       checkbox varid    = BMM_FAKE_NV_DATA.OptionOrder[0],\r
+           prompt   = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE),\r
+           help     = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE),  \r
+           flags    = 1,\r
+           key      = 0,\r
+       endcheckbox;\r
+      \r
+  endform;\r
+\r
+  form formid = FORM_BOOT_NEXT_ID,\r
+       title = STRING_TOKEN(STR_FORM_BOOT_NEXT_TITLE);\r
+\r
+       label FORM_BOOT_NEXT_ID;\r
+  endform;\r
+  \r
+  form formid = FORM_TIME_OUT_ID,\r
+       title = STRING_TOKEN(STR_FORM_TIME_OUT_TITLE);\r
+       \r
+       label FORM_TIME_OUT_ID;\r
+  endform;\r
+  \r
+  form formid = FORM_DRV_ADD_ID,\r
+       title = STRING_TOKEN(STR_FORM_DRV_ADD_TITLE);\r
+\r
+       goto FORM_MAIN_ID,\r
+            prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
+            help = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
+            flags = INTERACTIVE | NV_ACCESS,\r
+            key = FORM_MAIN_ID;\r
+              \r
+       goto FORM_DRV_ADD_FILE_ID,\r
+            prompt = STRING_TOKEN(STR_FORM_DRV_ADD_FILE_TITLE),\r
+            help = STRING_TOKEN(STR_FORM_DRV_ADD_FILE_TITLE),\r
+            flags = INTERACTIVE | NV_ACCESS,\r
+            key = FORM_DRV_ADD_FILE_ID;\r
+\r
+  endform;\r
+\r
+  form formid = FORM_DRV_DEL_ID,\r
+       title = STRING_TOKEN(STR_FORM_DRV_DEL_TITLE);\r
+\r
+       label FORM_DRV_DEL_ID;\r
+\r
+  endform;\r
+\r
+  form formid = FORM_DRV_CHG_ID,\r
+       title = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE);\r
+\r
+       label FORM_DRV_CHG_ID;\r
+      \r
+       //\r
+       // This tag is added for bypassing issue of setup browser\r
+       // setup browser could not support dynamic form very well.\r
+       //\r
+       checkbox varid    = BMM_FAKE_NV_DATA.OptionOrder[0],\r
+           prompt   = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE),\r
+           help     = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE),  \r
+           flags    = 1,\r
+           key      = 0,\r
+       endcheckbox;\r
+       \r
+  endform;\r
+\r
+  form formid = FORM_CON_MAIN_ID,\r
+       title = STRING_TOKEN(STR_FORM_CON_MAIN_TITLE);\r
+\r
+       goto FORM_MAIN_ID,\r
+       prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
+       help = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
+       flags = INTERACTIVE | NV_ACCESS,\r
+       key = FORM_MAIN_ID;\r
+\r
+       goto FORM_CON_IN_ID,\r
+       prompt = STRING_TOKEN(STR_FORM_CON_IN_TITLE),\r
+       help = STRING_TOKEN(STR_FORM_CON_IN_HELP),\r
+       flags = INTERACTIVE | NV_ACCESS,\r
+       key = FORM_CON_IN_ID;\r
+\r
+       goto FORM_CON_OUT_ID,\r
+       prompt = STRING_TOKEN(STR_FORM_CON_OUT_TITLE),\r
+       help = STRING_TOKEN(STR_FORM_CON_OUT_HELP),\r
+       flags = INTERACTIVE | NV_ACCESS,\r
+       key = FORM_CON_OUT_ID;\r
+  \r
+       goto FORM_CON_ERR_ID,\r
+       prompt = STRING_TOKEN(STR_FORM_STD_ERR_TITLE),\r
+       help = STRING_TOKEN(STR_FORM_STD_ERR_HELP),\r
+       flags = INTERACTIVE | NV_ACCESS,\r
+       key = FORM_CON_ERR_ID;\r
+\r
+       goto FORM_CON_COM_ID,\r
+       prompt = STRING_TOKEN(STR_FORM_COM_TITLE),\r
+       help = STRING_TOKEN(STR_FORM_COM_HELP),\r
+       flags = INTERACTIVE | NV_ACCESS,\r
+       key = FORM_CON_COM_ID;\r
+  endform;\r
+\r
+  form formid = FORM_CON_COM_ID,\r
+       title = STRING_TOKEN(STR_FORM_COM_TITLE);\r
+\r
+       label FORM_CON_COM_ID;\r
+  endform;\r
+\r
+  form formid = FORM_CON_COM_SETUP_ID,\r
+       title = STRING_TOKEN(STR_CON_COM_SETUP);\r
+\r
+       label FORM_CON_COM_SETUP_ID;\r
+  endform;\r
+\r
+  form formid = FORM_FILE_SEEK_ID,\r
+       title = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE);\r
+\r
+       label FORM_FILE_SEEK_ID;\r
+  endform;\r
+\r
+  form formid = FORM_FILE_NEW_SEEK_ID,\r
+       title = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE);\r
+\r
+       label FORM_FILE_NEW_SEEK_ID;\r
+  endform;\r
+\r
+  form formid = FORM_DRV_ADD_FILE_ID,\r
+       title = STRING_TOKEN(STR_FORM_DRV_ADD_FILE_TITLE);\r
+\r
+       label FORM_DRV_ADD_FILE_ID;\r
+  endform;\r
+\r
+  form formid = FORM_DRV_ADD_HANDLE_ID,\r
+       title = STRING_TOKEN(STR_FORM_DRV_ADD_HANDLE_TITLE);\r
+\r
+       label FORM_DRV_ADD_HANDLE_ID;\r
+  endform;     \r
+\r
+  form formid = FORM_DRV_ADD_HANDLE_DESC_ID,\r
+       title = STRING_TOKEN(STR_FORM_DRV_ADD_DESC_TITLE);\r
+\r
+       label FORM_DRV_ADD_HANDLE_DESC_ID;\r
+\r
+  endform;\r
+\r
+  form formid = FORM_CON_IN_ID,\r
+       title = STRING_TOKEN(STR_FORM_CON_IN_TITLE);\r
+\r
+       label FORM_CON_IN_ID;\r
+\r
+  endform;\r
+\r
+  form formid = FORM_CON_OUT_ID,\r
+       title = STRING_TOKEN(STR_FORM_CON_OUT_TITLE);\r
+\r
+       label FORM_CON_OUT_ID;\r
+\r
+  endform;\r
+\r
+  form formid = FORM_CON_ERR_ID,\r
+       title = STRING_TOKEN(STR_FORM_STD_ERR_TITLE);\r
+\r
+       label FORM_CON_ERR_ID;\r
+\r
+  endform;\r
+\r
+  form formid = FORM_SET_FD_ORDER_ID,\r
+       title = STRING_TOKEN(STR_FORM_SET_FD_ORDER_TITLE);\r
+\r
+       label FORM_SET_FD_ORDER_ID;\r
+  endform;\r
+  \r
+  form formid = FORM_SET_HD_ORDER_ID,\r
+       title = STRING_TOKEN(STR_FORM_SET_HD_ORDER_TITLE);\r
+\r
+       label FORM_SET_HD_ORDER_ID;\r
+  endform;\r
+\r
+  form formid = FORM_SET_CD_ORDER_ID,\r
+       title = STRING_TOKEN(STR_FORM_SET_CD_ORDER_TITLE);\r
+\r
+       label FORM_SET_CD_ORDER_ID;\r
+  endform;\r
+\r
+  form formid = FORM_SET_NET_ORDER_ID,\r
+       title = STRING_TOKEN(STR_FORM_SET_NET_ORDER_TITLE);\r
+\r
+       label FORM_SET_NET_ORDER_ID;\r
+  endform;\r
+\r
+  form formid = FORM_SET_BEV_ORDER_ID,\r
+       title = STRING_TOKEN(STR_FORM_SET_BEV_ORDER_TITLE);\r
+\r
+       label FORM_SET_BEV_ORDER_ID;\r
+  endform;\r
+\r
+endformset;\r