MdePkg: Add definition for TCG Storage Core and Opal specs.
The definitions are defined in TCG storage core and opal spec. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com>
This commit is contained in:
180
MdePkg/Include/IndustryStandard/TcgStorageOpal.h
Normal file
180
MdePkg/Include/IndustryStandard/TcgStorageOpal.h
Normal file
@@ -0,0 +1,180 @@
|
||||
/** @file
|
||||
Opal Specification defined values and structures.
|
||||
|
||||
Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _TCG_STORAGE_OPAL_H_
|
||||
#define _TCG_STORAGE_OPAL_H_
|
||||
|
||||
#include <IndustryStandard/TcgStorageCore.h>
|
||||
|
||||
#define OPAL_UID_ADMIN_SP TCG_TO_UID(0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x01)
|
||||
#define OPAL_UID_ADMIN_SP_C_PIN_MSID TCG_TO_UID(0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x84, 0x02)
|
||||
#define OPAL_UID_ADMIN_SP_C_PIN_SID TCG_TO_UID(0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01)
|
||||
#define OPAL_UID_LOCKING_SP TCG_TO_UID(0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x02)
|
||||
|
||||
// ADMIN_SP
|
||||
// Authorities
|
||||
#define OPAL_ADMIN_SP_ANYBODY_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01)
|
||||
#define OPAL_ADMIN_SP_ADMINS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02)
|
||||
#define OPAL_ADMIN_SP_MAKERS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03)
|
||||
#define OPAL_ADMIN_SP_SID_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06)
|
||||
#define OPAL_ADMIN_SP_ADMIN1_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x02, 0x01)
|
||||
#define OPAL_ADMIN_SP_PSID_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0xFF, 0x01)
|
||||
|
||||
#define OPAL_ADMIN_SP_ACTIVATE_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x03)
|
||||
#define OPAL_ADMIN_SP_REVERT_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x02)
|
||||
|
||||
|
||||
// LOCKING SP
|
||||
// Authorities
|
||||
#define OPAL_LOCKING_SP_ANYBODY_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01)
|
||||
#define OPAL_LOCKING_SP_ADMINS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02)
|
||||
#define OPAL_LOCKING_SP_ADMIN1_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x01)
|
||||
#define OPAL_LOCKING_SP_USERS_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00, 0x00)
|
||||
#define OPAL_LOCKING_SP_USER1_AUTHORITY TCG_TO_UID(0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00, 0x01)
|
||||
|
||||
#define OPAL_LOCKING_SP_REVERTSP_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11)
|
||||
|
||||
// C_PIN Table Rows
|
||||
#define OPAL_LOCKING_SP_C_PIN_ADMIN1 TCG_TO_UID( 0x00, 0x00, 0x00, 0x0B, 0x00, 0x01, 0x00, 0x01 )
|
||||
#define OPAL_LOCKING_SP_C_PIN_USER1 TCG_TO_UID( 0x00, 0x00, 0x00, 0x0B, 0x00, 0x03, 0x00, 0x01 )
|
||||
|
||||
// Locking Table
|
||||
#define OPAL_LOCKING_SP_LOCKING_GLOBALRANGE TCG_TO_UID( 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x01 )
|
||||
#define OPAL_LOCKING_SP_LOCKING_RANGE1 TCG_TO_UID( 0x00, 0x00, 0x08, 0x02, 0x00, 0x03, 0x00, 0x01 )
|
||||
|
||||
|
||||
// LOCKING SP ACE Table Preconfiguration
|
||||
#define OPAL_LOCKING_SP_ACE_LOCKING_GLOBALRANGE_GET_ALL TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xD0, 0x00 )
|
||||
#define OPAL_LOCKING_SP_ACE_LOCKING_GLOBALRANGE_SET_RDLOCKED TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xE0, 0x00 )
|
||||
#define OPAL_LOCKING_SP_ACE_LOCKING_GLOBALRANGE_SET_WRLOCKED TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xE8, 0x00 )
|
||||
|
||||
#define OPAL_LOCKING_SP_ACE_K_AES_256_GLOBALRANGE_GENKEY TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xB8, 0x00 )
|
||||
#define OPAL_LOCKING_SP_ACE_K_AES_128_GLOBALRANGE_GENKEY TCG_TO_UID( 0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xB0, 0x00 )
|
||||
|
||||
|
||||
// LOCKING SP LockingInfo Table Preconfiguration
|
||||
#define OPAL_LOCKING_SP_LOCKING_INFO TCG_TO_UID( 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x01 )
|
||||
|
||||
#define OPAL_LOCKING_SP_LOCKINGINFO_ALIGNMENTREQUIRED_COL 0x7
|
||||
#define OPAL_LOCKING_SP_LOCKINGINFO_LOGICALBLOCKSIZE_COL 0x8
|
||||
#define OPAL_LOCKING_SP_LOCKINGINFO_ALIGNMENTGRANULARITY_COL 0x9
|
||||
#define OPAL_LOCKING_SP_LOCKINGINFO_LOWESTALIGNEDLBA_COL 0xA
|
||||
|
||||
// K_AES_256 Table Preconfiguration
|
||||
#define OPAL_LOCKING_SP_K_AES_256_GLOBALRANGE_KEY TCG_TO_UID( 0x00, 0x00, 0x08, 0x06, 0x00, 0x00, 0x00, 0x01 )
|
||||
|
||||
// K_AES_128 Table Preconfiguration
|
||||
#define OPAL_LOCKING_SP_K_AES_128_GLOBALRANGE_KEY TCG_TO_UID( 0x00, 0x00, 0x08, 0x05, 0x00, 0x00, 0x00, 0x01 )
|
||||
|
||||
// Minimum Properties that an Opal Compliant SD Shall support
|
||||
#define OPAL_MIN_MAX_COM_PACKET_SIZE 2048
|
||||
#define OPAL_MIN_MAX_REPONSE_COM_PACKET_SIZE 2048
|
||||
#define OPAL_MIN_MAX_PACKET_SIZE 2028
|
||||
#define OPAL_MIN_MAX_IND_TOKEN_SIZE 1992
|
||||
#define OPAL_MIN_MAX_PACKETS 1
|
||||
#define OPAL_MIN_MAX_SUBPACKETS 1
|
||||
#define OPAL_MIN_MAX_METHODS 1
|
||||
#define OPAL_MIN_MAX_SESSIONS 1
|
||||
#define OPAL_MIN_MAX_AUTHENTICATIONS 2
|
||||
#define OPAL_MIN_MAX_TRANSACTION_LIMIT 1
|
||||
|
||||
#define OPAL_ADMIN_SP_PIN_COL 3
|
||||
#define OPAL_LOCKING_SP_C_PIN_TRYLIMIT_COL 5
|
||||
#define OPAL_RANDOM_METHOD_MAX_COUNT_SIZE 32
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
typedef struct _OPAL_GEOMETRY_REPORTING_FEATURE {
|
||||
TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;
|
||||
UINT8 Reserved[8];
|
||||
UINT32 LogicalBlockSizeBE;
|
||||
UINT64 AlignmentGranularityBE;
|
||||
UINT64 LowestAlignedLBABE;
|
||||
} OPAL_GEOMETRY_REPORTING_FEATURE;
|
||||
|
||||
typedef struct _OPAL_SINGLE_USER_MODE_FEATURE {
|
||||
TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;
|
||||
UINT32 NumLockingObjectsSupportedBE;
|
||||
UINT8 Any : 1;
|
||||
UINT8 All : 1;
|
||||
UINT8 Policy : 1;
|
||||
UINT8 Reserved : 5;
|
||||
UINT8 Reserved2[7];
|
||||
} OPAL_SINGLE_USER_MODE_FEATURE;
|
||||
|
||||
typedef struct _OPAL_DATASTORE_TABLE_FEATURE {
|
||||
TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;
|
||||
UINT16 Reserved;
|
||||
UINT16 MaxNumTablesBE;
|
||||
UINT32 MaxTotalSizeBE;
|
||||
UINT32 SizeAlignmentBE;
|
||||
} OPAL_DATASTORE_TABLE_FEATURE;
|
||||
|
||||
typedef struct _OPAL_SSCV1_FEATURE_DESCRIPTOR {
|
||||
TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;
|
||||
UINT16 BaseComdIdBE;
|
||||
UINT16 NumComIdsBE;
|
||||
UINT8 RangeCrossing : 1;
|
||||
UINT8 Reserved : 7;
|
||||
UINT8 Future[11];
|
||||
} OPAL_SSCV1_FEATURE_DESCRIPTOR;
|
||||
|
||||
typedef struct _OPAL_SSCV2_FEATURE_DESCRIPTOR {
|
||||
TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;
|
||||
UINT16 BaseComdIdBE;
|
||||
UINT16 NumComIdsBE;
|
||||
UINT8 Reserved;
|
||||
UINT16 NumLockingSpAdminAuthoritiesSupportedBE;
|
||||
UINT16 NumLockingSpUserAuthoritiesSupportedBE;
|
||||
UINT8 InitialCPINSIDPIN;
|
||||
UINT8 CPINSIDPINRevertBehavior;
|
||||
UINT8 Future[5];
|
||||
} OPAL_SSCV2_FEATURE_DESCRIPTOR;
|
||||
|
||||
typedef struct _OPAL_SSCLITE_FEATURE_DESCRIPTOR {
|
||||
TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;
|
||||
UINT16 BaseComdIdBE;
|
||||
UINT16 NumComIdsBE;
|
||||
UINT8 Reserved[5];
|
||||
UINT8 InitialCPINSIDPIN;
|
||||
UINT8 CPINSIDPINRevertBehavior;
|
||||
UINT8 Future[5];
|
||||
} OPAL_SSCLITE_FEATURE_DESCRIPTOR;
|
||||
|
||||
typedef struct _PYRITE_SSC_FEATURE_DESCRIPTOR {
|
||||
TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;
|
||||
UINT16 BaseComdIdBE;
|
||||
UINT16 NumComIdsBE;
|
||||
UINT8 Reserved[5];
|
||||
UINT8 InitialCPINSIDPIN;
|
||||
UINT8 CPINSIDPINRevertBehavior;
|
||||
UINT8 Future[5];
|
||||
} PYRITE_SSC_FEATURE_DESCRIPTOR;
|
||||
|
||||
typedef union {
|
||||
TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER CommonHeader;
|
||||
TCG_TPER_FEATURE_DESCRIPTOR Tper;
|
||||
TCG_LOCKING_FEATURE_DESCRIPTOR Locking;
|
||||
OPAL_GEOMETRY_REPORTING_FEATURE Geometry;
|
||||
OPAL_SINGLE_USER_MODE_FEATURE SingleUser;
|
||||
OPAL_DATASTORE_TABLE_FEATURE DataStore;
|
||||
OPAL_SSCV1_FEATURE_DESCRIPTOR OpalSscV1;
|
||||
OPAL_SSCV2_FEATURE_DESCRIPTOR OpalSscV2;
|
||||
OPAL_SSCLITE_FEATURE_DESCRIPTOR OpalSscLite;
|
||||
PYRITE_SSC_FEATURE_DESCRIPTOR PyriteSsc;
|
||||
} OPAL_LEVEL0_FEATURE_DESCRIPTOR;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif // _OPAL_H_
|
Reference in New Issue
Block a user