--- /dev/null
+// *++\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