]> git.proxmox.com Git - mirror_edk2.git/blob - SecurityPkg/Tcg/Opal/OpalPassword/OpalPasswordForm.vfr
SecurityPkg OpalPassword: Add solution without SMM device code
[mirror_edk2.git] / SecurityPkg / Tcg / Opal / OpalPassword / OpalPasswordForm.vfr
1 /** @file
2
3 Copyright (c) 2016 - 2018, 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 = 0x8002,
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 subtitle text = STRING_TOKEN(STR_MAIN_PHY_DISKS_LBL);
53
54 //DISK( 0 );
55 suppressif ( questionref(SupportedDisks) & ( 0x1 ) ) == 0;
56 goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
57 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_0 ),
58 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
59 flags = INTERACTIVE,
60 key = 0x8001;
61 endif;
62
63 //DISK( 1 );
64 suppressif ( questionref(SupportedDisks) & ( 0x2 ) ) == 0;
65 goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
66 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_1 ),
67 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
68 flags = INTERACTIVE,
69 key = 0x8101;
70 endif;
71
72 //DISK( 2 );
73 suppressif ( questionref(SupportedDisks) & ( 0x4 ) ) == 0;
74 goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
75 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_2 ),
76 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
77 flags = INTERACTIVE,
78 key = 0x8201;
79 endif;
80
81 //DISK( 3 );
82 suppressif ( questionref(SupportedDisks) & ( 0x8 ) ) == 0;
83 goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
84 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_3 ),
85 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
86 flags = INTERACTIVE,
87 key = 0x8301;
88 endif;
89
90 //DISK( 4 );
91 suppressif ( questionref(SupportedDisks) & ( 0x10 ) ) == 0;
92 goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
93 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_4 ),
94 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
95 flags = INTERACTIVE,
96 key = 0x8401;
97 endif;
98
99 //DISK( 5 );
100 suppressif ( questionref(SupportedDisks) & ( 0x20 ) ) == 0;
101 goto FORMID_VALUE_DISK_INFO_FORM_MAIN,
102 prompt = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_5 ),
103 help = STRING_TOKEN(STR_MAIN_GOTO_DISK_INFO_HELP),
104 flags = INTERACTIVE,
105 key = 0x8501;
106 endif;
107
108 //No disks on system
109 suppressif ideqval OpalHiiConfig.NumDisks > 0;
110 text
111 help = STRING_TOKEN(STR_MAIN_NO_DISKS_PRESENT_LBL_HELP),
112 text = STRING_TOKEN(STR_MAIN_NO_DISKS_PRESENT_LBL);
113 endif;
114
115 subtitle text = STRING_TOKEN(STR_NULL);
116
117 grayoutif TRUE;
118 text
119 help = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP),
120 text = STRING_TOKEN(STR_BLOCKSID_STATUS);
121 text
122 help = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP),
123 text = STRING_TOKEN(STR_BLOCKSID_STATUS1);
124 text
125 help = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP),
126 text = STRING_TOKEN(STR_BLOCKSID_STATUS2);
127 text
128 help = STRING_TOKEN(STR_BLOCKSID_STATUS_HELP),
129 text = STRING_TOKEN(STR_BLOCKSID_STATUS3);
130 subtitle text = STRING_TOKEN(STR_NULL);
131 endif;
132
133 oneof varid = OpalHiiConfig.EnableBlockSid,
134 questionid = 0x8004,
135 prompt = STRING_TOKEN(STR_DISK_INFO_ENABLE_BLOCKSID),
136 help = STRING_TOKEN(STR_DISK_INFO_ENABLE_BLOCKSID_HELP),
137 flags = INTERACTIVE,
138 option text = STRING_TOKEN(STR_NONE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED;
139 option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED;
140 option text = STRING_TOKEN(STR_DISABLED), value = 2, flags = RESET_REQUIRED;
141 option text = STRING_TOKEN(STR_DISK_INFO_ENABLE_BLOCKSID_TRUE), value = 3, flags = RESET_REQUIRED;
142 option text = STRING_TOKEN(STR_DISK_INFO_ENABLE_BLOCKSID_FALSE), value = 4, flags = RESET_REQUIRED;
143 option text = STRING_TOKEN(STR_DISK_INFO_DISABLE_BLOCKSID_TRUE), value = 5, flags = RESET_REQUIRED;
144 option text = STRING_TOKEN(STR_DISK_INFO_DISABLE_BLOCKSID_FALSE), value = 6, flags = RESET_REQUIRED;
145 endoneof;
146
147
148
149 endform; // MAIN MENU FORM
150
151 //
152 ///////////////// DISK INFO FORM /////////////////
153 //
154 form formid = FORMID_VALUE_DISK_INFO_FORM_MAIN,
155 title = STRING_TOKEN(STR_OPAL);
156
157 suppressif TRUE;
158 numeric
159 name = SelectedDiskAvailableActions,
160 varid = OpalHiiConfig.SelectedDiskAvailableActions,
161 prompt = STRING_TOKEN(STR_NULL),
162 help = STRING_TOKEN(STR_NULL),
163 flags = INTERACTIVE,
164 key = 0x8003,
165 minimum = 0x0,
166 maximum = 0xFFFF,
167 endnumeric;
168 endif;
169
170 suppressif TRUE;
171 checkbox varid = OpalHiiConfig.KeepUserDataForced,
172 prompt = STRING_TOKEN(STR_NULL),
173 help = STRING_TOKEN(STR_NULL),
174 endcheckbox;
175 endif;
176
177 subtitle text = STRING_TOKEN(STR_MAIN_OPAL_VERSION);
178
179 subtitle text = STRING_TOKEN(STR_NULL);
180
181 text
182 help = STRING_TOKEN(STR_NULL),
183 text = STRING_TOKEN(STR_DISK_INFO_SELECTED_DISK_NAME);
184
185 subtitle text = STRING_TOKEN(STR_NULL);
186
187 subtitle text = STRING_TOKEN(STR_OPAL_REQUESTS_LBL);
188
189 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_SET_ADMIN_PWD ) == 0;
190 grayoutif ideqval OpalHiiConfig.OpalRequest.Revert == 1;
191 grayoutif ideqval OpalHiiConfig.OpalRequest.PsidRevert == 1;
192 checkbox varid = OpalHiiConfig.OpalRequest.SetAdminPwd,
193 prompt = STRING_TOKEN(STR_DISK_INFO_SET_ADMIN_PSWD),
194 help = STRING_TOKEN(STR_DISK_INFO_SET_ADMIN_PSWD_HELP),
195 flags = INTERACTIVE | RESET_REQUIRED,
196 key = 0x8005,
197 endcheckbox;
198 endif;
199 endif;
200 endif;
201
202 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_SET_USER_PWD ) == 0;
203 grayoutif ideqval OpalHiiConfig.OpalRequest.DisableUser == 1;
204 grayoutif ideqval OpalHiiConfig.OpalRequest.Revert == 1;
205 grayoutif ideqval OpalHiiConfig.OpalRequest.PsidRevert == 1;
206 checkbox varid = OpalHiiConfig.OpalRequest.SetUserPwd,
207 prompt = STRING_TOKEN(STR_DISK_INFO_SET_USER_PSWD),
208 help = STRING_TOKEN(STR_DISK_INFO_SET_USER_PSWD_HELP),
209 flags = INTERACTIVE | RESET_REQUIRED,
210 key = 0x8006,
211 endcheckbox;
212 endif;
213 endif;
214 endif;
215 endif;
216
217 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_SECURE_ERASE ) == 0;
218 grayoutif ideqval OpalHiiConfig.OpalRequest.Revert == 1;
219 grayoutif ideqval OpalHiiConfig.OpalRequest.PsidRevert == 1;
220 checkbox varid = OpalHiiConfig.OpalRequest.SecureErase,
221 prompt = STRING_TOKEN(STR_DISK_INFO_SECURE_ERASE),
222 help = STRING_TOKEN(STR_DISK_INFO_SECURE_ERASE_HELP),
223 flags = INTERACTIVE | RESET_REQUIRED,
224 key = 0x8007,
225 endcheckbox;
226 endif;
227 endif;
228 endif;
229
230 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_REVERT ) == 0;
231 grayoutif ideqval OpalHiiConfig.OpalRequest.SetAdminPwd == 1;
232 grayoutif ideqval OpalHiiConfig.OpalRequest.SetUserPwd == 1;
233 grayoutif ideqval OpalHiiConfig.OpalRequest.SecureErase == 1;
234 grayoutif ideqval OpalHiiConfig.OpalRequest.DisableUser == 1;
235 grayoutif ideqval OpalHiiConfig.OpalRequest.PsidRevert == 1;
236 checkbox varid = OpalHiiConfig.OpalRequest.Revert,
237 prompt = STRING_TOKEN(STR_DISK_INFO_REVERT),
238 help = STRING_TOKEN(STR_DISK_INFO_REVERT_HELP),
239 flags = INTERACTIVE | RESET_REQUIRED,
240 key = 0x8008,
241 endcheckbox;
242 endif;
243 endif;
244 endif;
245 endif;
246 endif;
247 endif;
248
249 suppressif ideqval OpalHiiConfig.OpalRequest.Revert == 0;
250 grayoutif ideqval OpalHiiConfig.KeepUserDataForced == 1;
251 checkbox varid = OpalHiiConfig.OpalRequest.KeepUserData,
252 prompt = STRING_TOKEN(STR_KEEP_USER_DATA_PROMPT),
253 help = STRING_TOKEN(STR_KEEP_USER_DATA_HELP),
254 flags = INTERACTIVE | RESET_REQUIRED,
255 key = 0x8009,
256 endcheckbox;
257 endif;
258 endif;
259
260 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_PSID_REVERT ) == 0;
261 grayoutif ideqval OpalHiiConfig.OpalRequest.SetAdminPwd == 1;
262 grayoutif ideqval OpalHiiConfig.OpalRequest.SetUserPwd == 1;
263 grayoutif ideqval OpalHiiConfig.OpalRequest.SecureErase == 1;
264 grayoutif ideqval OpalHiiConfig.OpalRequest.DisableUser == 1;
265 grayoutif ideqval OpalHiiConfig.OpalRequest.EnableFeature == 1;
266 grayoutif ideqval OpalHiiConfig.OpalRequest.Revert == 1;
267 checkbox varid = OpalHiiConfig.OpalRequest.PsidRevert,
268 prompt = STRING_TOKEN(STR_DISK_INFO_PSID_REVERT),
269 help = STRING_TOKEN(STR_DISK_INFO_PSID_REVERT_HELP),
270 flags = INTERACTIVE | RESET_REQUIRED,
271 key = 0x800A,
272 endcheckbox;
273 endif;
274 endif;
275 endif;
276 endif;
277 endif;
278 endif;
279 endif;
280
281 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_DISABLE_USER ) == 0;
282 grayoutif ideqval OpalHiiConfig.OpalRequest.SetUserPwd == 1;
283 grayoutif ideqval OpalHiiConfig.OpalRequest.Revert == 1;
284 grayoutif ideqval OpalHiiConfig.OpalRequest.PsidRevert == 1;
285 checkbox varid = OpalHiiConfig.OpalRequest.DisableUser,
286 prompt = STRING_TOKEN(STR_DISK_INFO_DISABLE_USER),
287 help = STRING_TOKEN(STR_DISK_INFO_DISABLE_USER_HELP),
288 flags = INTERACTIVE | RESET_REQUIRED,
289 key = 0x800B,
290 endcheckbox;
291 endif;
292 endif;
293 endif;
294 endif;
295
296 suppressif ( questionref(SelectedDiskAvailableActions) & HII_ACTION_ENABLE_FEATURE ) == 0;
297 grayoutif ideqval OpalHiiConfig.OpalRequest.PsidRevert == 1;
298 checkbox varid = OpalHiiConfig.OpalRequest.EnableFeature,
299 prompt = STRING_TOKEN(STR_DISK_INFO_ENABLE_FEATURE),
300 help = STRING_TOKEN(STR_DISK_INFO_ENABLE_FEATURE_HELP),
301 flags = INTERACTIVE | RESET_REQUIRED,
302 key = 0x800C,
303 endcheckbox;
304 endif;
305 endif;
306
307 endform; // DISK INFO FORM
308
309 endformset;