newline added at end
[people/mcb30/edk2.git] / edk2 / EdkUnixPkg / Dxe / PlatformBds / Generic / BootMaint / Bm.vfr
1 // *++\r
2 //\r
3 // Copyright (c) 2006, Intel Corporation                                                         \r
4 // All rights reserved. This program and the accompanying materials                          \r
5 // are licensed and made available under the terms and conditions of the BSD License         \r
6 // which accompanies this distribution.  The full text of the license may be found at        \r
7 // http://opensource.org/licenses/bsd-license.php                                            \r
8 //                                                                                           \r
9 // THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
10 // WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
11 // \r
12 // Module Name:\r
13 //\r
14 //   bm.vfr \r
15 // \r
16 // Abstract:\r
17 // \r
18 //   Boot Maintenance Utility Formset\r
19 // \r
20 // Revision History: \r
21 // \r
22 // --*/\r
23 \r
24 #include "BdsStrDefs.h" \r
25 #include "FormGuid.h"\r
26 \r
27 #pragma pack(1)\r
28 \r
29 //\r
30 // This is the structure that will be used to store the \r
31 // question's current value. Use it at initialize time to \r
32 // set default value for each question. When using at run\r
33 // time, this map is returned by the callback function,\r
34 // so dynamically changing the question's value will be\r
35 // possible through this mechanism\r
36 //\r
37 typedef struct {\r
38 \r
39 //\r
40 // Three questions displayed at the main page\r
41 // for Timeout, BootNext Variables respectively\r
42 //\r
43   UINT16                    BootTimeOut;\r
44   UINT16                    BootNext;\r
45 \r
46 //\r
47 // This is the COM1 Attributes value storage\r
48 //\r
49   UINT8                     COM1BaudRate;\r
50   UINT8                     COM1DataRate;\r
51   UINT8                     COM1StopBits;\r
52   UINT8                     COM1Parity;\r
53   UINT8                     COM1TerminalType;\r
54   \r
55 //\r
56 // This is the COM2 Attributes value storage\r
57 //\r
58   UINT8                     COM2BaudRate;\r
59   UINT8                     COM2DataRate;\r
60   UINT8                     COM2StopBits;\r
61   UINT8                     COM2Parity;\r
62   UINT8                     COM2TerminalType;\r
63 \r
64 // \r
65 // Driver Option Add Handle page storage\r
66 //\r
67   UINT16                    DriverAddHandleDesc[100];\r
68   UINT16                    DriverAddHandleOptionalData[100];\r
69   UINT8                     DriverAddActive;\r
70   UINT8                     DriverAddForceReconnect;\r
71   \r
72 //\r
73 // Console Input/Output/Errorout using COM port check storage\r
74 //\r
75   UINT8                     ConsoleInputCOM1;\r
76   UINT8                     ConsoleInputCOM2;\r
77   UINT8                     ConsoleOutputCOM1;\r
78   UINT8                     ConsoleOutputCOM2;\r
79   UINT8                     ConsoleErrorCOM1;\r
80   UINT8                     ConsoleErrorCOM2;\r
81 \r
82 //\r
83 // At most 100 input/output/errorout device for console storage\r
84 //\r
85   UINT8                     ConsoleCheck[100];\r
86 \r
87 //\r
88 // Boot or Driver Option Order storage\r
89 //\r
90   UINT8                     OptionOrder[100];\r
91   UINT8                     DriverOptionToBeDeleted[100];\r
92 \r
93 //\r
94 // Boot Option Delete storage\r
95 // \r
96   UINT8                     BootOptionDel[100];\r
97   UINT8                     DriverOptionDel[100];\r
98   \r
99 //\r
100 // This is the Terminal Attributes value storage\r
101 //\r
102   UINT8                     COMBaudRate;\r
103   UINT8                     COMDataRate;\r
104   UINT8                     COMStopBits;\r
105   UINT8                     COMParity;\r
106   UINT8                     COMTerminalType;\r
107   \r
108 //\r
109 // Legacy Device Order Selection Storage\r
110 //\r
111   UINT8                     LegacyFD[100];\r
112   UINT8                     LegacyHD[100];\r
113   UINT8                     LegacyCD[100];\r
114   UINT8                     LegacyNET[100];\r
115   UINT8                     LegacyBEV[100];\r
116 } BMM_FAKE_NV_DATA;\r
117 #pragma pack()\r
118 \r
119 \r
120 #define FORM_MAIN_ID                         0x0001\r
121 #define FORM_BOOT_ADD_ID                     0x0002\r
122 #define FORM_BOOT_DEL_ID                     0x0003\r
123 #define FORM_BOOT_CHG_ID                     0x0004\r
124 #define FORM_DRV_ADD_ID                      0x0005\r
125 #define FORM_DRV_DEL_ID                      0x0006\r
126 #define FORM_DRV_CHG_ID                      0x0007\r
127 #define FORM_CON_MAIN_ID                     0x0008\r
128 #define FORM_CON_IN_ID                       0x0009\r
129 #define FORM_CON_OUT_ID                      0x000A\r
130 #define FORM_CON_ERR_ID                      0x000B\r
131 #define FORM_FILE_SEEK_ID                    0x000C\r
132 #define FORM_FILE_NEW_SEEK_ID                0x000D\r
133 #define FORM_DRV_ADD_FILE_ID                 0x000E\r
134 #define FORM_DRV_ADD_HANDLE_ID               0x000F\r
135 #define FORM_DRV_ADD_HANDLE_DESC_ID          0x0010\r
136 #define FORM_BOOT_NEXT_ID                    0x0011\r
137 #define FORM_TIME_OUT_ID                     0x0012\r
138 #define FORM_RESET                           0x0013\r
139 #define FORM_BOOT_SETUP_ID                   0x0014\r
140 #define FORM_DRIVER_SETUP_ID                 0x0015\r
141 #define FORM_BOOT_LEGACY_DEVICE_ID           0x0016\r
142 #define FORM_CON_COM_ID                      0x0017\r
143 #define FORM_CON_COM_SETUP_ID                0x0018\r
144 #define FORM_SET_FD_ORDER_ID                 0x0019\r
145 #define FORM_SET_HD_ORDER_ID                 0x001A\r
146 #define FORM_SET_CD_ORDER_ID                 0x001B\r
147 #define FORM_SET_NET_ORDER_ID                0x001C\r
148 #define FORM_SET_BEV_ORDER_ID                0x001D\r
149                                                                         \r
150 #define KEY_VALUE_BOOT_FROM_FILE             0x0092\r
151 \r
152 formset \r
153   guid = MAIN_FORMSET_GUID,\r
154   title = STRING_TOKEN(STR_FORM_MAIN_TITLE),  // uint8 opcode, uint8 length, guid Handle, uint16 Title\r
155   help = STRING_TOKEN(STR_NULL_STRING),\r
156   class = 0,      \r
157   subclass = 0,\r
158 \r
159   form formid = FORM_MAIN_ID,\r
160        title = STRING_TOKEN(STR_FORM_MAIN_TITLE);\r
161 \r
162     goto FORM_BOOT_SETUP_ID,\r
163          prompt = STRING_TOKEN(STR_FORM_BOOT_SETUP_TITLE),\r
164          help = STRING_TOKEN(STR_FORM_BOOT_SETUP_HELP),\r
165          flags = INTERACTIVE | NV_ACCESS,\r
166          key = FORM_BOOT_SETUP_ID;\r
167 \r
168     subtitle text = STRING_TOKEN(STR_NULL_STRING);\r
169 \r
170     goto FORM_DRIVER_SETUP_ID,\r
171          prompt = STRING_TOKEN(STR_FORM_DRIVER_SETUP_TITLE),\r
172          help = STRING_TOKEN(STR_FORM_DRIVER_SETUP_HELP),\r
173          flags = INTERACTIVE | NV_ACCESS,\r
174          key = FORM_DRIVER_SETUP_ID;\r
175 \r
176     subtitle text = STRING_TOKEN(STR_NULL_STRING);\r
177 \r
178     goto FORM_CON_MAIN_ID,\r
179          prompt = STRING_TOKEN(STR_FORM_CON_MAIN_TITLE),\r
180          help = STRING_TOKEN(STR_FORM_CON_MAIN_HELP),\r
181          flags = INTERACTIVE | NV_ACCESS,\r
182          key = FORM_CON_MAIN_ID;\r
183    \r
184     subtitle text = STRING_TOKEN(STR_NULL_STRING);\r
185 \r
186     text \r
187          help   = STRING_TOKEN(STR_BOOT_FROM_FILE_HELP),  \r
188          text   = STRING_TOKEN(STR_BOOT_FROM_FILE),\r
189          text   = STRING_TOKEN(STR_NULL_STRING),\r
190          flags  = INTERACTIVE | NV_ACCESS,\r
191          key    = KEY_VALUE_BOOT_FROM_FILE;\r
192 \r
193     subtitle text = STRING_TOKEN(STR_NULL_STRING);\r
194 \r
195 //    label FORM_MAIN_ID;\r
196 \r
197     goto FORM_BOOT_NEXT_ID,\r
198          prompt = STRING_TOKEN(STR_FORM_BOOT_NEXT_TITLE),\r
199          help = STRING_TOKEN(STR_FORM_BOOT_NEXT_HELP),\r
200          flags = INTERACTIVE | NV_ACCESS,\r
201          key = FORM_BOOT_NEXT_ID;            \r
202 \r
203     goto FORM_TIME_OUT_ID,\r
204          prompt = STRING_TOKEN(STR_FORM_TIME_OUT_TITLE),\r
205          help = STRING_TOKEN(STR_FORM_TIME_OUT_HELP),\r
206          flags = INTERACTIVE | NV_ACCESS,\r
207          key = FORM_TIME_OUT_ID;\r
208          \r
209     subtitle text = STRING_TOKEN(STR_NULL_STRING);\r
210 \r
211     goto FORM_MAIN_ID,\r
212          prompt = STRING_TOKEN(STR_RESET),\r
213          help = STRING_TOKEN(STR_RESET),\r
214          flags = INTERACTIVE | NV_ACCESS,\r
215          key = FORM_RESET;\r
216          \r
217   endform;       \r
218 \r
219   form formid = FORM_BOOT_SETUP_ID,\r
220        title = STRING_TOKEN(STR_FORM_BOOT_SETUP_TITLE);\r
221 \r
222        goto FORM_MAIN_ID,\r
223             prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
224             help = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
225             flags = INTERACTIVE | NV_ACCESS,\r
226             key = FORM_MAIN_ID;\r
227 \r
228        goto FORM_BOOT_ADD_ID,\r
229             prompt = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE),\r
230             help = STRING_TOKEN(STR_FORM_BOOT_ADD_HELP),\r
231             flags = INTERACTIVE | NV_ACCESS,\r
232             key = FORM_BOOT_ADD_ID;\r
233       \r
234        goto FORM_BOOT_DEL_ID,\r
235             prompt = STRING_TOKEN(STR_FORM_BOOT_DEL_TITLE),\r
236             help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),\r
237             flags = INTERACTIVE | NV_ACCESS,\r
238             key = FORM_BOOT_DEL_ID;\r
239        \r
240        goto FORM_BOOT_CHG_ID,\r
241             prompt = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE),\r
242             help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),\r
243             flags = INTERACTIVE | NV_ACCESS,\r
244             key = FORM_BOOT_CHG_ID;\r
245 \r
246        subtitle text = STRING_TOKEN(STR_NULL_STRING);\r
247        //\r
248            // We will add "Select Legacy Boot Floppy Drive" and "Select Legacy Boot Hard Drive" \r
249            // here dynamically\r
250            //\r
251        label FORM_BOOT_LEGACY_DEVICE_ID;\r
252 \r
253   endform;       \r
254 \r
255   form formid = FORM_DRIVER_SETUP_ID,\r
256        title = STRING_TOKEN(STR_FORM_DRIVER_SETUP_TITLE);\r
257 \r
258        goto FORM_MAIN_ID,\r
259             prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
260             help = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
261             flags = INTERACTIVE | NV_ACCESS,\r
262             key = FORM_MAIN_ID;\r
263 \r
264        goto FORM_DRV_ADD_ID,\r
265             prompt = STRING_TOKEN(STR_FORM_DRV_ADD_TITLE),\r
266             help = STRING_TOKEN(STR_FORM_DRV_ADD_HELP),\r
267             flags = INTERACTIVE | NV_ACCESS,\r
268             key = FORM_DRV_ADD_ID;\r
269      \r
270        goto FORM_DRV_DEL_ID,\r
271             prompt = STRING_TOKEN(STR_FORM_DRV_DEL_TITLE),\r
272             help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),\r
273             flags = INTERACTIVE | NV_ACCESS,\r
274             key = FORM_DRV_DEL_ID;\r
275        \r
276        goto FORM_DRV_CHG_ID,\r
277             prompt = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE),\r
278             help = STRING_TOKEN(STR_FORM_NEXT_BOOT_HELP),\r
279             flags = INTERACTIVE | NV_ACCESS,\r
280             key = FORM_DRV_CHG_ID;\r
281   endform;       \r
282 \r
283   form formid = FORM_BOOT_ADD_ID,\r
284        title = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE);\r
285 \r
286        label FORM_BOOT_ADD_ID;\r
287   endform;\r
288 \r
289   form formid = FORM_BOOT_DEL_ID,\r
290        title = STRING_TOKEN(STR_FORM_BOOT_DEL_TITLE);\r
291 \r
292        label FORM_BOOT_DEL_ID;\r
293   endform;\r
294 \r
295   form formid = FORM_BOOT_CHG_ID,\r
296        title = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE);\r
297 \r
298        label FORM_BOOT_CHG_ID;\r
299        \r
300        //\r
301        // This tag is added for bypassing issue of setup browser\r
302        // setup browser could not support dynamic form very well.\r
303        //\r
304        checkbox varid    = BMM_FAKE_NV_DATA.OptionOrder[0],\r
305            prompt   = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE),\r
306            help     = STRING_TOKEN(STR_FORM_BOOT_CHG_TITLE),  \r
307            flags    = 1,\r
308            key      = 0,\r
309        endcheckbox;\r
310       \r
311   endform;\r
312 \r
313   form formid = FORM_BOOT_NEXT_ID,\r
314        title = STRING_TOKEN(STR_FORM_BOOT_NEXT_TITLE);\r
315 \r
316        label FORM_BOOT_NEXT_ID;\r
317   endform;\r
318   \r
319   form formid = FORM_TIME_OUT_ID,\r
320        title = STRING_TOKEN(STR_FORM_TIME_OUT_TITLE);\r
321        \r
322        label FORM_TIME_OUT_ID;\r
323   endform;\r
324   \r
325   form formid = FORM_DRV_ADD_ID,\r
326        title = STRING_TOKEN(STR_FORM_DRV_ADD_TITLE);\r
327 \r
328        goto FORM_MAIN_ID,\r
329             prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
330             help = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
331             flags = INTERACTIVE | NV_ACCESS,\r
332             key = FORM_MAIN_ID;\r
333               \r
334        goto FORM_DRV_ADD_FILE_ID,\r
335             prompt = STRING_TOKEN(STR_FORM_DRV_ADD_FILE_TITLE),\r
336             help = STRING_TOKEN(STR_FORM_DRV_ADD_FILE_TITLE),\r
337             flags = INTERACTIVE | NV_ACCESS,\r
338             key = FORM_DRV_ADD_FILE_ID;\r
339 \r
340   endform;\r
341 \r
342   form formid = FORM_DRV_DEL_ID,\r
343        title = STRING_TOKEN(STR_FORM_DRV_DEL_TITLE);\r
344 \r
345        label FORM_DRV_DEL_ID;\r
346 \r
347   endform;\r
348 \r
349   form formid = FORM_DRV_CHG_ID,\r
350        title = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE);\r
351 \r
352        label FORM_DRV_CHG_ID;\r
353       \r
354        //\r
355        // This tag is added for bypassing issue of setup browser\r
356        // setup browser could not support dynamic form very well.\r
357        //\r
358        checkbox varid    = BMM_FAKE_NV_DATA.OptionOrder[0],\r
359            prompt   = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE),\r
360            help     = STRING_TOKEN(STR_FORM_DRV_CHG_TITLE),  \r
361            flags    = 1,\r
362            key      = 0,\r
363        endcheckbox;\r
364        \r
365   endform;\r
366 \r
367   form formid = FORM_CON_MAIN_ID,\r
368        title = STRING_TOKEN(STR_FORM_CON_MAIN_TITLE);\r
369 \r
370        goto FORM_MAIN_ID,\r
371        prompt = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
372        help = STRING_TOKEN(STR_FORM_GOTO_MAIN),\r
373        flags = INTERACTIVE | NV_ACCESS,\r
374        key = FORM_MAIN_ID;\r
375 \r
376        goto FORM_CON_IN_ID,\r
377        prompt = STRING_TOKEN(STR_FORM_CON_IN_TITLE),\r
378        help = STRING_TOKEN(STR_FORM_CON_IN_HELP),\r
379        flags = INTERACTIVE | NV_ACCESS,\r
380        key = FORM_CON_IN_ID;\r
381 \r
382        goto FORM_CON_OUT_ID,\r
383        prompt = STRING_TOKEN(STR_FORM_CON_OUT_TITLE),\r
384        help = STRING_TOKEN(STR_FORM_CON_OUT_HELP),\r
385        flags = INTERACTIVE | NV_ACCESS,\r
386        key = FORM_CON_OUT_ID;\r
387   \r
388        goto FORM_CON_ERR_ID,\r
389        prompt = STRING_TOKEN(STR_FORM_STD_ERR_TITLE),\r
390        help = STRING_TOKEN(STR_FORM_STD_ERR_HELP),\r
391        flags = INTERACTIVE | NV_ACCESS,\r
392        key = FORM_CON_ERR_ID;\r
393 \r
394        goto FORM_CON_COM_ID,\r
395        prompt = STRING_TOKEN(STR_FORM_COM_TITLE),\r
396        help = STRING_TOKEN(STR_FORM_COM_HELP),\r
397        flags = INTERACTIVE | NV_ACCESS,\r
398        key = FORM_CON_COM_ID;\r
399   endform;\r
400 \r
401   form formid = FORM_CON_COM_ID,\r
402        title = STRING_TOKEN(STR_FORM_COM_TITLE);\r
403 \r
404        label FORM_CON_COM_ID;\r
405   endform;\r
406 \r
407   form formid = FORM_CON_COM_SETUP_ID,\r
408        title = STRING_TOKEN(STR_CON_COM_SETUP);\r
409 \r
410        label FORM_CON_COM_SETUP_ID;\r
411   endform;\r
412 \r
413   form formid = FORM_FILE_SEEK_ID,\r
414        title = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE);\r
415 \r
416        label FORM_FILE_SEEK_ID;\r
417   endform;\r
418 \r
419   form formid = FORM_FILE_NEW_SEEK_ID,\r
420        title = STRING_TOKEN(STR_FORM_BOOT_ADD_TITLE);\r
421 \r
422        label FORM_FILE_NEW_SEEK_ID;\r
423   endform;\r
424 \r
425   form formid = FORM_DRV_ADD_FILE_ID,\r
426        title = STRING_TOKEN(STR_FORM_DRV_ADD_FILE_TITLE);\r
427 \r
428        label FORM_DRV_ADD_FILE_ID;\r
429   endform;\r
430 \r
431   form formid = FORM_DRV_ADD_HANDLE_ID,\r
432        title = STRING_TOKEN(STR_FORM_DRV_ADD_HANDLE_TITLE);\r
433 \r
434        label FORM_DRV_ADD_HANDLE_ID;\r
435   endform;     \r
436 \r
437   form formid = FORM_DRV_ADD_HANDLE_DESC_ID,\r
438        title = STRING_TOKEN(STR_FORM_DRV_ADD_DESC_TITLE);\r
439 \r
440        label FORM_DRV_ADD_HANDLE_DESC_ID;\r
441 \r
442   endform;\r
443 \r
444   form formid = FORM_CON_IN_ID,\r
445        title = STRING_TOKEN(STR_FORM_CON_IN_TITLE);\r
446 \r
447        label FORM_CON_IN_ID;\r
448 \r
449   endform;\r
450 \r
451   form formid = FORM_CON_OUT_ID,\r
452        title = STRING_TOKEN(STR_FORM_CON_OUT_TITLE);\r
453 \r
454        label FORM_CON_OUT_ID;\r
455 \r
456   endform;\r
457 \r
458   form formid = FORM_CON_ERR_ID,\r
459        title = STRING_TOKEN(STR_FORM_STD_ERR_TITLE);\r
460 \r
461        label FORM_CON_ERR_ID;\r
462 \r
463   endform;\r
464 \r
465   form formid = FORM_SET_FD_ORDER_ID,\r
466        title = STRING_TOKEN(STR_FORM_SET_FD_ORDER_TITLE);\r
467 \r
468        label FORM_SET_FD_ORDER_ID;\r
469   endform;\r
470   \r
471   form formid = FORM_SET_HD_ORDER_ID,\r
472        title = STRING_TOKEN(STR_FORM_SET_HD_ORDER_TITLE);\r
473 \r
474        label FORM_SET_HD_ORDER_ID;\r
475   endform;\r
476 \r
477   form formid = FORM_SET_CD_ORDER_ID,\r
478        title = STRING_TOKEN(STR_FORM_SET_CD_ORDER_TITLE);\r
479 \r
480        label FORM_SET_CD_ORDER_ID;\r
481   endform;\r
482 \r
483   form formid = FORM_SET_NET_ORDER_ID,\r
484        title = STRING_TOKEN(STR_FORM_SET_NET_ORDER_TITLE);\r
485 \r
486        label FORM_SET_NET_ORDER_ID;\r
487   endform;\r
488 \r
489   form formid = FORM_SET_BEV_ORDER_ID,\r
490        title = STRING_TOKEN(STR_FORM_SET_BEV_ORDER_TITLE);\r
491 \r
492        label FORM_SET_BEV_ORDER_ID;\r
493   endform;\r
494 \r
495 endformset;\r