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