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