14af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi/** @file 24af04335ac9aeb1802b995b102117b6f9de46809Dandan BiFormset guids, form id and VarStore data structure for Boot Maintenance Manager. 34af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 44af04335ac9aeb1802b995b102117b6f9de46809Dandan BiCopyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR> 54af04335ac9aeb1802b995b102117b6f9de46809Dandan BiThis program and the accompanying materials 64af04335ac9aeb1802b995b102117b6f9de46809Dandan Biare licensed and made available under the terms and conditions of the BSD License 74af04335ac9aeb1802b995b102117b6f9de46809Dandan Biwhich accompanies this distribution. The full text of the license may be found at 84af04335ac9aeb1802b995b102117b6f9de46809Dandan Bihttp://opensource.org/licenses/bsd-license.php 94af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 104af04335ac9aeb1802b995b102117b6f9de46809Dandan BiTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 114af04335ac9aeb1802b995b102117b6f9de46809Dandan BiWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 124af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 134af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi**/ 144af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#ifndef _FORM_GUID_H_ 154af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define _FORM_GUID_H_ 164af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 174af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define BOOT_MAINT_FORMSET_GUID \ 184af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi { \ 194af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 0x642237c7, 0x35d4, 0x472d, {0x83, 0x65, 0x12, 0xe0, 0xcc, 0xf2, 0x7a, 0x22} \ 204af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi } 214af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 224af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_MAIN_ID 0x1001 234af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_BOOT_ADD_ID 0x1002 244af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_BOOT_DEL_ID 0x1003 254af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_BOOT_CHG_ID 0x1004 264af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_DRV_ADD_ID 0x1005 274af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_DRV_DEL_ID 0x1006 284af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_DRV_CHG_ID 0x1007 294af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_CON_MAIN_ID 0x1008 304af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_CON_IN_ID 0x1009 314af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_CON_OUT_ID 0x100A 324af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_CON_ERR_ID 0x100B 334af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_FILE_SEEK_ID 0x100C 344af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_FILE_NEW_SEEK_ID 0x100D 354af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_DRV_ADD_FILE_ID 0x100E 364af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_DRV_ADD_HANDLE_ID 0x100F 374af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_DRV_ADD_HANDLE_DESC_ID 0x1010 384af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_BOOT_NEXT_ID 0x1011 394af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_TIME_OUT_ID 0x1012 404af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_BOOT_SETUP_ID 0x1014 414af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_DRIVER_SETUP_ID 0x1015 424af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_BOOT_LEGACY_DEVICE_ID 0x1016 434af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_CON_COM_ID 0x1017 444af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_CON_COM_SETUP_ID 0x1018 454af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_BOOT_ADD_DESCRIPTION_ID 0x101F 464af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_DRIVER_ADD_FILE_DESCRIPTION_ID 0x1020 474af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_CON_MODE_ID 0x1021 484af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_MEMORY_CHECK_ID 0x1022 494af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_UEFI_OPTIMIZED_BOOT_ID 0x1023 504af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_BOOT_FROM_FILE_ID 0x1024 514af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 524af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 534af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define MAXIMUM_FORM_ID 0x10FF 544af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 554af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_COM_SET_BAUD_RATE 0x1101 564af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_COM_SET_DATA_BITS 0x1102 574af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_COM_SET_STOP_BITS 0x1103 584af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_COM_SET_PARITY 0x1104 594af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_COM_SET_TERMI_TYPE 0x1105 604af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_MAIN_BOOT_NEXT 0x1106 614af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_BOOT_ADD_DESC_DATA 0x1107 624af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_BOOT_ADD_OPT_DATA 0x1108 634af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_DRIVER_ADD_DESC_DATA 0x1109 644af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_DRIVER_ADD_OPT_DATA 0x110A 654af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_SAVE_AND_EXIT 0x110B 664af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_NO_SAVE_AND_EXIT 0x110C 674af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_BOOT_FROM_FILE 0x110D 684af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define FORM_RESET 0x110E 694af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_BOOT_DESCRIPTION 0x110F 704af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_BOOT_OPTION 0x1110 714af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_DRIVER_DESCRIPTION 0x1111 724af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_DRIVER_OPTION 0x1112 734af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_SAVE_AND_EXIT_BOOT 0x1113 744af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_NO_SAVE_AND_EXIT_BOOT 0x1114 754af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_SAVE_AND_EXIT_DRIVER 0x1115 764af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define KEY_VALUE_NO_SAVE_AND_EXIT_DRIVER 0x1116 774af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 784af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define MAXIMUM_NORMAL_KEY_VALUE 0x11FF 794af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 804af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi// 814af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi// Varstore ID defined for Buffer Storage 824af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi// 834af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define VARSTORE_ID_BOOT_MAINT 0x1000 844af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 854af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi// 864af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi// End Label 874af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi// 884af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define LABEL_BMM_PLATFORM_INFORMATION 0xfffe 894af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define LABEL_END 0xffff 904af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#define MAX_MENU_NUMBER 100 914af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 924af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi/// 934af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi/// This is the structure that will be used to store the 944af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi/// question's current value. Use it at initialize time to 954af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi/// set default value for each question. When using at run 964af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi/// time, this map is returned by the callback function, 974af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi/// so dynamically changing the question's value will be 984af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi/// possible through this mechanism 994af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi/// 1004af04335ac9aeb1802b995b102117b6f9de46809Dandan Bitypedef struct { 1014af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1024af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // Three questions displayed at the main page 1034af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // for Timeout, BootNext, Variables respectively 1044af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1054af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT16 BootTimeOut; 106f79865264f58cc12e3ace3b83cbea1ee289a5e55Dandan Bi UINT32 BootNext; 1074af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 1084af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1094af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // This is the COM1 Attributes value storage 1104af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1114af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COM1BaudRate; 1124af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COM1DataRate; 1134af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COM1StopBits; 1144af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COM1Parity; 1154af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COM1TerminalType; 1164af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 1174af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1184af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // This is the COM2 Attributes value storage 1194af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1204af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COM2BaudRate; 1214af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COM2DataRate; 1224af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COM2StopBits; 1234af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COM2Parity; 1244af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COM2TerminalType; 1254af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 1264af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1274af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // Driver Option Add Handle page storage 1284af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1294af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT16 DriverAddHandleDesc[MAX_MENU_NUMBER]; 1304af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT16 DriverAddHandleOptionalData[MAX_MENU_NUMBER]; 1314af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 DriverAddActive; 1324af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 DriverAddForceReconnect; 1334af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 1344af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1354af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // Console Input/Output/Errorout using COM port check storage 1364af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1374af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 ConsoleInputCOM1; 1384af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 ConsoleInputCOM2; 1394af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 ConsoleOutputCOM1; 1404af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 ConsoleOutputCOM2; 1414af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 ConsoleErrorCOM1; 1424af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 ConsoleErrorCOM2; 1434af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 1444af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1454af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // At most 100 input/output/errorout device for console storage 1464af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1474af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 ConsoleCheck[MAX_MENU_NUMBER]; 1484af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 1494af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1504af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // At most 100 input/output/errorout device for console storage 1514af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1524af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 ConsoleInCheck[MAX_MENU_NUMBER]; 1534af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 ConsoleOutCheck[MAX_MENU_NUMBER]; 1544af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 ConsoleErrCheck[MAX_MENU_NUMBER]; 1554af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 1564af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1574af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // Boot or Driver Option Order storage 1584af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // The value is the OptionNumber+1 because the order list value cannot be 0 1594af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // Use UINT32 to hold the potential value 0xFFFF+1=0x10000 1604af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1614af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT32 BootOptionOrder[MAX_MENU_NUMBER]; 1624af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT32 DriverOptionOrder[MAX_MENU_NUMBER]; 1634af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1644af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // Boot or Driver Option Delete storage 1654af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1664af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi BOOLEAN BootOptionDel[MAX_MENU_NUMBER]; 1674af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi BOOLEAN DriverOptionDel[MAX_MENU_NUMBER]; 1684af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi BOOLEAN BootOptionDelMark[MAX_MENU_NUMBER]; 1694af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi BOOLEAN DriverOptionDelMark[MAX_MENU_NUMBER]; 1704af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 1714af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1724af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // This is the Terminal Attributes value storage 1734af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1744af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COMBaudRate[MAX_MENU_NUMBER]; 1754af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COMDataRate[MAX_MENU_NUMBER]; 1764af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COMStopBits[MAX_MENU_NUMBER]; 1774af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COMParity[MAX_MENU_NUMBER]; 1784af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COMTerminalType[MAX_MENU_NUMBER]; 1794af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 COMFlowControl[MAX_MENU_NUMBER]; 1804af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 1814af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1824af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // We use DisableMap array to record the enable/disable state of each boot device 1834af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // It should be taken as a bit array, from left to right there are totally 256 bits 1844af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // the most left one stands for BBS table item 0, and the most right one stands for item 256 1854af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // If the bit is 1, it means the boot device has been disabled. 1864af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1874af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 DisableMap[32]; 1884af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 1894af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1904af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // Console Output Text Mode 1914af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1924af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT16 ConsoleOutMode; 1934af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 1944af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1954af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // UINT16 PadArea[10]; 1964af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi // 1974af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 1984af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT16 BootDescriptionData[MAX_MENU_NUMBER]; 1994af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT16 BootOptionalData[127]; 2004af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT16 DriverDescriptionData[MAX_MENU_NUMBER]; 2014af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT16 DriverOptionalData[127]; 2024af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi BOOLEAN BootOptionChanged; 2034af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi BOOLEAN DriverOptionChanged; 2044af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 Active; 2054af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi UINT8 ForceReconnect; 2064af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi} BMM_FAKE_NV_DATA; 2074af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 2084af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi#endif 2094af04335ac9aeb1802b995b102117b6f9de46809Dandan Bi 210