#define OPAL_ADMIN_SP_ACTIVATE_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x03)\r
#define OPAL_ADMIN_SP_REVERT_METHOD TCG_TO_UID(0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x02)\r
\r
+// ADMIN_SP\r
+// Data Removal mechanism\r
+#define OPAL_UID_ADMIN_SP_DATA_REMOVAL_MECHANISM TCG_TO_UID(0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x01)\r
\r
// LOCKING SP\r
// Authorities\r
#define OPAL_LOCKING_SP_C_PIN_TRYLIMIT_COL 5\r
#define OPAL_RANDOM_METHOD_MAX_COUNT_SIZE 32\r
\r
+// Data Removal Mechanism column.\r
+#define OPAL_ADMIN_SP_ACTIVE_DATA_REMOVAL_MECHANISM_COL 1\r
+\r
+//\r
+// Supported Data Removal Mechanism.\r
+// Detail see Pyrite SSC v2 spec.\r
+//\r
+typedef enum {\r
+ OverwriteDataErase = 0,\r
+ BlockErase,\r
+ CryptoErase,\r
+ Unmap,\r
+ ResetWritePointers,\r
+ VendorSpecificErase,\r
+ ResearvedMechanism\r
+} SUPPORTED_DATA_REMOVAL_MECHANISM;\r
+\r
#pragma pack(1)\r
\r
typedef struct _OPAL_GEOMETRY_REPORTING_FEATURE {\r
UINT8 Future[5];\r
} PYRITE_SSC_FEATURE_DESCRIPTOR;\r
\r
+typedef struct _PYRITE_SSCV2_FEATURE_DESCRIPTOR {\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
+ UINT16 BaseComdIdBE;\r
+ UINT16 NumComIdsBE;\r
+ UINT8 Reserved[5];\r
+ UINT8 InitialCPINSIDPIN;\r
+ UINT8 CPINSIDPINRevertBehavior;\r
+ UINT8 Future[5];\r
+} PYRITE_SSCV2_FEATURE_DESCRIPTOR;\r
+\r
+typedef struct _DATA_REMOVAL_FEATURE_DESCRIPTOR {\r
+ TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER Header;\r
+ UINT8 Reserved;\r
+ UINT8 OperationProcessing : 1;\r
+ UINT8 Reserved2 : 7;\r
+ UINT8 RemovalMechanism;\r
+ UINT8 FormatBit0 : 1; // Data Removal Time Format for Bit 0\r
+ UINT8 FormatBit1 : 1; // Data Removal Time Format for Bit 1\r
+ UINT8 FormatBit2 : 1; // Data Removal Time Format for Bit 2\r
+ UINT8 FormatBit3 : 1; // Data Removal Time Format for Bit 3\r
+ UINT8 FormatBit4 : 1; // Data Removal Time Format for Bit 4\r
+ UINT8 FormatBit5 : 1; // Data Removal Time Format for Bit 5\r
+ UINT8 Reserved3 : 2;\r
+ UINT16 TimeBit0; // Data Removal Time for Supported Data Removal Mechanism Bit 0\r
+ UINT16 TimeBit1; // Data Removal Time for Supported Data Removal Mechanism Bit 1\r
+ UINT16 TimeBit2; // Data Removal Time for Supported Data Removal Mechanism Bit 2\r
+ UINT16 TimeBit3; // Data Removal Time for Supported Data Removal Mechanism Bit 3\r
+ UINT16 TimeBit4; // Data Removal Time for Supported Data Removal Mechanism Bit 4\r
+ UINT16 TimeBit5; // Data Removal Time for Supported Data Removal Mechanism Bit 5\r
+ UINT8 Future[16];\r
+} DATA_REMOVAL_FEATURE_DESCRIPTOR;\r
+\r
typedef union {\r
TCG_LEVEL0_FEATURE_DESCRIPTOR_HEADER CommonHeader;\r
TCG_TPER_FEATURE_DESCRIPTOR Tper;\r
OPAL_SSCV2_FEATURE_DESCRIPTOR OpalSscV2;\r
OPAL_SSCLITE_FEATURE_DESCRIPTOR OpalSscLite;\r
PYRITE_SSC_FEATURE_DESCRIPTOR PyriteSsc;\r
+ PYRITE_SSCV2_FEATURE_DESCRIPTOR PyriteSscV2;\r
TCG_BLOCK_SID_FEATURE_DESCRIPTOR BlockSid;\r
+ DATA_REMOVAL_FEATURE_DESCRIPTOR DataRemoval;\r
} OPAL_LEVEL0_FEATURE_DESCRIPTOR;\r
\r
#pragma pack()\r