2 // Include common header file for this module.
4 #include "CommonHeader.h"
8 // Copyright (c) 2006, Intel Corporation
9 // All rights reserved. This program and the accompanying materials
10 // are licensed and made available under the terms and conditions of the BSD License
11 // which accompanies this distribution. The full text of the license may be found at
12 // http://opensource.org/licenses/bsd-license.php
14 // THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
23 // Boot Maintenance Utility Formset
29 #include "BdsStrDefs.h"
35 // This is the structure that will be used to store the
36 // question's current value. Use it at initialize time to
37 // set default value for each question. When using at run
38 // time, this map is returned by the callback function,
39 // so dynamically changing the question's value will be
40 // possible through this mechanism
45 // Three questions displayed at the main page
46 // for Timeout, BootNext Variables respectively
52 // This is the COM1 Attributes value storage
58 UINT8 COM1TerminalType;
61 // This is the COM2 Attributes value storage
67 UINT8 COM2TerminalType;
70 // Driver Option Add Handle page storage
72 UINT16 DriverAddHandleDesc[100];
73 UINT16 DriverAddHandleOptionalData[100];
74 UINT8 DriverAddActive;
75 UINT8 DriverAddForceReconnect;
78 // Console Input/Output/Errorout using COM port check storage
80 UINT8 ConsoleInputCOM1;
81 UINT8 ConsoleInputCOM2;
82 UINT8 ConsoleOutputCOM1;
83 UINT8 ConsoleOutputCOM2;
84 UINT8 ConsoleErrorCOM1;
85 UINT8 ConsoleErrorCOM2;
88 // At most 100 input/output/errorout device for console storage
90 UINT8 ConsoleCheck[100];
93 // Boot or Driver Option Order storage
95 UINT8 OptionOrder[100];
96 UINT8 DriverOptionToBeDeleted[100];
99 // Boot Option Delete storage
101 UINT8 BootOptionDel[100];
102 UINT8 DriverOptionDel[100];
105 // This is the Terminal Attributes value storage
111 UINT8 COMTerminalType;
114 // Legacy Device Order Selection Storage
119 UINT8 LegacyNET[100];
120 UINT8 LegacyBEV[100];
125 #define FORM_MAIN_ID 0x0001
126 #define FORM_BOOT_ADD_ID 0x0002
127 #define FORM_BOOT_DEL_ID 0x0003
128 #define FORM_BOOT_CHG_ID 0x0004
129 #define FORM_DRV_ADD_ID 0x0005
130 #define FORM_DRV_DEL_ID 0x0006
131 #define FORM_DRV_CHG_ID 0x0007
132 #define FORM_CON_MAIN_ID 0x0008
133 #define FORM_CON_IN_ID 0x0009
134 #define FORM_CON_OUT_ID 0x000A
135 #define FORM_CON_ERR_ID 0x000B
136 #define FORM_FILE_SEEK_ID 0x000C
137 #define FORM_FILE_NEW_SEEK_ID 0x000D
138 #define FORM_DRV_ADD_FILE_ID 0x000E
139 #define FORM_DRV_ADD_HANDLE_ID 0x000F
140 #define FORM_DRV_ADD_HANDLE_DESC_ID 0x0010
141 #define FORM_BOOT_NEXT_ID 0x0011
142 #define FORM_TIME_OUT_ID 0x0012
143 #define FORM_RESET 0x0013
144 #define FORM_BOOT_SETUP_ID 0x0014
145 #define FORM_DRIVER_SETUP_ID 0x0015
146 #define FORM_BOOT_LEGACY_DEVICE_ID 0x0016
147 #define FORM_CON_COM_ID 0x0017
148 #define FORM_CON_COM_SETUP_ID 0x0018
149 #define FORM_SET_FD_ORDER_ID 0x0019
150 #define FORM_SET_HD_ORDER_ID 0x001A
151 #define FORM_SET_CD_ORDER_ID 0x001B
152 #define FORM_SET_NET_ORDER_ID 0x001C
153 #define FORM_SET_BEV_ORDER_ID 0x001D
155 #define KEY_VALUE_BOOT_FROM_FILE 0x0092
158 guid = MAIN_FORMSET_GUID,
159 title = STRING_TOKEN(STR_FORM_MAIN_TITLE), // uint8 opcode, uint8 length, guid Handle, uint16 Title
160 help = STRING_TOKEN(STR_NULL_STRING),
164 form formid = FORM_MAIN_ID,
165 title = STRING_TOKEN(STR_FORM_MAIN_TITLE);
167 goto FORM_BOOT_SETUP_ID,
168 prompt = STRING_TOKEN(STR_FORM_BOOT_SETUP_TITLE),
169 help = STRING_TOKEN(STR_FORM_BOOT_SETUP_HELP),
170 flags = INTERACTIVE | NV_ACCESS,
171 key = FORM_BOOT_SETUP_ID;
173 subtitle text = STRING_TOKEN(STR_NULL_STRING);
175 goto FORM_DRIVER_SETUP_ID,
176 prompt = STRING_TOKEN(STR_FORM_DRIVER_SETUP_TITLE),
177 help = STRING_TOKEN(STR_FORM_DRIVER_SETUP_HELP),
178 flags = INTERACTIVE | NV_ACCESS,
179 key = FORM_DRIVER_SETUP_ID;
181 subtitle text = STRING_TOKEN(STR_NULL_STRING);
183 goto FORM_CON_MAIN_ID,
184 prompt = STRING_TOKEN(STR_FORM_CON_MAIN_TITLE),
185 help = STRING_TOKEN(STR_FORM_CON_MAIN_HELP),
186 flags = INTERACTIVE | NV_ACCESS,
187 key = FORM_CON_MAIN_ID;
189 subtitle text = STRING_TOKEN(STR_NULL_STRING);
192 help = STRING_TOKEN(STR_BOOT_FROM_FILE_HELP),
193 text = STRING_TOKEN(STR_BOOT_FROM_FILE),
194 text = STRING_TOKEN(STR_NULL_STRING),
195 flags = INTERACTIVE | NV_ACCESS,
196 key = KEY_VALUE_BOOT_FROM_FILE;
198 subtitle text = STRING_TOKEN(STR_NULL_STRING);
200 // label FORM_MAIN_ID;
202 goto FORM_BOOT_NEXT_ID,
203 prompt = STRING_TOKEN(STR_FORM_BOOT_NEXT_TITLE),
204 help = STRING_TOKEN(STR_FORM_BOOT_NEXT_HELP),
205 flags = INTERACTIVE | NV_ACCESS,
206 key = FORM_BOOT_NEXT_ID;
208 goto FORM_TIME_OUT_ID,
209 prompt = STRING_TOKEN(STR_FORM_TIME_OUT_TITLE),
210 help = STRING_TOKEN(STR_FORM_TIME_OUT_HELP),
211 flags = INTERACTIVE | NV_ACCESS,
212 key = FORM_TIME_OUT_ID;
214 subtitle text = STRING_TOKEN(STR_NULL_STRING);
217 prompt = STRING_TOKEN(STR_RESET),
218 help = STRING_TOKEN(STR_RESET),
219 flags = INTERACTIVE | NV_ACCESS,
224 form formid = FORM_BOOT_SETUP_ID,
225 title = STRING_TOKEN(STR_FORM_BOOT_SETUP_TITLE);
228 prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),
229 help = STRING_TOKEN(STR_FORM_GOTO_MAIN),
230 flags = INTERACTIVE | NV_ACCESS,
233 goto FORM_BOOT_ADD_ID,
234 prompt = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE),
235 help = STRING_TOKEN(STR_FORM_BOOT_ADD_HELP),
236 flags = INTERACTIVE | NV_ACCESS,
237 key = FORM_BOOT_ADD_ID;
239 goto FORM_BOOT_DEL_ID,
240 prompt = STRING_TOKEN(STR_FORM_BOOT_DEL_TITLE),
241 help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),
242 flags = INTERACTIVE | NV_ACCESS,
243 key = FORM_BOOT_DEL_ID;
245 goto FORM_BOOT_CHG_ID,
246 prompt = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE),
247 help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),
248 flags = INTERACTIVE | NV_ACCESS,
249 key = FORM_BOOT_CHG_ID;
251 subtitle text = STRING_TOKEN(STR_NULL_STRING);
253 // We will add "Select Legacy Boot Floppy Drive" and "Select Legacy Boot Hard Drive"
256 label FORM_BOOT_LEGACY_DEVICE_ID;
260 form formid = FORM_DRIVER_SETUP_ID,
261 title = STRING_TOKEN(STR_FORM_DRIVER_SETUP_TITLE);
264 prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),
265 help = STRING_TOKEN(STR_FORM_GOTO_MAIN),
266 flags = INTERACTIVE | NV_ACCESS,
269 goto FORM_DRV_ADD_ID,
270 prompt = STRING_TOKEN(STR_FORM_DRV_ADD_TITLE),
271 help = STRING_TOKEN(STR_FORM_DRV_ADD_HELP),
272 flags = INTERACTIVE | NV_ACCESS,
273 key = FORM_DRV_ADD_ID;
275 goto FORM_DRV_DEL_ID,
276 prompt = STRING_TOKEN(STR_FORM_DRV_DEL_TITLE),
277 help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),
278 flags = INTERACTIVE | NV_ACCESS,
279 key = FORM_DRV_DEL_ID;
281 goto FORM_DRV_CHG_ID,
282 prompt = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE),
283 help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),
284 flags = INTERACTIVE | NV_ACCESS,
285 key = FORM_DRV_CHG_ID;
288 form formid = FORM_BOOT_ADD_ID,
289 title = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE);
291 label FORM_BOOT_ADD_ID;
294 form formid = FORM_BOOT_DEL_ID,
295 title = STRING_TOKEN(STR_FORM_BOOT_DEL_TITLE);
297 label FORM_BOOT_DEL_ID;
300 form formid = FORM_BOOT_CHG_ID,
301 title = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE);
303 label FORM_BOOT_CHG_ID;
306 // This tag is added for bypassing issue of setup browser
307 // setup browser could not support dynamic form very well.
309 checkbox varid = BMM_FAKE_NV_DATA.OptionOrder[0],
310 prompt = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE),
311 help = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE),
318 form formid = FORM_BOOT_NEXT_ID,
319 title = STRING_TOKEN(STR_FORM_BOOT_NEXT_TITLE);
321 label FORM_BOOT_NEXT_ID;
324 form formid = FORM_TIME_OUT_ID,
325 title = STRING_TOKEN(STR_FORM_TIME_OUT_TITLE);
327 label FORM_TIME_OUT_ID;
330 form formid = FORM_DRV_ADD_ID,
331 title = STRING_TOKEN(STR_FORM_DRV_ADD_TITLE);
334 prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),
335 help = STRING_TOKEN(STR_FORM_GOTO_MAIN),
336 flags = INTERACTIVE | NV_ACCESS,
339 goto FORM_DRV_ADD_FILE_ID,
340 prompt = STRING_TOKEN(STR_FORM_DRV_ADD_FILE_TITLE),
341 help = STRING_TOKEN(STR_FORM_DRV_ADD_FILE_TITLE),
342 flags = INTERACTIVE | NV_ACCESS,
343 key = FORM_DRV_ADD_FILE_ID;
347 form formid = FORM_DRV_DEL_ID,
348 title = STRING_TOKEN(STR_FORM_DRV_DEL_TITLE);
350 label FORM_DRV_DEL_ID;
354 form formid = FORM_DRV_CHG_ID,
355 title = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE);
357 label FORM_DRV_CHG_ID;
360 // This tag is added for bypassing issue of setup browser
361 // setup browser could not support dynamic form very well.
363 checkbox varid = BMM_FAKE_NV_DATA.OptionOrder[0],
364 prompt = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE),
365 help = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE),
372 form formid = FORM_CON_MAIN_ID,
373 title = STRING_TOKEN(STR_FORM_CON_MAIN_TITLE);
376 prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),
377 help = STRING_TOKEN(STR_FORM_GOTO_MAIN),
378 flags = INTERACTIVE | NV_ACCESS,
382 prompt = STRING_TOKEN(STR_FORM_CON_IN_TITLE),
383 help = STRING_TOKEN(STR_FORM_CON_IN_HELP),
384 flags = INTERACTIVE | NV_ACCESS,
385 key = FORM_CON_IN_ID;
387 goto FORM_CON_OUT_ID,
388 prompt = STRING_TOKEN(STR_FORM_CON_OUT_TITLE),
389 help = STRING_TOKEN(STR_FORM_CON_OUT_HELP),
390 flags = INTERACTIVE | NV_ACCESS,
391 key = FORM_CON_OUT_ID;
393 goto FORM_CON_ERR_ID,
394 prompt = STRING_TOKEN(STR_FORM_STD_ERR_TITLE),
395 help = STRING_TOKEN(STR_FORM_STD_ERR_HELP),
396 flags = INTERACTIVE | NV_ACCESS,
397 key = FORM_CON_ERR_ID;
399 goto FORM_CON_COM_ID,
400 prompt = STRING_TOKEN(STR_FORM_COM_TITLE),
401 help = STRING_TOKEN(STR_FORM_COM_HELP),
402 flags = INTERACTIVE | NV_ACCESS,
403 key = FORM_CON_COM_ID;
406 form formid = FORM_CON_COM_ID,
407 title = STRING_TOKEN(STR_FORM_COM_TITLE);
409 label FORM_CON_COM_ID;
412 form formid = FORM_CON_COM_SETUP_ID,
413 title = STRING_TOKEN(STR_CON_COM_SETUP);
415 label FORM_CON_COM_SETUP_ID;
418 form formid = FORM_FILE_SEEK_ID,
419 title = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE);
421 label FORM_FILE_SEEK_ID;
424 form formid = FORM_FILE_NEW_SEEK_ID,
425 title = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE);
427 label FORM_FILE_NEW_SEEK_ID;
430 form formid = FORM_DRV_ADD_FILE_ID,
431 title = STRING_TOKEN(STR_FORM_DRV_ADD_FILE_TITLE);
433 label FORM_DRV_ADD_FILE_ID;
436 form formid = FORM_DRV_ADD_HANDLE_ID,
437 title = STRING_TOKEN(STR_FORM_DRV_ADD_HANDLE_TITLE);
439 label FORM_DRV_ADD_HANDLE_ID;
442 form formid = FORM_DRV_ADD_HANDLE_DESC_ID,
443 title = STRING_TOKEN(STR_FORM_DRV_ADD_DESC_TITLE);
445 label FORM_DRV_ADD_HANDLE_DESC_ID;
449 form formid = FORM_CON_IN_ID,
450 title = STRING_TOKEN(STR_FORM_CON_IN_TITLE);
452 label FORM_CON_IN_ID;
456 form formid = FORM_CON_OUT_ID,
457 title = STRING_TOKEN(STR_FORM_CON_OUT_TITLE);
459 label FORM_CON_OUT_ID;
463 form formid = FORM_CON_ERR_ID,
464 title = STRING_TOKEN(STR_FORM_STD_ERR_TITLE);
466 label FORM_CON_ERR_ID;
470 form formid = FORM_SET_FD_ORDER_ID,
471 title = STRING_TOKEN(STR_FORM_SET_FD_ORDER_TITLE);
473 label FORM_SET_FD_ORDER_ID;
476 form formid = FORM_SET_HD_ORDER_ID,
477 title = STRING_TOKEN(STR_FORM_SET_HD_ORDER_TITLE);
479 label FORM_SET_HD_ORDER_ID;
482 form formid = FORM_SET_CD_ORDER_ID,
483 title = STRING_TOKEN(STR_FORM_SET_CD_ORDER_TITLE);
485 label FORM_SET_CD_ORDER_ID;
488 form formid = FORM_SET_NET_ORDER_ID,
489 title = STRING_TOKEN(STR_FORM_SET_NET_ORDER_TITLE);
491 label FORM_SET_NET_ORDER_ID;
494 form formid = FORM_SET_BEV_ORDER_ID,
495 title = STRING_TOKEN(STR_FORM_SET_BEV_ORDER_TITLE);
497 label FORM_SET_BEV_ORDER_ID;