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