1 /** @file
2   Defines Opal HII form ids, structures and values.
3 
4 Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6 
7 **/
8 
9 
10 #ifndef _OPAL_HII_FORM_VALUES_H_
11 #define _OPAL_HII_FORM_VALUES_H_
12 
13 // ID's for various forms that will be used by HII
14 #define FORMID_VALUE_MAIN_MENU                             0x01
15 #define FORMID_VALUE_DISK_INFO_FORM_MAIN                   0x02
16 
17 #pragma pack(1)
18 typedef struct {
19   UINT16    Lock:1;
20   UINT16    Unlock:1;
21   UINT16    SetAdminPwd:1;
22   UINT16    SetUserPwd:1;
23   UINT16    SecureErase:1;
24   UINT16    Revert:1;
25   UINT16    PsidRevert:1;
26   UINT16    DisableUser:1;
27   UINT16    DisableFeature:1;
28   UINT16    EnableFeature:1;
29   UINT16    Reserved:5;
30   UINT16    KeepUserData:1;
31 } OPAL_REQUEST;
32 
33 typedef struct {
34   UINT8           NumDisks;
35   UINT8           SelectedDiskIndex;
36   UINT16          SelectedDiskAvailableActions;
37   UINT16          SupportedDisks;
38   BOOLEAN         KeepUserDataForced;
39   OPAL_REQUEST    OpalRequest;
40   UINT8           EnableBlockSid;
41 } OPAL_HII_CONFIGURATION;
42 
43 #pragma pack()
44 
45 /* Action Flags */
46 #define HII_ACTION_NONE                                        0x0000
47 #define HII_ACTION_LOCK                                        0x0001
48 #define HII_ACTION_UNLOCK                                      0x0002
49 #define HII_ACTION_SET_ADMIN_PWD                               0x0004
50 #define HII_ACTION_SET_USER_PWD                                0x0008
51 #define HII_ACTION_SECURE_ERASE                                0x0010
52 #define HII_ACTION_REVERT                                      0x0020
53 #define HII_ACTION_PSID_REVERT                                 0x0040
54 #define HII_ACTION_DISABLE_USER                                0x0080
55 #define HII_ACTION_DISABLE_FEATURE                             0x0100
56 #define HII_ACTION_ENABLE_FEATURE                              0x0200
57 
58 /* Number of bits allocated for each part of a unique key for an HII_ITEM
59  * all bits together must be <= 16 (EFI_QUESTION_ID is UINT16)
60  * 1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
61  * |   |-----------------------|   |---------------------------|
62  * FLG INDEX                       ID
63  */
64 #define HII_KEY_ID_BITS                                     8
65 #define HII_KEY_INDEX_BITS                                  7
66 #define HII_KEY_FLAG_BITS                                   1
67 
68 #define HII_KEY_FLAG                                        0x8000 // bit 15 (zero based)
69 
70 /***********/
71 /* Key IDs */
72 /***********/
73 
74 #define HII_KEY_ID_GOTO_DISK_INFO                       1
75 
76 #define HII_KEY_ID_VAR_SUPPORTED_DISKS                  2
77 #define HII_KEY_ID_VAR_SELECTED_DISK_AVAILABLE_ACTIONS  3
78 
79 #define HII_KEY_ID_BLOCKSID                             4
80 #define HII_KEY_ID_SET_ADMIN_PWD                        5
81 #define HII_KEY_ID_SET_USER_PWD                         6
82 #define HII_KEY_ID_SECURE_ERASE                         7
83 #define HII_KEY_ID_REVERT                               8
84 #define HII_KEY_ID_KEEP_USER_DATA                       9
85 #define HII_KEY_ID_PSID_REVERT                          0xA
86 #define HII_KEY_ID_DISABLE_USER                         0xB
87 #define HII_KEY_ID_ENABLE_FEATURE                       0xC
88 
89 #define HII_KEY_ID_MAX                                  0xC // !!Update each time a new ID is added!!
90 
91 #define HII_KEY_WITH_INDEX(id, index) \
92     ( \
93         HII_KEY_FLAG | \
94         (id) | \
95         ((index) << HII_KEY_ID_BITS) \
96     )
97 
98 #define HII_KEY(id) HII_KEY_WITH_INDEX(id, 0)
99 
100 #define PACKAGE_LIST_GUID { 0xf0308176, 0x9058, 0x4153, { 0x93, 0x3d, 0xda, 0x2f, 0xdc, 0xc8, 0x3e, 0x44 } }
101 
102 /* {410483CF-F4F9-4ece-848A-1958FD31CEB7} */
103 #define SETUP_FORMSET_GUID { 0x410483cf, 0xf4f9, 0x4ece, { 0x84, 0x8a, 0x19, 0x58, 0xfd, 0x31, 0xce, 0xb7 } }
104 
105 // {BBF1ACD2-28D8-44ea-A291-58A237FEDF1A}
106 #define SETUP_VARIABLE_GUID { 0xbbf1acd2, 0x28d8, 0x44ea, { 0xa2, 0x91, 0x58, 0xa2, 0x37, 0xfe, 0xdf, 0x1a } }
107 
108 #endif //_HII_FORM_VALUES_H_
109 
110