]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/TcgStorageOpal.h
MdePkg: TpmPtp: Add CapCRBIdleBypass definition
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / TcgStorageOpal.h
index 66027da6a84df0c64fa8a40c4a5b8381f015a702..e8f313c3d357f78a93556c105662e29a1003b820 100644 (file)
@@ -1,7 +1,21 @@
 /** @file\r
   Opal Specification defined values and structures.\r
 \r
-Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  (TCG Storage Architecture Core Specification, Version 2.01, Revision 1.00,\r
+  https://trustedcomputinggroup.org/tcg-storage-architecture-core-specification/\r
+\r
+  Storage Work Group Storage Security Subsystem Class: Pyrite, Version 1.00 Final, Revision 1.00,\r
+  https://trustedcomputinggroup.org/tcg-storage-security-subsystem-class-pyrite/\r
+\r
+  Storage Work Group Storage Security Subsystem Class: Opal, Version 2.01 Final, Revision 1.00,\r
+  https://trustedcomputinggroup.org/storage-work-group-storage-security-subsystem-class-opal/\r
+\r
+  TCG Storage Security Subsystem Class: Opalite Version 1.00 Revision 1.00,\r
+  https://trustedcomputinggroup.org/tcg-storage-security-subsystem-class-opalite/)\r
+\r
+  Check http://trustedcomputinggroup.org for latest specification updates.\r
+\r
+Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -34,6 +48,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #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
@@ -93,6 +110,23 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #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
@@ -162,6 +196,38 @@ typedef struct _PYRITE_SSC_FEATURE_DESCRIPTOR {
   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
@@ -173,6 +239,9 @@ typedef union {
   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