1 /** @file 2 Formset guids, form id and VarStore data structure for Boot Maintenance Manager. 3 4 Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR> 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 **/ 14 #ifndef _FORM_GUID_H_ 15 #define _FORM_GUID_H_ 16 17 #include <Guid/BdsHii.h> 18 19 #define FORM_MAIN_ID 0x1001 20 #define FORM_BOOT_ADD_ID 0x1002 21 #define FORM_BOOT_DEL_ID 0x1003 22 #define FORM_BOOT_CHG_ID 0x1004 23 #define FORM_DRV_ADD_ID 0x1005 24 #define FORM_DRV_DEL_ID 0x1006 25 #define FORM_DRV_CHG_ID 0x1007 26 #define FORM_CON_MAIN_ID 0x1008 27 #define FORM_CON_IN_ID 0x1009 28 #define FORM_CON_OUT_ID 0x100A 29 #define FORM_CON_ERR_ID 0x100B 30 #define FORM_FILE_SEEK_ID 0x100C 31 #define FORM_FILE_NEW_SEEK_ID 0x100D 32 #define FORM_DRV_ADD_FILE_ID 0x100E 33 #define FORM_DRV_ADD_HANDLE_ID 0x100F 34 #define FORM_DRV_ADD_HANDLE_DESC_ID 0x1010 35 #define FORM_BOOT_NEXT_ID 0x1011 36 #define FORM_TIME_OUT_ID 0x1012 37 #define FORM_RESET 0x1013 38 #define FORM_BOOT_SETUP_ID 0x1014 39 #define FORM_DRIVER_SETUP_ID 0x1015 40 #define FORM_BOOT_LEGACY_DEVICE_ID 0x1016 41 #define FORM_CON_COM_ID 0x1017 42 #define FORM_CON_COM_SETUP_ID 0x1018 43 #define FORM_SET_FD_ORDER_ID 0x1019 44 #define FORM_SET_HD_ORDER_ID 0x101A 45 #define FORM_SET_CD_ORDER_ID 0x101B 46 #define FORM_SET_NET_ORDER_ID 0x101C 47 #define FORM_SET_BEV_ORDER_ID 0x101D 48 #define FORM_FILE_EXPLORER_ID 0x101E 49 #define FORM_BOOT_ADD_DESCRIPTION_ID 0x101F 50 #define FORM_DRIVER_ADD_FILE_DESCRIPTION_ID 0x1020 51 #define FORM_CON_MODE_ID 0x1021 52 #define FORM_BOOT_FROM_FILE_ID 0x1022 53 54 #define MAXIMUM_FORM_ID 0x10FF 55 56 #define KEY_VALUE_COM_SET_BAUD_RATE 0x1101 57 #define KEY_VALUE_COM_SET_DATA_BITS 0x1102 58 #define KEY_VALUE_COM_SET_STOP_BITS 0x1103 59 #define KEY_VALUE_COM_SET_PARITY 0x1104 60 #define KEY_VALUE_COM_SET_TERMI_TYPE 0x1105 61 #define KEY_VALUE_MAIN_BOOT_NEXT 0x1106 62 #define KEY_VALUE_BOOT_ADD_DESC_DATA 0x1107 63 #define KEY_VALUE_BOOT_ADD_OPT_DATA 0x1108 64 #define KEY_VALUE_DRIVER_ADD_DESC_DATA 0x1109 65 #define KEY_VALUE_DRIVER_ADD_OPT_DATA 0x110A 66 #define KEY_VALUE_SAVE_AND_EXIT 0x110B 67 #define KEY_VALUE_NO_SAVE_AND_EXIT 0x110C 68 #define KEY_VALUE_BOOT_FROM_FILE 0x110D 69 #define KEY_VALUE_BOOT_DESCRIPTION 0x110E 70 #define KEY_VALUE_BOOT_OPTION 0x110F 71 #define KEY_VALUE_DRIVER_DESCRIPTION 0x1110 72 #define KEY_VALUE_DRIVER_OPTION 0x1111 73 74 #define MAXIMUM_NORMAL_KEY_VALUE 0x11FF 75 76 // 77 // Varstore ID defined for Buffer Storage 78 // 79 #define VARSTORE_ID_BOOT_MAINT 0x1000 80 #define VARSTORE_ID_FILE_EXPLORER 0x1001 81 82 // 83 // End Label 84 // 85 #define LABEL_END 0xffff 86 #define MAX_MENU_NUMBER 100 87 88 /// 89 /// This is the structure that will be used to store the 90 /// question's current value. Use it at initialize time to 91 /// set default value for each question. When using at run 92 /// time, this map is returned by the callback function, 93 /// so dynamically changing the question's value will be 94 /// possible through this mechanism 95 /// 96 typedef struct { 97 // 98 // Three questions displayed at the main page 99 // for Timeout, BootNext Variables respectively 100 // 101 UINT16 BootTimeOut; 102 UINT16 BootNext; 103 104 // 105 // This is the COM1 Attributes value storage 106 // 107 UINT8 COM1BaudRate; 108 UINT8 COM1DataRate; 109 UINT8 COM1StopBits; 110 UINT8 COM1Parity; 111 UINT8 COM1TerminalType; 112 113 // 114 // This is the COM2 Attributes value storage 115 // 116 UINT8 COM2BaudRate; 117 UINT8 COM2DataRate; 118 UINT8 COM2StopBits; 119 UINT8 COM2Parity; 120 UINT8 COM2TerminalType; 121 122 // 123 // Driver Option Add Handle page storage 124 // 125 UINT16 DriverAddHandleDesc[MAX_MENU_NUMBER]; 126 UINT16 DriverAddHandleOptionalData[MAX_MENU_NUMBER]; 127 UINT8 DriverAddActive; 128 UINT8 DriverAddForceReconnect; 129 130 // 131 // Console Input/Output/Errorout using COM port check storage 132 // 133 UINT8 ConsoleInputCOM1; 134 UINT8 ConsoleInputCOM2; 135 UINT8 ConsoleOutputCOM1; 136 UINT8 ConsoleOutputCOM2; 137 UINT8 ConsoleErrorCOM1; 138 UINT8 ConsoleErrorCOM2; 139 140 // 141 // At most 100 input/output/errorout device for console storage 142 // 143 UINT8 ConsoleCheck[MAX_MENU_NUMBER]; 144 // 145 // At most 100 input/output/errorout device for console storage 146 // 147 UINT8 ConsoleInCheck[MAX_MENU_NUMBER]; 148 UINT8 ConsoleOutCheck[MAX_MENU_NUMBER]; 149 UINT8 ConsoleErrCheck[MAX_MENU_NUMBER]; 150 151 // 152 // Boot Option Order storage 153 // The value is the OptionNumber+1 because the order list value cannot be 0 154 // Use UINT32 to hold the potential value 0xFFFF+1=0x10000 155 // 156 UINT32 BootOptionOrder[MAX_MENU_NUMBER]; 157 158 // 159 // Driver Option Order storage 160 // The value is the OptionNumber+1 because the order list value cannot be 0 161 // Use UINT32 to hold the potential value 0xFFFF+1=0x10000 162 // 163 UINT32 DriverOptionOrder[MAX_MENU_NUMBER]; 164 165 // 166 // Boot Option Delete storage 167 // 168 BOOLEAN BootOptionDel[MAX_MENU_NUMBER]; 169 BOOLEAN BootOptionDelMark[MAX_MENU_NUMBER]; 170 171 // 172 // Driver Option Delete storage 173 // 174 BOOLEAN DriverOptionDel[MAX_MENU_NUMBER]; 175 BOOLEAN DriverOptionDelMark[MAX_MENU_NUMBER]; 176 177 // 178 // This is the Terminal Attributes value storage 179 // 180 UINT8 COMBaudRate[MAX_MENU_NUMBER]; 181 UINT8 COMDataRate[MAX_MENU_NUMBER]; 182 UINT8 COMStopBits[MAX_MENU_NUMBER]; 183 UINT8 COMParity[MAX_MENU_NUMBER]; 184 UINT8 COMTerminalType[MAX_MENU_NUMBER]; 185 UINT8 COMFlowControl[MAX_MENU_NUMBER]; 186 187 // 188 // Legacy Device Order Selection Storage 189 // 190 UINT8 LegacyFD[MAX_MENU_NUMBER]; 191 UINT8 LegacyHD[MAX_MENU_NUMBER]; 192 UINT8 LegacyCD[MAX_MENU_NUMBER]; 193 UINT8 LegacyNET[MAX_MENU_NUMBER]; 194 UINT8 LegacyBEV[MAX_MENU_NUMBER]; 195 196 // 197 // We use DisableMap array to record the enable/disable state of each boot device 198 // It should be taken as a bit array, from left to right there are totally 256 bits 199 // the most left one stands for BBS table item 0, and the most right one stands for item 256 200 // If the bit is 1, it means the boot device has been disabled. 201 // 202 UINT8 DisableMap[32]; 203 204 // 205 // Console Output Text Mode 206 // 207 UINT16 ConsoleOutMode; 208 209 // 210 // UINT16 PadArea[10]; 211 // 212 } BMM_FAKE_NV_DATA; 213 214 // 215 // Key used by File Explorer forms 216 // 217 #define KEY_VALUE_SAVE_AND_EXIT_BOOT 0x1000 218 #define KEY_VALUE_NO_SAVE_AND_EXIT_BOOT 0x1001 219 #define KEY_VALUE_SAVE_AND_EXIT_DRIVER 0x1002 220 #define KEY_VALUE_NO_SAVE_AND_EXIT_DRIVER 0x1003 221 222 // 223 // Description data and optional data size 224 // 225 #define DESCRIPTION_DATA_SIZE 75 226 #define OPTIONAL_DATA_SIZE 127 227 228 /// 229 /// This is the data structure used by File Explorer formset 230 /// 231 typedef struct { 232 UINT16 BootDescriptionData[DESCRIPTION_DATA_SIZE]; 233 UINT16 BootOptionalData[OPTIONAL_DATA_SIZE]; 234 UINT16 DriverDescriptionData[DESCRIPTION_DATA_SIZE]; 235 UINT16 DriverOptionalData[OPTIONAL_DATA_SIZE]; 236 BOOLEAN BootOptionChanged; 237 BOOLEAN DriverOptionChanged; 238 UINT8 Active; 239 UINT8 ForceReconnect; 240 } FILE_EXPLORER_NV_DATA; 241 242 #endif 243 244