-
Notifications
You must be signed in to change notification settings - Fork 48
TCG Level 0 Discovery Data of Sumsung 990 PRO
Following data is retrieved from Samsung 990 PRO[1].
Firmware revision is 0B2QJXD7
.
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
---------------------------------------------------------------
0x000 00 00 00 D8 00 00 00 01 00 00 00 00 00 00 00 00 ........ ........
0x010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0x020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0x030 00 01 10 0C 11 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0x040 00 02 10 0C 09 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0x050 00 03 10 1C 01 00 00 00 00 00 00 00 00 00 02 00 ........ ........
0x060 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 ........ ........
0x070 02 00 10 10 10 04 00 04 00 00 00 00 00 00 00 00 ........ ........
0x080 00 00 00 00 02 01 10 0C 00 00 00 09 04 00 00 00 ........ ........
0x090 00 00 00 00 02 02 10 0C 00 00 00 09 00 A0 00 00 ........ ........
0x0A0 00 00 00 01 02 03 10 10 10 04 00 04 00 00 04 00 ........ ........
0x0B0 09 00 00 00 00 00 00 00 04 02 10 0C 02 01 00 00 ........ ........
0x0C0 00 00 00 00 00 00 00 00 04 03 22 10 A0 00 00 00 ........ ..".....
0x0D0 00 00 00 09 00 00 00 08 00 00 00 07 00 00 00 00 ........ ........
Level 0 Discovery header (48 bytes) exists at the head of Level 0 Discovery Data.
After the header, Feature Descriptor(s) are located.
Each Feature Descriptor has own Feature Code, for example, the code of TPer Feature is 1h, so you can find what type of feature descriptor is located right after.
According to the TCG spec[2][3][4][5][6][7][8], this data is interpreted as follows.
The content of length
field is different from that of 970 EVO Plus.
Byte | Bit | Description | Data (Hex) | Data (Dec) | Note |
---|---|---|---|---|---|
3:0 | Length of Parameter Data | D8h | 216 | Byte [219:4] = 216 bytes, B4h (180) in 970 EVO Plus | |
7:4 | Data structure revision | 1h | 1 | ||
15:8 | Reserved | 0h | |||
47:16 | Vendor Specific | 0h |
All contents in this descriptor are the same as 970 EVO Plus.
Byte | Bit | Description | Data (Hex) | Data (Dec) | Note |
---|---|---|---|---|---|
49:48 | Feature Code | 1h | 1 | indicates TPer Feature Descriptor | |
50 | 3:0 | Reserved | 0h | ||
7:4 | Version | 1h | 1 | ||
51 | Length | Ch | 12 | Byte [63:52] = 12 bytes | |
52 | 0 | Sync Supported | 1h | 1 | |
1 | Async Supported | 0h | 0 | ||
2 | ACK/NAK Supported | 0h | 0 | ||
3 | Buffer Mgmt Supported | 0h | 0 | ||
4 | Streaming Supported | 1h | 1 | ||
5 | Reserved | 0h | |||
6 | ComID Mgmt Supported | 0h | 0 | ||
7 | Reserved | 0h | |||
63:53 | Reserved | 0h |
All contents in this descriptor are the same as 970 EVO Plus.
Byte | Bit | Description | Data (Hex) | Data (Dec) | Note |
---|---|---|---|---|---|
65:64 | Feature Code | 2h | indicates Locking Feature Descriptor | ||
66 | 3:0 | Reserved | 0h | ||
7:4 | Version | 1h | 1 | ||
67 | Length | Ch | 12 | Byte [79:68] = 12 Byte | |
68 | 0 | Locking Supported | 1h | 1 | |
1 | Locking Enabled | 0h | 0 | ||
2 | Locked | 0h | 0 | ||
3 | Media Encryption | 1h | 1 | ||
4 | MBR Enabled | 0h | 0 | ||
5 | MBR Done | 0h | 0 | ||
7:6 | Reserved | 0h | |||
79:69 | Reserved | 0h |
All contents in this descriptor are the same as 970 EVO Plus.
Byte | Bit | Description | Data (Hex) | Data (Dec) | Note |
---|---|---|---|---|---|
81:80 | Feature Code | 3h | indicates Geometry Reporting Feature Descriptor | ||
82 | 3:0 | Reserved | 0h | ||
7:4 | Version | 1h | 1 | ||
83 | Length | 1Ch | 28 | byte [111:84] = 28 bytes | |
84 | 0 | ALIGN | 1h | 1 | |
7:1 | Reserved | 0h | |||
91:85 | Reserved | 0h | |||
95:92 | Logical Block Size | 200h | 512 | sector size (in byte) | |
103:96 | Alignment Granularity | 8h | 8 | number of logical blocks | |
111:104 | Lowest Aligned LBA | 0h | 0 |
970 EVO Plus has only Opal SSC V2.00 Feature Descriptor, but 990 PRO has both Opal SSC and Opal SSC V2.00 Feature Descriptor.
Byte | Bit | Description | Data (Hex) | Data (Dec) | Note |
---|---|---|---|---|---|
113:112 | Feature Code | 200h | indicates Opal SSC Feature Descriptor | ||
114 | 3:0 | Reserved | 0h | ||
7:4 | Version | 1h | 1 | ||
115 | Length | 10h | 16 | Byte [131:116] = 16 Byte | |
117:116 | Base ComID | 1004h | 4100 | vendor unique value | |
119:118 | Number of ComIDs | 4h | 4 | ||
120 | 0 | Range Crossing | 0h | 0 | The SD supports commands addressing consecutive LBAs in more than one LBA range if all the LBA ranges addressed are unlocked. |
7:1 | Reserved | 0h | |||
131:121 | Reserved | 0h |
This descriptor is absent in 970 EVO Plus.
Byte | Bit | Description | Data (Hex) | Data (Dec) | Note |
---|---|---|---|---|---|
133:132 | Feature Code | 201h | indicates Single User Mode Feature Descriptor | ||
134 | 3:0 | Reserved | 0h | ||
7:4 | Version | 1h | 1 | ||
135 | Length | Ch | 12 | Byte [147:136] = 12 Byte | |
139:136 | Number of Locking Objects Supported | 9h | 9 | ||
140 | 0 | Any | 0h | 0 | |
1 | All | 0h | 0 | ||
2 | Policy | 1h | 1 | Admins authority maintains ownership of the RangeStart, RangeLength, and CommonName of Locking objects in Single User Mode, or if the Locking SP is in any life cycle state other than Manufactured or Issued. | |
140 | 7:3 | Reserved | 0h | ||
147:141 | Reserved | 0h |
All contents in this descriptor are the same as 970 EVO Plus.
Byte | Bit | Description | Data (Hex) | Data (Dec) | Note |
---|---|---|---|---|---|
149:148 | Feature Code | 202h | indicates DataStore Table Feature Descriptor | ||
150 | 3:0 | Reserved | 0h | ||
150 | 7:4 | Version | 1h | 1 | |
151 | Length | Ch | 12 | Byte [163:152] = 12 Byte | |
153:152 | Reserved | 0h | |||
155:154 | Maximum number of DataStore tables | 9h | 9 | ||
159:156 | Maximum total size of DataStore tables | A00000h | 10485760 | 10 MiB | |
163:160 | DataStore table size alignment | 1h | 1 | in byte |
Byte | Bit | Description | Data (Hex) | Data (Dec) | Note |
---|---|---|---|---|---|
165:164 | Feature Code | 203h | indicates Opal SSC V2.00 Feature Descriptor | ||
166 | 3:0 | Reserved | 0h | ||
7:4 | Version | 1h | 1 | ||
167 | Length | 10h | 16 | Byte [147:132] = 16 Byte | |
169:168 | Base ComID | 1004h | 4100 | vendor unique value | |
171:170 | Number of ComIDs | 4h | 4 |
1 in 970 EVO Plus |
|
172 | 0 | Range Crossing Behavior | 0h | 0 | This SD supports commands addressing consecutive LBAs in more than one LBA range if all the LBA ranges addressed are unlocked. |
7:1 | Reserved | 0h | |||
174:173 | Number of Locking SP Admin Authorities Supported | 4h | 4 | `4' is minimum value | |
176:175 | Number of Locking SP User Authorities Supported | 9h | 9 | minimum value is `8' | |
177 | Initial C_PIN_SID PIN Indicator | 0h | 0 | Initial C_PIN_SID PIN value is equal to the C_PIN_MSID PIN value | |
178 | Behavior of C_PIN_SID PIN upon TPer Revert | 0h | 0 | The C_PIN_SID PIN value becomes the value of the C_PIN_MSID PIN column after successful invocation of Revert on the Admin SP's object in the SP table |
|
183:179 | Reserved | 0h |
All contents in this descriptor are the same as 970 EVO Plus.
Byte | Bit | Description | Data (Hex) | Data (Dec) | Note |
---|---|---|---|---|---|
185:184 | Feature Code | 402h | indicates Block SID Authentication Descriptor | ||
186 | 3:0 | Reserved | 0h | ||
7:4 | Version | 1h | 1 | ||
187 | Length | Ch | 12 | Byte [199:188] = 12 Byte | |
188 | 0 | SID Value State | 0h | 0 | C_PIN_SID object's PIN column value is equal to the C_PIN_MSID object's PIN column value |
1 | SID Blocked State | 1h | 1 | Authentication of the SID authority is currently blocked due to the Block SID Authentication command | |
7:2 | Reserved | 0h | |||
189 | 0 | Hardware Reset | 1h | 1 | Hardware Reset was selected to be able to clear the SID Authentication block |
7:1 | Reserved | 0h | |||
199:190 | Reserved | 0h |
Byte | Bit | Description | Data (Hex) | Data (Dec) | Note |
---|---|---|---|---|---|
201:200 | Feature Code | 403h | indicates Configurable Namespace Locking Feature Descriptor | ||
202 | 3:0 | Feature Set Minor Version Numver | 2h | 2 | Configurable Locking for NVMe Namespaces and SCSI LUNs v1.02 |
7:4 | Feature Descriptor Version Number | 2h | 2 | ||
203 | Length | 10h | 16 | Byte [219:204] = 16 Byte | |
204 | 4:0 | Reserved | 0h | ||
5 | SUM_C | 1h | 1 | The SD supports the AssignToSUMRange parameter in the Assign method to support assigning namespaces to ranges that are activated in Single User Mode. |
|
6 | Range_P | 0h | 0 | ||
7 | Range_C | 1h | 1 | The SD supports Namespace Non-Global Range Locking objects | |
207:205 | Reserved | 0h | |||
211:208 | Maximum Key Count | 9h | 9 | ||
215:212 | Unused Key Count | 8h | 8 |
9 in 970 EVO Plus |
|
219:216 | Maximum Ranges Per Namespace | 7h | 7 |
8 in 970 EVO Plus |
[1] Samsung, "990 PRO", retrieved on December 26, 2022
[2] Trusted Computing Group, "TCG Storage Architecture Core Specification", Version 2.01, Revision 1.00, August, 2015
[3] Trusted Computing Group, "TCG Storage Security Subsystem Class: Opal", Version 1.00, Revision 3.00, February, 2010
[4] Trusted Computing Group, "TCG Storage Security Subsystem Class: Opal", Version 2.02, Revision 1.0, January, 2022
[5] Trusted Computing Group, "TCG Storage Opal SSC Feature Set: Single User Mode", Version 1.00, Revision 2.00, August, 2015
[6] Trusted Computing Group, "TCG Storage Opal SSC Feature Set: Additional DataStore Tables", Version 1.00, Revision 1.00, February, 2012
[7] Trusted Computing Group, "TCG Storage Feature Set: Block SID Authentication", Version 1.01, Revision 1.00, February, 2021
[8] Trusted Computing Group, "TCG Storage Opal SSC Feature Set: Configurable Namespace Locking", Version 1.00, Revision 1.31, Work in Progress, April, 2018