]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/TcgStorageOpal.h
MdePkg: UefiTcgPlatform.h: Add TCG_PCR_EVENT2_HDR definition
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / TcgStorageOpal.h
CommitLineData
79af8319
ED
1/** @file\r
2 Opal Specification defined values and structures.\r
3\r
4Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
5This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
15#ifndef _TCG_STORAGE_OPAL_H_\r
16#define _TCG_STORAGE_OPAL_H_\r
17\r
18#include <IndustryStandard/TcgStorageCore.h>\r
19\r
20#define OPAL_UID_ADMIN_SP TCG_TO_UID(0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x01)\r
21#define OPAL_UID_ADMIN_SP_C_PIN_MSID TCG_TO_UID(0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x84, 0x02)\r
22#define OPAL_UID_ADMIN_SP_C_PIN_SID TCG_TO_UID(0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01)\r
23#define OPAL_UID_LOCKING_SP TCG_TO_UID(0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x02)\r
24\r
25// ADMIN_SP\r
26// Authorities\r
27#define OPAL_ADMIN_SP_ANYBODY_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01)\r
28#define OPAL_ADMIN_SP_ADMINS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02)\r
29#define OPAL_ADMIN_SP_MAKERS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03)\r
30#define OPAL_ADMIN_SP_SID_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06)\r
31#define OPAL_ADMIN_SP_ADMIN1_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x02, 0x01)\r
32#define OPAL_ADMIN_SP_PSID_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0xFF, 0x01)\r
33\r
34#define OPAL_ADMIN_SP_ACTIVATE_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x03)\r
35#define OPAL_ADMIN_SP_REVERT_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x02)\r
36\r
37\r
38// LOCKING SP\r
39// Authorities\r
40#define OPAL_LOCKING_SP_ANYBODY_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01)\r
41#define OPAL_LOCKING_SP_ADMINS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02)\r
42#define OPAL_LOCKING_SP_ADMIN1_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x01)\r
43#define OPAL_LOCKING_SP_USERS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00, 0x00)\r
44#define OPAL_LOCKING_SP_USER1_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00, 0x01)\r
45\r
46#define OPAL_LOCKING_SP_REVERTSP_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11)\r
47\r
48// C_PIN Table Rows\r
49#define OPAL_LOCKING_SP_C_PIN_ADMIN1 TCG_TO_UID( 0x00, 0x00, 0x00, 0x0B, 0x00, 0x01, 0x00, 0x01 )\r
50#define OPAL_LOCKING_SP_C_PIN_USER1 TCG_TO_UID( 0x00, 0x00, 0x00, 0x0B, 0x00, 0x03, 0x00, 0x01 )\r
51\r
52// Locking Table\r
53#define OPAL_LOCKING_SP_LOCKING_GLOBALRANGE TCG_TO_UID( 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x01 )\r
54#define OPAL_LOCKING_SP_LOCKING_RANGE1 TCG_TO_UID( 0x00, 0x00, 0x08, 0x02, 0x00, 0x03, 0x00, 0x01 )\r
55\r
56\r
57// LOCKING SP ACE Table Preconfiguration\r
58#define OPAL_LOCKING_SP_ACE_LOCKING_GLOBALRANGE_GET_ALL TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xD0, 0x00 )\r
59#define OPAL_LOCKING_SP_ACE_LOCKING_GLOBALRANGE_SET_RDLOCKED TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xE0, 0x00 )\r
60#define OPAL_LOCKING_SP_ACE_LOCKING_GLOBALRANGE_SET_WRLOCKED TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xE8, 0x00 )\r
61\r
62#define OPAL_LOCKING_SP_ACE_K_AES_256_GLOBALRANGE_GENKEY TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xB8, 0x00 )\r
63#define OPAL_LOCKING_SP_ACE_K_AES_128_GLOBALRANGE_GENKEY TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xB0, 0x00 )\r
64\r
65\r
66// LOCKING SP LockingInfo Table Preconfiguration\r
67#define OPAL_LOCKING_SP_LOCKING_INFO TCG_TO_UID( 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x01 )\r
68\r
69#define OPAL_LOCKING_SP_LOCKINGINFO_ALIGNMENTREQUIRED_COL 0x7\r
70#define OPAL_LOCKING_SP_LOCKINGINFO_LOGICALBLOCKSIZE_COL 0x8\r
71#define OPAL_LOCKING_SP_LOCKINGINFO_ALIGNMENTGRANULARITY_COL 0x9\r
72#define OPAL_LOCKING_SP_LOCKINGINFO_LOWESTALIGNEDLBA_COL 0xA\r
73\r
74// K_AES_256 Table Preconfiguration\r
75#define OPAL_LOCKING_SP_K_AES_256_GLOBALRANGE_KEY TCG_TO_UID( 0x00, 0x00, 0x08, 0x06, 0x00, 0x00, 0x00, 0x01 )\r
76\r
77// K_AES_128 Table Preconfiguration\r
78#define OPAL_LOCKING_SP_K_AES_128_GLOBALRANGE_KEY TCG_TO_UID( 0x00, 0x00, 0x08, 0x05, 0x00, 0x00, 0x00, 0x01 )\r
79\r
80// Minimum Properties that an Opal Compliant SD Shall support\r
81#define OPAL_MIN_MAX_COM_PACKET_SIZE 2048\r
82#define OPAL_MIN_MAX_REPONSE_COM_PACKET_SIZE 2048\r
83#define OPAL_MIN_MAX_PACKET_SIZE 2028\r
84#define OPAL_MIN_MAX_IND_TOKEN_SIZE 1992\r
85#define OPAL_MIN_MAX_PACKETS 1\r
86#define OPAL_MIN_MAX_SUBPACKETS 1\r
87#define OPAL_MIN_MAX_METHODS 1\r
88#define OPAL_MIN_MAX_SESSIONS 1\r
89#define OPAL_MIN_MAX_AUTHENTICATIONS 2\r
90#define OPAL_MIN_MAX_TRANSACTION_LIMIT 1\r
91\r
92#define OPAL_ADMIN_SP_PIN_COL 3\r
93#define OPAL_LOCKING_SP_C_PIN_TRYLIMIT_COL 5\r
94#define OPAL_RANDOM_METHOD_MAX_COUNT_SIZE 32\r
95\r
96#pragma pack(1)\r
97\r
98typedef struct _OPAL_GEOMETRY_REPORTING_FEATURE {\r
99 TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
100 UINT8 Reserved[8];\r
101 UINT32 LogicalBlockSizeBE;\r
102 UINT64 AlignmentGranularityBE;\r
103 UINT64 LowestAlignedLBABE;\r
104} OPAL_GEOMETRY_REPORTING_FEATURE;\r
105\r
106typedef struct _OPAL_SINGLE_USER_MODE_FEATURE {\r
107 TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
108 UINT32 NumLockingObjectsSupportedBE;\r
109 UINT8 Any : 1;\r
110 UINT8 All : 1;\r
111 UINT8 Policy : 1;\r
112 UINT8 Reserved : 5;\r
113 UINT8 Reserved2[7];\r
114} OPAL_SINGLE_USER_MODE_FEATURE;\r
115\r
116typedef struct _OPAL_DATASTORE_TABLE_FEATURE {\r
117 TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
118 UINT16 Reserved;\r
119 UINT16 MaxNumTablesBE;\r
120 UINT32 MaxTotalSizeBE;\r
121 UINT32 SizeAlignmentBE;\r
122} OPAL_DATASTORE_TABLE_FEATURE;\r
123\r
124typedef struct _OPAL_SSCV1_FEATURE_DESCRIPTOR {\r
125 TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
126 UINT16 BaseComdIdBE;\r
127 UINT16 NumComIdsBE;\r
128 UINT8 RangeCrossing : 1;\r
129 UINT8 Reserved : 7;\r
130 UINT8 Future[11];\r
131} OPAL_SSCV1_FEATURE_DESCRIPTOR;\r
132\r
133typedef struct _OPAL_SSCV2_FEATURE_DESCRIPTOR {\r
134 TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
135 UINT16 BaseComdIdBE;\r
136 UINT16 NumComIdsBE;\r
137 UINT8 Reserved;\r
138 UINT16 NumLockingSpAdminAuthoritiesSupportedBE;\r
139 UINT16 NumLockingSpUserAuthoritiesSupportedBE;\r
140 UINT8 InitialCPINSIDPIN;\r
141 UINT8 CPINSIDPINRevertBehavior;\r
142 UINT8 Future[5];\r
143} OPAL_SSCV2_FEATURE_DESCRIPTOR;\r
144\r
145typedef struct _OPAL_SSCLITE_FEATURE_DESCRIPTOR {\r
146 TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
147 UINT16 BaseComdIdBE;\r
148 UINT16 NumComIdsBE;\r
149 UINT8 Reserved[5];\r
150 UINT8 InitialCPINSIDPIN;\r
151 UINT8 CPINSIDPINRevertBehavior;\r
152 UINT8 Future[5];\r
153} OPAL_SSCLITE_FEATURE_DESCRIPTOR;\r
154\r
155typedef struct _PYRITE_SSC_FEATURE_DESCRIPTOR {\r
156 TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
157 UINT16 BaseComdIdBE;\r
158 UINT16 NumComIdsBE;\r
159 UINT8 Reserved[5];\r
160 UINT8 InitialCPINSIDPIN;\r
161 UINT8 CPINSIDPINRevertBehavior;\r
162 UINT8 Future[5];\r
163} PYRITE_SSC_FEATURE_DESCRIPTOR;\r
164\r
165typedef union {\r
166 TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER CommonHeader;\r
167 TCG_TPER_FEATURE_DESCRIPTOR Tper;\r
168 TCG_LOCKING_FEATURE_DESCRIPTOR Locking;\r
169 OPAL_GEOMETRY_REPORTING_FEATURE Geometry;\r
170 OPAL_SINGLE_USER_MODE_FEATURE SingleUser;\r
171 OPAL_DATASTORE_TABLE_FEATURE DataStore;\r
172 OPAL_SSCV1_FEATURE_DESCRIPTOR OpalSscV1;\r
173 OPAL_SSCV2_FEATURE_DESCRIPTOR OpalSscV2;\r
174 OPAL_SSCLITE_FEATURE_DESCRIPTOR OpalSscLite;\r
175 PYRITE_SSC_FEATURE_DESCRIPTOR PyriteSsc;\r
19d539af 176 TCG_BLOCK_SID_FEATURE_DESCRIPTOR BlockSid;\r
79af8319
ED
177} OPAL_LEVEL0_FEATURE_DESCRIPTOR;\r
178\r
179#pragma pack()\r
180\r
181#endif // _OPAL_H_\r