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