]> git.proxmox.com Git - mirror_edk2.git/blob - SecurityPkg/Tcg/Opal/OpalPasswordDxe/OpalPasswordForm.vfr
SecurityPkg OpalPassword: Add solution without SMM device code
[mirror_edk2.git] / SecurityPkg / Tcg / Opal / OpalPasswordDxe / OpalPasswordForm.vfr
1 /** @file
2
3 Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 **/
13 #include "OpalHiiFormValues.h"
14
15
16 #define EFI_HII_PLATFORM_SETUP_FORMSET_GUID \
17 { 0x93039971, 0x8545, 0x4b04, { 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x4, 0xe } }
18
19 formset
20 guid = SETUP_FORMSET_GUID,
21 title = STRING_TOKEN(STR_OPAL),
22 help = STRING_TOKEN(STR_FORM_SET_HELP),
23 classguid = EFI_HII_PLATFORM_SETUP_FORMSET_GUID,
24
25 // Define a Buffer Storage (EFI_IFR_VARSTORE) that will be filled
26 // out initially through extractConfig call
27 varstore OPAL_HII_CONFIGURATION, // This is the Data structure type
28 name = OpalHiiConfig, // Define referenced name in vfr
29 guid = SETUP_VARIABLE_GUID; // GUID of this Buffer storage
30
31 form formid = FORMID_VALUE_MAIN_MENU,
32 title = STRING_TOKEN(STR_OPAL);
33
34 //CONFIG_VARIABLE(HII_KEY(HII_KEY_ID_VAR_SUPPORTED_DISKS), SupportedDisks, 0x0, 0xFFFF);
35 suppressif TRUE;
36 numeric
37 name = SupportedDisks,
38 varid = OpalHiiConfig.SupportedDisks,
39 prompt = STRING_TOKEN(STR_NULL),
40 help = STRING_TOKEN(STR_NULL),
41 flags = INTERACTIVE,
42 key = 0x800E, //32782,
43 minimum = 0x0,
44 maximum = 0xFFFF,
45 endnumeric;
46 endif;
47
48 subtitle text = STRING_TOKEN(STR_MAIN_OPAL_VERSION);
49
50 subtitle text = STRING_TOKEN(STR_NULL);
51
52 text
53 help = STRING_TOKEN(STR_NULL),
54 text = STRING_TOKEN(STR_MAIN_PHY_DISKS_LBL);
55
56 subtitle text = STRING_TOKEN(STR_NULL);
57
58 //DISK( 0 );
59 suppressif ( questionref(SupportedDisks) & ( 0x1 ) ) == 0;
60 goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
61 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_0 ),
62 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
63 flags = INTERACTIVE, \
64 key = 0x8001; //32769
65 endif;
66
67 //DISK( 1 );
68 suppressif ( questionref(SupportedDisks) & ( 0x2 ) ) == 0;
69 goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
70 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_1 ),
71 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
72 flags = INTERACTIVE, \
73 key = 0x8101; //33025
74 endif;
75
76 //DISK( 2 );
77 suppressif ( questionref(SupportedDisks) & ( 0x4 ) ) == 0;
78 goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
79 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_2 ),
80 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
81 flags = INTERACTIVE, \
82 key = 0x8201; //33281
83 endif;
84
85 //DISK( 3 );
86 suppressif ( questionref(SupportedDisks) & ( 0x8 ) ) == 0;
87 goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
88 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_3 ),
89 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
90 flags = INTERACTIVE, \
91 key = 0x8301; // 33537
92 endif;
93
94 //DISK( 4 );
95 suppressif ( questionref(SupportedDisks) & ( 0x10 ) ) == 0;
96 goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
97 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_4 ),
98 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
99 flags = INTERACTIVE, \
100 key = 0x8401; // 33793
101 endif;
102
103 //DISK( 5 );
104 suppressif ( questionref(SupportedDisks) & ( 0x20 ) ) == 0;
105 goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
106 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_5 ),
107 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
108 flags = INTERACTIVE, \
109 key = 0x8501; // 34049
110 endif;
111
112 //No disks on system
113 suppressif ideqval OpalHiiConfig.NumDisks > 0;
114 text
115 help = STRING_TOKEN(STR_NULL),
116 text = STRING_TOKEN(STR_MAIN_NO_DISKS_PRESENT_LBL);
117 endif;
118
119 subtitle text = STRING_TOKEN(STR_NULL);
120
121 grayoutif TRUE;
122 text
123 help = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP),
124 text = STRING_TOKEN(STR_BLOCKSID_STATUS);
125 text
126 help = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP),
127 text = STRING_TOKEN(STR_BLOCKSID_STATUS1);
128 text
129 help = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP),
130 text = STRING_TOKEN(STR_BLOCKSID_STATUS2);
131 text
132 help = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP),
133 text = STRING_TOKEN(STR_BLOCKSID_STATUS3);
134 subtitle text = STRING_TOKEN(STR_NULL);
135 endif;
136
137 oneof varid = OpalHiiConfig.EnableBlockSid,
138 questionid = 0x8017, // 32791,
139 prompt = STRING_TOKEN(STR_DISK_INFO_ENABLE_BLOCKSID),
140 help = STRING_TOKEN(STR_DISK_INFO_GOTO_ENABLE_BLOCKSID_HELP),
141 flags = INTERACTIVE,
142 option text = STRING_TOKEN(STR_NONE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
143 option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;
144 option text = STRING_TOKEN(STR_DISABLED), value = 2, flags = RESET_REQUIRED;
145 option text = STRING_TOKEN(STR_DISK_INFO_ENABLE_BLOCKSID_TRUE), value = 3, flags = RESET_REQUIRED;
146 option text = STRING_TOKEN(STR_DISK_INFO_ENABLE_BLOCKSID_FALSE), value = 4, flags = RESET_REQUIRED;
147 option text = STRING_TOKEN(STR_DISK_INFO_DISABLE_BLOCKSID_TRUE), value = 5, flags = RESET_REQUIRED;
148 option text = STRING_TOKEN(STR_DISK_INFO_DISABLE_BLOCKSID_FALSE), value = 6, flags = RESET_REQUIRED;
149 endoneof;
150
151
152
153 endform; // MAIN MENU FORM
154
155 //
156 ///////////////// DISK INFO FORM /////////////////
157 //
158 form formid = FORMID_VALUE_DISK_INFO_FORM_MAIN,
159 title = STRING_TOKEN(STR_OPAL);
160
161 suppressif TRUE;
162 numeric
163 name = SelectedDiskAvailableActions,
164 varid = OpalHiiConfig.SelectedDiskAvailableActions,
165 prompt = STRING_TOKEN(STR_NULL),
166 help = STRING_TOKEN(STR_NULL),
167 flags = INTERACTIVE,
168 key = 0x800F, // 32783
169 minimum = 0x0,
170 maximum = 0xFFFF,
171 endnumeric;
172 endif;
173
174 subtitle text = STRING_TOKEN(STR_MAIN_OPAL_VERSION);
175
176 subtitle text = STRING_TOKEN(STR_NULL);
177
178 text
179 help = STRING_TOKEN(STR_NULL),
180 text = STRING_TOKEN(STR_DISK_INFO_SELECTED_DISK_NAME);
181
182 subtitle text = STRING_TOKEN(STR_NULL);
183
184 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_LOCK ) == 0;
185 goto FORMID_VALUE_DISK_ACTION_FORM,
186 prompt = STRING_TOKEN(STR_DISK_INFO_LOCK),
187 help = STRING_TOKEN(STR_DISK_INFO_GOTO_LOCK_HELP),
188 flags = INTERACTIVE,
189 key = 0x8002; // 32770
190 endif;
191
192 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_UNLOCK ) == 0;
193 goto FORMID_VALUE_DISK_ACTION_FORM,
194 prompt = STRING_TOKEN(STR_DISK_INFO_UNLOCK),
195 help = STRING_TOKEN(STR_DISK_INFO_GOTO_UNLOCK_HELP),
196 flags = INTERACTIVE,
197 key = 0x8003; //32771;
198 endif;
199
200 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_SET_ADMIN_PWD ) == 0;
201 goto FORMID_VALUE_DISK_ACTION_FORM,
202 prompt = STRING_TOKEN(STR_DISK_INFO_SET_ADMIN_PSWD),
203 help = STRING_TOKEN(STR_DISK_INFO_GOTO_SET_ADMIN_PSWD_HELP),
204 flags = INTERACTIVE,
205 key = 0x8004; //32772;
206 endif;
207
208 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_SET_USER_PWD ) == 0;
209 goto FORMID_VALUE_DISK_ACTION_FORM,
210 prompt = STRING_TOKEN(STR_DISK_INFO_SET_USER_PSWD),
211 help = STRING_TOKEN(STR_DISK_INFO_GOTO_SET_USER_PSWD_HELP),
212 flags = INTERACTIVE,
213 key = 0x8005; //32773;
214 endif;
215
216 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_SECURE_ERASE ) == 0;
217 goto FORMID_VALUE_DISK_ACTION_FORM,
218 prompt = STRING_TOKEN(STR_DISK_INFO_SECURE_ERASE),
219 help = STRING_TOKEN(STR_DISK_INFO_GOTO_SECURE_ERASE_HELP),
220 flags = INTERACTIVE,
221 key = 0x8006; //32774;
222 endif;
223
224 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_REVERT ) == 0;
225 goto FORMID_VALUE_DISK_ACTION_FORM,
226 prompt = STRING_TOKEN(STR_DISK_INFO_REVERT),
227 help = STRING_TOKEN(STR_DISK_INFO_GOTO_PSID_REVERT_HELP),
228 flags = INTERACTIVE,
229 key = 0x8008; //32776;
230 endif;
231
232 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_PSID_REVERT ) == 0;
233 goto FORMID_VALUE_DISK_ACTION_FORM,
234 prompt = STRING_TOKEN(STR_DISK_INFO_PSID_REVERT),
235 help = STRING_TOKEN(STR_DISK_INFO_GOTO_PSID_REVERT_HELP),
236 flags = INTERACTIVE,
237 key = 0x8007; //32775;
238 endif;
239
240 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_DISABLE_USER ) == 0;
241 goto FORMID_VALUE_DISK_ACTION_FORM,
242 prompt = STRING_TOKEN(STR_DISK_INFO_DISABLE_USER),
243 help = STRING_TOKEN(STR_DISK_INFO_GOTO_DISABLE_USER_HELP),
244 flags = INTERACTIVE,
245 key = 0x8009; //32777;
246 endif;
247
248 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_ENABLE_FEATURE ) == 0;
249 goto FORMID_VALUE_DISK_ACTION_FORM,
250 prompt = STRING_TOKEN(STR_DISK_INFO_ENABLE_FEATURE),
251 help = STRING_TOKEN(STR_DISK_INFO_GOTO_ENABLE_FEATURE_HELP),
252 flags = INTERACTIVE,
253 key = 0x800A; //32778;
254 endif;
255
256 endform; // DISK INFO FORM
257
258 //
259 ///////////////// DISK ACTION FORM /////////////////
260 //
261 form formid = FORMID_VALUE_DISK_ACTION_FORM,
262 title = STRING_TOKEN(STR_OPAL);
263
264 suppressif TRUE;
265 numeric
266 name = AvailableFields,
267 varid = OpalHiiConfig.AvailableFields,
268 prompt = STRING_TOKEN(STR_NULL),
269 help = STRING_TOKEN(STR_NULL),
270 flags = INTERACTIVE,
271 key = 0x8012, //32786,
272 minimum = 0x0,
273 maximum = 0xFFFF,
274 endnumeric;
275 endif;
276
277 subtitle text = STRING_TOKEN(STR_MAIN_OPAL_VERSION);
278
279 subtitle text = STRING_TOKEN(STR_NULL);
280
281 text
282 help = STRING_TOKEN(STR_NULL),
283 text = STRING_TOKEN(STR_DISK_INFO_SELECTED_DISK_NAME);
284
285 subtitle text = STRING_TOKEN(STR_NULL);
286
287 text
288 help = STRING_TOKEN(STR_NULL),
289 text = STRING_TOKEN(STR_DISK_ACTION_LBL);
290
291 subtitle text = STRING_TOKEN(STR_NULL);
292
293 suppressif (questionref(AvailableFields) & HII_FIELD_KEEP_USER_DATA) == 0;
294 grayoutif (questionref(AvailableFields) & HII_FIELD_KEEP_USER_DATA_FORCED) != 0;
295 checkbox
296 name = MyCheckbox,
297 varid = OpalHiiConfig.KeepUserData,
298 prompt = STRING_TOKEN(STR_KEEP_USER_DATA_PROMPT),
299 help = STRING_TOKEN(STR_KEEP_USER_DATA_HELP),
300 key = 0x8011, //32785,
301 endcheckbox;
302
303 //EMPTY_LINE;
304 text
305 help = STRING_TOKEN(STR_NULL),
306 text = STRING_TOKEN(STR_NULL);
307 endif;
308 endif;
309
310 suppressif (questionref(AvailableFields) & HII_FIELD_PASSWORD) == 0;
311 password
312 varid = OpalHiiConfig.Password,
313 prompt = STRING_TOKEN(STR_PASSWORD_PROMPT),
314 help = STRING_TOKEN(STR_PASSWORD_HELP),
315 flags = INTERACTIVE,
316 key = 0x800C, //32780,
317 minsize = 6,
318 maxsize = 20,
319 endpassword;
320 endif;
321
322 suppressif (questionref(AvailableFields) & HII_FIELD_PSID) == 0;
323 string
324 varid = OpalHiiConfig.Psid,
325 prompt = STRING_TOKEN(STR_REVERT_PROMPT),
326 help = STRING_TOKEN(STR_REVERT_HELP),
327 flags = INTERACTIVE,
328 key = 0x800D, //32781,
329 minsize = PSID_CHARACTER_LENGTH,
330 maxsize = PSID_CHARACTER_LENGTH,
331 endstring;
332 endif;
333
334 subtitle text = STRING_TOKEN(STR_NULL);
335
336 text
337 help = STRING_TOKEN(STR_NULL),
338 text = STRING_TOKEN(STR_ACTION_STATUS);
339
340 subtitle text = STRING_TOKEN(STR_NULL);
341
342 goto FORMID_VALUE_MAIN_MENU,
343 prompt = STRING_TOKEN(STR_GOTO_HOME),
344 help = STRING_TOKEN(STR_GOTO_HOME_HELP),
345 flags = INTERACTIVE,
346 key = 0x8000; //32768;
347
348 endform; // DISK ACTION FORM
349
350 endformset;