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 #define BOOT_MAINT_FORMSET_GUID \ 18 { \ 19 0x642237c7, 0x35d4, 0x472d, {0x83, 0x65, 0x12, 0xe0, 0xcc, 0xf2, 0x7a, 0x22} \ 20 } 21 22 #define FORM_MAIN_ID 0x1001 23 #define FORM_BOOT_ADD_ID 0x1002 24 #define FORM_BOOT_DEL_ID 0x1003 25 #define FORM_BOOT_CHG_ID 0x1004 26 #define FORM_DRV_ADD_ID 0x1005 27 #define FORM_DRV_DEL_ID 0x1006 28 #define FORM_DRV_CHG_ID 0x1007 29 #define FORM_CON_MAIN_ID 0x1008 30 #define FORM_CON_IN_ID 0x1009 31 #define FORM_CON_OUT_ID 0x100A 32 #define FORM_CON_ERR_ID 0x100B 33 #define FORM_FILE_SEEK_ID 0x100C 34 #define FORM_FILE_NEW_SEEK_ID 0x100D 35 #define FORM_DRV_ADD_FILE_ID 0x100E 36 #define FORM_DRV_ADD_HANDLE_ID 0x100F 37 #define FORM_DRV_ADD_HANDLE_DESC_ID 0x1010 38 #define FORM_BOOT_NEXT_ID 0x1011 39 #define FORM_TIME_OUT_ID 0x1012 40 #define FORM_BOOT_SETUP_ID 0x1014 41 #define FORM_DRIVER_SETUP_ID 0x1015 42 #define FORM_BOOT_LEGACY_DEVICE_ID 0x1016 43 #define FORM_CON_COM_ID 0x1017 44 #define FORM_CON_COM_SETUP_ID 0x1018 45 #define FORM_BOOT_ADD_DESCRIPTION_ID 0x101F 46 #define FORM_DRIVER_ADD_FILE_DESCRIPTION_ID 0x1020 47 #define FORM_CON_MODE_ID 0x1021 48 #define FORM_MEMORY_CHECK_ID 0x1022 49 #define FORM_UEFI_OPTIMIZED_BOOT_ID 0x1023 50 #define FORM_BOOT_FROM_FILE_ID 0x1024 51 52 53 #define MAXIMUM_FORM_ID 0x10FF 54 55 #define KEY_VALUE_COM_SET_BAUD_RATE 0x1101 56 #define KEY_VALUE_COM_SET_DATA_BITS 0x1102 57 #define KEY_VALUE_COM_SET_STOP_BITS 0x1103 58 #define KEY_VALUE_COM_SET_PARITY 0x1104 59 #define KEY_VALUE_COM_SET_TERMI_TYPE 0x1105 60 #define KEY_VALUE_MAIN_BOOT_NEXT 0x1106 61 #define KEY_VALUE_BOOT_ADD_DESC_DATA 0x1107 62 #define KEY_VALUE_BOOT_ADD_OPT_DATA 0x1108 63 #define KEY_VALUE_DRIVER_ADD_DESC_DATA 0x1109 64 #define KEY_VALUE_DRIVER_ADD_OPT_DATA 0x110A 65 #define KEY_VALUE_SAVE_AND_EXIT 0x110B 66 #define KEY_VALUE_NO_SAVE_AND_EXIT 0x110C 67 #define KEY_VALUE_BOOT_FROM_FILE 0x110D 68 #define FORM_RESET 0x110E 69 #define KEY_VALUE_BOOT_DESCRIPTION 0x110F 70 #define KEY_VALUE_BOOT_OPTION 0x1110 71 #define KEY_VALUE_DRIVER_DESCRIPTION 0x1111 72 #define KEY_VALUE_DRIVER_OPTION 0x1112 73 #define KEY_VALUE_SAVE_AND_EXIT_BOOT 0x1113 74 #define KEY_VALUE_NO_SAVE_AND_EXIT_BOOT 0x1114 75 #define KEY_VALUE_SAVE_AND_EXIT_DRIVER 0x1115 76 #define KEY_VALUE_NO_SAVE_AND_EXIT_DRIVER 0x1116 77 78 #define MAXIMUM_NORMAL_KEY_VALUE 0x11FF 79 80 // 81 // Varstore ID defined for Buffer Storage 82 // 83 #define VARSTORE_ID_BOOT_MAINT 0x1000 84 85 // 86 // End Label 87 // 88 #define LABEL_BMM_PLATFORM_INFORMATION 0xfffe 89 #define LABEL_END 0xffff 90 #define MAX_MENU_NUMBER 100 91 92 /// 93 /// This is the structure that will be used to store the 94 /// question's current value. Use it at initialize time to 95 /// set default value for each question. When using at run 96 /// time, this map is returned by the callback function, 97 /// so dynamically changing the question's value will be 98 /// possible through this mechanism 99 /// 100 typedef struct { 101 // 102 // Three questions displayed at the main page 103 // for Timeout, BootNext, Variables respectively 104 // 105 UINT16 BootTimeOut; 106 UINT32 BootNext; 107 108 // 109 // This is the COM1 Attributes value storage 110 // 111 UINT8 COM1BaudRate; 112 UINT8 COM1DataRate; 113 UINT8 COM1StopBits; 114 UINT8 COM1Parity; 115 UINT8 COM1TerminalType; 116 117 // 118 // This is the COM2 Attributes value storage 119 // 120 UINT8 COM2BaudRate; 121 UINT8 COM2DataRate; 122 UINT8 COM2StopBits; 123 UINT8 COM2Parity; 124 UINT8 COM2TerminalType; 125 126 // 127 // Driver Option Add Handle page storage 128 // 129 UINT16 DriverAddHandleDesc[MAX_MENU_NUMBER]; 130 UINT16 DriverAddHandleOptionalData[MAX_MENU_NUMBER]; 131 UINT8 DriverAddActive; 132 UINT8 DriverAddForceReconnect; 133 134 // 135 // Console Input/Output/Errorout using COM port check storage 136 // 137 UINT8 ConsoleInputCOM1; 138 UINT8 ConsoleInputCOM2; 139 UINT8 ConsoleOutputCOM1; 140 UINT8 ConsoleOutputCOM2; 141 UINT8 ConsoleErrorCOM1; 142 UINT8 ConsoleErrorCOM2; 143 144 // 145 // At most 100 input/output/errorout device for console storage 146 // 147 UINT8 ConsoleCheck[MAX_MENU_NUMBER]; 148 149 // 150 // At most 100 input/output/errorout device for console storage 151 // 152 UINT8 ConsoleInCheck[MAX_MENU_NUMBER]; 153 UINT8 ConsoleOutCheck[MAX_MENU_NUMBER]; 154 UINT8 ConsoleErrCheck[MAX_MENU_NUMBER]; 155 156 // 157 // Boot or Driver Option Order storage 158 // The value is the OptionNumber+1 because the order list value cannot be 0 159 // Use UINT32 to hold the potential value 0xFFFF+1=0x10000 160 // 161 UINT32 BootOptionOrder[MAX_MENU_NUMBER]; 162 UINT32 DriverOptionOrder[MAX_MENU_NUMBER]; 163 // 164 // Boot or Driver Option Delete storage 165 // 166 BOOLEAN BootOptionDel[MAX_MENU_NUMBER]; 167 BOOLEAN DriverOptionDel[MAX_MENU_NUMBER]; 168 BOOLEAN BootOptionDelMark[MAX_MENU_NUMBER]; 169 BOOLEAN DriverOptionDelMark[MAX_MENU_NUMBER]; 170 171 // 172 // This is the Terminal Attributes value storage 173 // 174 UINT8 COMBaudRate[MAX_MENU_NUMBER]; 175 UINT8 COMDataRate[MAX_MENU_NUMBER]; 176 UINT8 COMStopBits[MAX_MENU_NUMBER]; 177 UINT8 COMParity[MAX_MENU_NUMBER]; 178 UINT8 COMTerminalType[MAX_MENU_NUMBER]; 179 UINT8 COMFlowControl[MAX_MENU_NUMBER]; 180 181 // 182 // We use DisableMap array to record the enable/disable state of each boot device 183 // It should be taken as a bit array, from left to right there are totally 256 bits 184 // the most left one stands for BBS table item 0, and the most right one stands for item 256 185 // If the bit is 1, it means the boot device has been disabled. 186 // 187 UINT8 DisableMap[32]; 188 189 // 190 // Console Output Text Mode 191 // 192 UINT16 ConsoleOutMode; 193 194 // 195 // UINT16 PadArea[10]; 196 // 197 198 UINT16 BootDescriptionData[MAX_MENU_NUMBER]; 199 UINT16 BootOptionalData[127]; 200 UINT16 DriverDescriptionData[MAX_MENU_NUMBER]; 201 UINT16 DriverOptionalData[127]; 202 BOOLEAN BootOptionChanged; 203 BOOLEAN DriverOptionChanged; 204 UINT8 Active; 205 UINT8 ForceReconnect; 206 } BMM_FAKE_NV_DATA; 207 208 #endif 209 210