Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Samsung PM981 NVMe: PSID revert does not work #468

Open
vchrizz opened this issue Mar 30, 2024 · 1 comment
Open

Samsung PM981 NVMe: PSID revert does not work #468

vchrizz opened this issue Mar 30, 2024 · 1 comment

Comments

@vchrizz
Copy link

vchrizz commented Mar 30, 2024

Trying to use a Samsung PM981 NVME disk MZVLB512HAJQ-000L7 - which it seems I can not PSID revert it.
It was used in a notebook where an encryption password was set and the password was forgotten, there is no important data on it so it can safely be cleared.
According to linux/PSIDRevert_LINUX.txt the verbose output should be given, so here it is.

Interestingly, an user told in issue #241 that it worked for exactly this drive, with exact the same firmware that my drive has.
So I am wondering, why it does not work for me?

# uname -a
Linux 5.15.143-1-pve #1 SMP PVE 5.15.143-1 (2024-02-08T18:12Z) x86_64 GNU/Linux
# chmod 0744 /sys/module/libata/parameters/allow_tpm
# echo "1" > /sys/module/libata/parameters/allow_tpm
-bash: echo: write error: Input/output error
# # I booted with 'libata.allow_tpm=1' but since it is a nvme drive, I guess libata is not required and allow_tpm setting not relevant?

dmesg:

# dmesg | grep -i nvme
[    3.260904] nvme nvme0: pci function 0000:01:00.0
[    3.273690] nvme nvme0: Shutdown timeout set to 8 seconds
[    3.281492] nvme nvme0: 4/0/0 default/read/poll queues
[    3.301677] blk_update_request: operation not supported error, dev nvme0n1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[    3.301714] Buffer I/O error on dev nvme0n1, logical block 0, async page read
[    3.313760] blk_update_request: operation not supported error, dev nvme0n1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[    3.313789] Buffer I/O error on dev nvme0n1, logical block 0, async page read
[    3.325857] blk_update_request: operation not supported error, dev nvme0n1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[    3.325868] Buffer I/O error on dev nvme0n1, logical block 0, async page read
[    3.337860] blk_update_request: operation not supported error, dev nvme0n1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[    3.337869] Buffer I/O error on dev nvme0n1, logical block 0, async page read
[    3.349858] blk_update_request: operation not supported error, dev nvme0n1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[    3.349868] Buffer I/O error on dev nvme0n1, logical block 0, async page read
[    3.362072] blk_update_request: operation not supported error, dev nvme0n1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[    3.362100] Buffer I/O error on dev nvme0n1, logical block 0, async page read
[    3.374158] blk_update_request: operation not supported error, dev nvme0n1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[    3.374170] Buffer I/O error on dev nvme0n1, logical block 0, async page read
[    3.374183] Dev nvme0n1: unable to read RDB block 0
[    3.386442] blk_update_request: operation not supported error, dev nvme0n1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[    3.386488] Buffer I/O error on dev nvme0n1, logical block 0, async page read
[    3.399463] blk_update_request: operation not supported error, dev nvme0n1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[    3.399495] Buffer I/O error on dev nvme0n1, logical block 0, async page read
[    3.412463] blk_update_request: operation not supported error, dev nvme0n1, sector 24 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[    3.412496] Buffer I/O error on dev nvme0n1, logical block 3, async page read
[    3.439027]  nvme0n1: unable to read partition table
[   17.155978] blk_update_request: operation not supported error, dev nvme0n1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 32 prio class 0
[   18.210268] blk_update_request: operation not supported error, dev nvme0n1, sector 1000215040 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
[   18.222473] blk_update_request: operation not supported error, dev nvme0n1, sector 1000215040 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[   18.222511] Buffer I/O error on dev nvme0n1, logical block 125026880, async page read
[   19.316536] blk_update_request: operation not supported error, dev nvme0n1, sector 32 op 0x0:(READ) flags 0x0 phys_seg 2 prio class 0
[   19.318519] blk_update_request: operation not supported error, dev nvme0n1, sector 32 op 0x0:(READ) flags 0x0 phys_seg 4 prio class 0
[   19.340542] blk_update_request: operation not supported error, dev nvme0n1, sector 544 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[   19.342520] blk_update_request: operation not supported error, dev nvme0n1, sector 544 op 0x0:(READ) flags 0x0 phys_seg 3 prio class 0
[   19.364646] blk_update_request: operation not supported error, dev nvme0n1, sector 1000214048 op 0x0:(READ) flags 0x0 phys_seg 5 prio class 0
[   19.366649] blk_update_request: operation not supported error, dev nvme0n1, sector 1000214048 op 0x0:(READ) flags 0x0 phys_seg 6 prio class 0
[   19.388727] blk_update_request: operation not supported error, dev nvme0n1, sector 1000214560 op 0x0:(READ) flags 0x0 phys_seg 4 prio class 0
[ 2914.791955] blk_update_request: operation not supported error, dev nvme0n1, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
[ 2914.804616] blk_update_request: operation not supported error, dev nvme0n1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 2914.804657] Buffer I/O error on dev nvme0n1, logical block 0, async page read
[ 2914.817533] blk_update_request: operation not supported error, dev nvme0n1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 2914.817555] Buffer I/O error on dev nvme0n1, logical block 0, async page read
# fdisk -l /dev/nvme0n1
fdisk: cannot open /dev/nvme0n1: Input/output error

smartctl:

# smartctl -A /dev/nvme0
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.143-1-pve] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF SMART DATA SECTION ===
SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        32 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    7,438,046 [3.80 TB]
Data Units Written:                 6,901,530 [3.53 TB]
Host Read Commands:                 122,576,562
Host Write Commands:                121,248,668
Controller Busy Time:               536
Power Cycles:                       840
Power On Hours:                     542
Unsafe Shutdowns:                   209
Media and Data Integrity Errors:    0
Error Information Log Entries:      878
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Temperature Sensor 1:               32 Celsius
Temperature Sensor 2:               39 Celsius
# ./sedutil-cli --yesIreallywanttoERASEALLmydatausingthePSID 1KQ5PZDVGFUXNTG17FN0YRPSGAKXCK36 /dev/nvme0
revertTper completed successfully
# ./sedutil-cli --yesIreallywanttoERASEALLmydatausingthePSID 1KQ5PZDVGFUXNTG17FN0YRPSGAKXCK36 /dev/nvme0n1
revertTper completed successfully

but still:

# fdisk -l /dev/nvme0n1
fdisk: cannot open /dev/nvme0n1: Input/output error

sedutil scan:

# ./sedutil-cli --scan
Scanning for Opal compliant disks
/dev/nvme0  2      SAMSUNG MZVLB512HAJQ-000L7               4L2QEXA7
The Kernel flag libata.allow_tpm is not set correctly
Please see the readme note about setting the libata.allow_tpm
/dev/sda   No      SanDisk SSD PLUS 2000GB                  UP4504RL
The Kernel flag libata.allow_tpm is not set correctly
Please see the readme note about setting the libata.allow_tpm
/dev/sdb   No      SanDisk SSD PLUS 2000GB                  UP4504RL
No more disks present ending scan

sedutil query:

# ./sedutil-cli --query /dev/nvme0

/dev/nvme0 NVMe SAMSUNG MZVLB512HAJQ-000L7               4L2QEXA7 S3TNNF0K477440
TPer function (0x0001)
    ACKNAK = N, ASYNC = N. BufferManagement = N, comIDManagement  = N, Streaming = Y, SYNC = Y
Locking function (0x0002)
    Locked = N, LockingEnabled = N, LockingSupported = Y, MBRDone = N, MBREnabled = N, MBRAbsent = N, MediaEncrypt = Y
Geometry function (0x0003)
    Align = Y, Alignment Granularity = 8 (4096), Logical Block size = 512, Lowest Aligned LBA = 0
DataStore function (0x0202)
    Max Tables = 9, Max Size Tables = 10485760, Table size alignment = 1
OPAL 2.0 function (0x0203)
    Base comID = 0x1004, Initial PIN = 0x00, Reverted PIN = 0x00, comIDs = 1
    Locking Admins = 4, Locking Users = 9, Range Crossing = N
Block SID Authentication function (0x0402)
    SID Blocked State = N, SID Value State = N, Hardware Reset = N
Namespace function (0x0403)
    Maximum Key Count = 9, Unused Key Count = 8, Maximum Ranges Per Namespace = 8

TPer Properties:
  MaxComPacketSize = 66048  MaxResponseComPacketSize = 66048
  MaxPacketSize = 66028  MaxIndTokenSize = 65540  MaxPackets = 1
  MaxSubpackets = 1  MaxMethods = 1  MaxAuthentications = 5
  MaxSessions = 1  MaxTransactionLimit = 1  DefSessionTimeout = 0

Host Properties:
  MaxComPacketSize = 2048  MaxResponseComPacketSize = 2048
  MaxPacketSize = 2028  MaxIndTokenSize = 1992  MaxPackets = 1
  MaxSubpackets = 1  MaxMethods = 1

verbose output:

# ./sedutil-cli -vvvvv  --yesIreallywanttoERASEALLmydatausingthePSID 1KQ5PZDVGFUXNTG17FN0YRPSGAKXCK36 /dev/nvme0n1
Log level set to DBG4
sedutil version :
Creating  DtaResponse()
Creating  DtaResponse()
DtaDevOS::init /dev/nvme0n1
Creating DtaDevLinuxNvme::DtaDev() /dev/nvme0n1
Entering DtaDevLinuxNvme::identify()
Entering DtaDev::discovery0()
Entering DtaDevLinuxNvme::sendCmd
Security Receive Command
NVME Security Command Success:0
Dumping D0Response
Entering hexDump
0000 000000b4 00000001 00000000 00000000  ................
0010 00000000 00000000 00000000 00000000  ................
0020 00000000 00000000 00000000 00000000  ................
0030 0001100c 11000000 00000000 00000000  ................
0040 0002100c 09000000 00000000 00000000  ................
0050 0003101c 01000000 00000000 00000200  ................
0060 00000000 00000008 00000000 00000000  ................
0070 0202100c 00000009 00a00000 00000001  ................
0080 02031010 10040001 00000400 09000000  ................
0090 00000000 0402100c 00000000 00000000  ................
00a0 00000000 04031010 80000000 00000009  ................
00b0 00000008                             ....
Entering DtaDev::isPresent() 1
Entering DtaDev::isAnySSC 1
Entering DtaDev::isRuby1 0
Entering DtaDev::isOpal2 1
Creating  DtaResponse()
Creating  DtaResponse()
DtaDevOS::init /dev/nvme0n1
Creating DtaDevLinuxNvme::DtaDev() /dev/nvme0n1
Entering DtaDevLinuxNvme::identify()
Entering DtaDev::discovery0()
Entering DtaDevLinuxNvme::sendCmd
Security Receive Command
NVME Security Command Success:0
Dumping D0Response
Entering hexDump
0000 000000b4 00000001 00000000 00000000  ................
0010 00000000 00000000 00000000 00000000  ................
0020 00000000 00000000 00000000 00000000  ................
0030 0001100c 11000000 00000000 00000000  ................
0040 0002100c 09000000 00000000 00000000  ................
0050 0003101c 01000000 00000000 00000200  ................
0060 00000000 00000008 00000000 00000000  ................
0070 0202100c 00000009 00a00000 00000001  ................
0080 02031010 10040001 00000400 09000000  ................
0090 00000000 0402100c 00000000 00000000  ................
00a0 00000000 04031010 80000000 00000009  ................
00b0 00000008                             ....
Entering DtaDevOpal::properties()
Creating DtaSsession()
Creating DtaCommand(ID, InvokingUid, method)
Entering DtaCommand::reset(OPAL_UID, OPAL_METHOD)
Entering DtaCommand::reset()
Entering DtaCommand::addToken(OPAL_UID)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(const char * )
Entering DtaCommand::addToken(uint64_t)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(const char * )
Entering DtaCommand::addToken(uint64_t)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(const char * )
Entering DtaCommand::addToken(uint64_t)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(const char * )
Entering DtaCommand::addToken(uint64_t)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(const char * )
Entering DtaCommand::addToken(uint64_t)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(const char * )
Entering DtaCommand::addToken(uint64_t)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::complete(uint8_t EOD)
Entering DtaSession::sendCommand()
Entering DtaCommand::setHSN()
Entering DtaCommand::setTSN()
Entering DtaCommand::setcomID()

Dumping command buffer
<< IF_SEND >>
ComPacket.extendedComID    10040000
ComPacket.outstandingData  00000000
ComPacket.minTransfer      00000000
ComPacket.length           000000B0
Packet.TSN                 00000000
Packet.HSN                 00000000
Packet.seqNumber           00000000
Packet.ackType             00000000
Packet.acknowledgement     00000000
Packet.length              00000098
DataSubPacket.kind         00000000
DataSubPacket.length       0000008C
Entering DtaToken::parse 140
1       ( F8 ) Call
Entering DtaToken::parse 139
9       ( A8 ) 00 00 00 00 00 00 00 FF ("Session Manager UID")
Entering DtaToken::parse 130
9       ( A8 ) 00 00 00 00 00 00 FF 01 ("Session Properties Method UID")
Entering DtaToken::parse 121
1       ( F0 ) Start_List
Entering DtaToken::parse 120
1       ( F2 ) Start_Name
Entering DtaToken::parse 119
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 118
1       ( F0 ) Start_List
Entering DtaToken::parse 117
1       ( F2 ) Start_Name
Entering DtaToken::parse 116
18      ( D0 10 ) 4D 61 78 43 6F 6D 50 61 63 6B 65 74 53 69 7A 65 ("MaxComPacketSize")
Entering DtaToken::parse 98
3       ( 82 ) 2048 (800h)
Entering DtaToken::parse 95
1       ( F3 ) End_Name
Entering DtaToken::parse 94
1       ( F2 ) Start_Name
Entering DtaToken::parse 93
14      ( AD ) 4D 61 78 50 61 63 6B 65 74 53 69 7A 65 ("MaxPacketSize")
Entering DtaToken::parse 79
3       ( 82 ) 2028 (7ECh)
Entering DtaToken::parse 76
1       ( F3 ) End_Name
Entering DtaToken::parse 75
1       ( F2 ) Start_Name
Entering DtaToken::parse 74
16      ( AF ) 4D 61 78 49 6E 64 54 6F 6B 65 6E 53 69 7A 65 ("MaxIndTokenSize")
Entering DtaToken::parse 58
3       ( 82 ) 1992 (7C8h)
Entering DtaToken::parse 55
1       ( F3 ) End_Name
Entering DtaToken::parse 54
1       ( F2 ) Start_Name
Entering DtaToken::parse 53
11      ( AA ) 4D 61 78 50 61 63 6B 65 74 73 ("MaxPackets")
Entering DtaToken::parse 42
1       ( 01 ) 1 (1h)
Entering DtaToken::parse 41
1       ( F3 ) End_Name
Entering DtaToken::parse 40
1       ( F2 ) Start_Name
Entering DtaToken::parse 39
14      ( AD ) 4D 61 78 53 75 62 70 61 63 6B 65 74 73 ("MaxSubpackets")
Entering DtaToken::parse 25
1       ( 01 ) 1 (1h)
Entering DtaToken::parse 24
1       ( F3 ) End_Name
Entering DtaToken::parse 23
1       ( F2 ) Start_Name
Entering DtaToken::parse 22
11      ( AA ) 4D 61 78 4D 65 74 68 6F 64 73 ("MaxMethods")
Entering DtaToken::parse 11
1       ( 01 ) 1 (1h)
Entering DtaToken::parse 10
1       ( F3 ) End_Name
Entering DtaToken::parse 9
1       ( F1 ) End_List
Entering DtaToken::parse 8
1       ( F3 ) End_Name
Entering DtaToken::parse 7
1       ( F1 ) End_List
Entering DtaToken::parse 6
1       ( F9 ) End_of_Data
Entering DtaToken::parse 5
1       ( F0 ) Start_List
Entering DtaToken::parse 4
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 3
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 2
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 1
1       ( F1 ) End_List
Entering hexDump
0000 00000000 10040000 00000000 00000000  ................
0010 000000b0 00000000 00000000 00000000  ................
0020 00000000 00000000 00000098 00000000  ................
0030 00000000 0000008c f8a80000 00000000  ................
0040 00ffa800 00000000 00ff01f0 f200f0f2  ................
0050 d0104d61 78436f6d 5061636b 65745369  ..MaxComPacketSi
0060 7a658208 00f3f2ad 4d617850 61636b65  ze......MaxPacke
0070 7453697a 658207ec f3f2af4d 6178496e  tSize......MaxIn
0080 64546f6b 656e5369 7a658207 c8f3f2aa  dTokenSize......
0090 4d617850 61636b65 747301f3 f2ad4d61  MaxPackets....Ma
00a0 78537562 7061636b 65747301 f3f2aa4d  xSubpackets....M
00b0 61784d65 74686f64 7301f3f1 f3f1f9f0  axMethods.......
00c0 000000f1                             ....
Entering DtaDevLinuxNvme::sendCmd
Security Send Command
NVME Security Command Success:0
Entering DtaDevLinuxNvme::sendCmd
Security Receive Command
NVME Security Command Success:0

Dumping reply buffer
<< IF_RECV >>
ComPacket.extendedComID    10040000
ComPacket.outstandingData  00000000
ComPacket.minTransfer      00000000
ComPacket.length           000001B4
Packet.TSN                 00000000
Packet.HSN                 00000000
Packet.seqNumber           00000000
Packet.ackType             00000000
Packet.acknowledgement     00000000
Packet.length              0000019C
DataSubPacket.kind         00000000
DataSubPacket.length       00000190
Entering DtaToken::parse 400
1       ( F8 ) Call
Entering DtaToken::parse 399
9       ( A8 ) 00 00 00 00 00 00 00 FF ("Session Manager UID")
Entering DtaToken::parse 390
9       ( A8 ) 00 00 00 00 00 00 FF 01 ("Session Properties Method UID")
Entering DtaToken::parse 381
1       ( F0 ) Start_List
Entering DtaToken::parse 380
1       ( F0 ) Start_List
Entering DtaToken::parse 379
1       ( F2 ) Start_Name
Entering DtaToken::parse 378
18      ( D0 10 ) 4D 61 78 43 6F 6D 50 61 63 6B 65 74 53 69 7A 65 ("MaxComPacketSize")
Entering DtaToken::parse 360
4       ( 83 ) 66048 (10200h)
Entering DtaToken::parse 356
1       ( F3 ) End_Name
Entering DtaToken::parse 355
1       ( F2 ) Start_Name
Entering DtaToken::parse 354
26      ( D0 18 ) 4D 61 78 52 65 73 70 6F 6E 73 65 43 6F 6D 50 61 63 6B 65 74 53 69 7A 65 ("MaxResponseComPacketSize")
Entering DtaToken::parse 328
4       ( 83 ) 66048 (10200h)
Entering DtaToken::parse 324
1       ( F3 ) End_Name
Entering DtaToken::parse 323
1       ( F2 ) Start_Name
Entering DtaToken::parse 322
14      ( AD ) 4D 61 78 50 61 63 6B 65 74 53 69 7A 65 ("MaxPacketSize")
Entering DtaToken::parse 308
4       ( 83 ) 66028 (101ECh)
Entering DtaToken::parse 304
1       ( F3 ) End_Name
Entering DtaToken::parse 303
1       ( F2 ) Start_Name
Entering DtaToken::parse 302
16      ( AF ) 4D 61 78 49 6E 64 54 6F 6B 65 6E 53 69 7A 65 ("MaxIndTokenSize")
Entering DtaToken::parse 286
4       ( 83 ) 65540 (10004h)
Entering DtaToken::parse 282
1       ( F3 ) End_Name
Entering DtaToken::parse 281
1       ( F2 ) Start_Name
Entering DtaToken::parse 280
11      ( AA ) 4D 61 78 50 61 63 6B 65 74 73 ("MaxPackets")
Entering DtaToken::parse 269
1       ( 01 ) 1 (1h)
Entering DtaToken::parse 268
1       ( F3 ) End_Name
Entering DtaToken::parse 267
1       ( F2 ) Start_Name
Entering DtaToken::parse 266
14      ( AD ) 4D 61 78 53 75 62 70 61 63 6B 65 74 73 ("MaxSubpackets")
Entering DtaToken::parse 252
1       ( 01 ) 1 (1h)
Entering DtaToken::parse 251
1       ( F3 ) End_Name
Entering DtaToken::parse 250
1       ( F2 ) Start_Name
Entering DtaToken::parse 249
11      ( AA ) 4D 61 78 4D 65 74 68 6F 64 73 ("MaxMethods")
Entering DtaToken::parse 238
1       ( 01 ) 1 (1h)
Entering DtaToken::parse 237
1       ( F3 ) End_Name
Entering DtaToken::parse 236
1       ( F2 ) Start_Name
Entering DtaToken::parse 235
20      ( D0 12 ) 4D 61 78 41 75 74 68 65 6E 74 69 63 61 74 69 6F 6E 73 ("MaxAuthentications")
Entering DtaToken::parse 215
1       ( 05 ) 5 (5h)
Entering DtaToken::parse 214
1       ( F3 ) End_Name
Entering DtaToken::parse 213
1       ( F2 ) Start_Name
Entering DtaToken::parse 212
12      ( AB ) 4D 61 78 53 65 73 73 69 6F 6E 73 ("MaxSessions")
Entering DtaToken::parse 200
1       ( 01 ) 1 (1h)
Entering DtaToken::parse 199
1       ( F3 ) End_Name
Entering DtaToken::parse 198
1       ( F2 ) Start_Name
Entering DtaToken::parse 197
21      ( D0 13 ) 4D 61 78 54 72 61 6E 73 61 63 74 69 6F 6E 4C 69 6D 69 74 ("MaxTransactionLimit")
Entering DtaToken::parse 176
1       ( 01 ) 1 (1h)
Entering DtaToken::parse 175
1       ( F3 ) End_Name
Entering DtaToken::parse 174
1       ( F2 ) Start_Name
Entering DtaToken::parse 173
19      ( D0 11 ) 44 65 66 53 65 73 73 69 6F 6E 54 69 6D 65 6F 75 74 ("DefSessionTimeout")
Entering DtaToken::parse 154
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 153
1       ( F3 ) End_Name
Entering DtaToken::parse 152
1       ( F1 ) End_List
Entering DtaToken::parse 151
1       ( F2 ) Start_Name
Entering DtaToken::parse 150
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 149
1       ( F0 ) Start_List
Entering DtaToken::parse 148
1       ( F2 ) Start_Name
Entering DtaToken::parse 147
18      ( D0 10 ) 4D 61 78 43 6F 6D 50 61 63 6B 65 74 53 69 7A 65 ("MaxComPacketSize")
Entering DtaToken::parse 129
3       ( 82 ) 2048 (800h)
Entering DtaToken::parse 126
1       ( F3 ) End_Name
Entering DtaToken::parse 125
1       ( F2 ) Start_Name
Entering DtaToken::parse 124
26      ( D0 18 ) 4D 61 78 52 65 73 70 6F 6E 73 65 43 6F 6D 50 61 63 6B 65 74 53 69 7A 65 ("MaxResponseComPacketSize")
Entering DtaToken::parse 98
3       ( 82 ) 2048 (800h)
Entering DtaToken::parse 95
1       ( F3 ) End_Name
Entering DtaToken::parse 94
1       ( F2 ) Start_Name
Entering DtaToken::parse 93
14      ( AD ) 4D 61 78 50 61 63 6B 65 74 53 69 7A 65 ("MaxPacketSize")
Entering DtaToken::parse 79
3       ( 82 ) 2028 (7ECh)
Entering DtaToken::parse 76
1       ( F3 ) End_Name
Entering DtaToken::parse 75
1       ( F2 ) Start_Name
Entering DtaToken::parse 74
16      ( AF ) 4D 61 78 49 6E 64 54 6F 6B 65 6E 53 69 7A 65 ("MaxIndTokenSize")
Entering DtaToken::parse 58
3       ( 82 ) 1992 (7C8h)
Entering DtaToken::parse 55
1       ( F3 ) End_Name
Entering DtaToken::parse 54
1       ( F2 ) Start_Name
Entering DtaToken::parse 53
11      ( AA ) 4D 61 78 50 61 63 6B 65 74 73 ("MaxPackets")
Entering DtaToken::parse 42
1       ( 01 ) 1 (1h)
Entering DtaToken::parse 41
1       ( F3 ) End_Name
Entering DtaToken::parse 40
1       ( F2 ) Start_Name
Entering DtaToken::parse 39
14      ( AD ) 4D 61 78 53 75 62 70 61 63 6B 65 74 73 ("MaxSubpackets")
Entering DtaToken::parse 25
1       ( 01 ) 1 (1h)
Entering DtaToken::parse 24
1       ( F3 ) End_Name
Entering DtaToken::parse 23
1       ( F2 ) Start_Name
Entering DtaToken::parse 22
11      ( AA ) 4D 61 78 4D 65 74 68 6F 64 73 ("MaxMethods")
Entering DtaToken::parse 11
1       ( 01 ) 1 (1h)
Entering DtaToken::parse 10
1       ( F3 ) End_Name
Entering DtaToken::parse 9
1       ( F1 ) End_List
Entering DtaToken::parse 8
1       ( F3 ) End_Name
Entering DtaToken::parse 7
1       ( F1 ) End_List
Entering DtaToken::parse 6
1       ( F9 ) End_of_Data
Entering DtaToken::parse 5
1       ( F0 ) Start_List
Entering DtaToken::parse 4
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 3
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 2
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 1
1       ( F1 ) End_List
Entering hexDump
0000 00000000 10040000 00000000 00000000  ................
0010 000001b4 00000000 00000000 00000000  ................
0020 00000000 00000000 0000019c 00000000  ................
0030 00000000 00000190 f8a80000 00000000  ................
0040 00ffa800 00000000 00ff01f0 f0f2d010  ................
0050 4d617843 6f6d5061 636b6574 53697a65  MaxComPacketSize
0060 83010200 f3f2d018 4d617852 6573706f  ........MaxRespo
0070 6e736543 6f6d5061 636b6574 53697a65  nseComPacketSize
0080 83010200 f3f2ad4d 61785061 636b6574  .......MaxPacket
0090 53697a65 830101ec f3f2af4d 6178496e  Size.......MaxIn
00a0 64546f6b 656e5369 7a658301 0004f3f2  dTokenSize......
00b0 aa4d6178 5061636b 65747301 f3f2ad4d  .MaxPackets....M
00c0 61785375 62706163 6b657473 01f3f2aa  axSubpackets....
00d0 4d61784d 6574686f 647301f3 f2d0124d  MaxMethods.....M
00e0 61784175 7468656e 74696361 74696f6e  axAuthentication
00f0 7305f3f2 ab4d6178 53657373 696f6e73  s....MaxSessions
0100 01f3f2d0 134d6178 5472616e 73616374  .....MaxTransact
0110 696f6e4c 696d6974 01f3f2d0 11446566  ionLimit.....Def
0120 53657373 696f6e54 696d656f 757400f3  SessionTimeout..
0130 f1f200f0 f2d0104d 6178436f 6d506163  .......MaxComPac
0140 6b657453 697a6582 0800f3f2 d0184d61  ketSize.......Ma
0150 78526573 706f6e73 65436f6d 5061636b  xResponseComPack
0160 65745369 7a658208 00f3f2ad 4d617850  etSize......MaxP
0170 61636b65 7453697a 658207ec f3f2af4d  acketSize......M
0180 6178496e 64546f6b 656e5369 7a658207  axIndTokenSize..
0190 c8f3f2aa 4d617850 61636b65 747301f3  ....MaxPackets..
01a0 f2ad4d61 78537562 7061636b 65747301  ..MaxSubpackets.
01b0 f3f2aa4d 61784d65 74686f64 7301f3f1  ...MaxMethods...
01c0 f3f1f9f0 000000f1                    ........
Entering  DtaResponse::init
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::getUint8
Entering  DtaResponse::getUint64
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::getUint8
Entering  DtaResponse::getUint64
Destroying DtaCommand
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getString
Entering  DtaResponse::getUint32
Entering  DtaResponse::getUint64
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getString
Entering  DtaResponse::getString
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getString
Entering  DtaResponse::getString
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getString
Entering  DtaResponse::getString
Entering  DtaResponse::getUint32
Entering  DtaResponse::getUint64
Leaving DtaDevOpal::properties()
Entering DtaDev::isOpal2 1
Destroying DtaDevOS
Destroying DtaDevLinuxNvme
Destroying DtaResponse
Destroying DtaResponse
Performing a PSID Revert on /dev/nvme0n1 with password 1KQ5PZDVGFUXNTG17FN0YRPSGAKXCK36
Entering DtaDevOpal::revertTPer() Creating DtaCommand()
Creating DtaSsession()
Entering DtaSession::dontHashPwd
Entering DtaSession::startSession
Entering DtaSession::startSession
Entering DtaDev::isEprise 0
Creating DtaCommand()
Creating  DtaResponse()
Entering DtaCommand::reset(OPAL_UID, OPAL_METHOD)
Entering DtaCommand::reset()
Entering DtaCommand::addToken(OPAL_UID)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(uint64_t)
Entering DtaCommand::addToken(OPAL_UID)
Entering DtaCommand::addToken(OPAL_TINY_ATOM)
Entering DtaDev::isEprise 0
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TINY_ATOM)
Entering DtaCommand::addToken(const char * )
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TINY_ATOM)
Entering addToken(vector<uint8_t>)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::complete(uint8_t EOD)
Entering DtaSession::sendCommand()
Entering DtaCommand::setHSN()
Entering DtaCommand::setTSN()
Entering DtaCommand::setcomID()

Dumping command buffer
<< IF_SEND >>
ComPacket.extendedComID    10040000
ComPacket.outstandingData  00000000
ComPacket.minTransfer      00000000
ComPacket.length           0000007C
Packet.TSN                 00000000
Packet.HSN                 00000000
Packet.seqNumber           00000000
Packet.ackType             00000000
Packet.acknowledgement     00000000
Packet.length              00000064
DataSubPacket.kind         00000000
DataSubPacket.length       00000058
Entering DtaToken::parse 88
1       ( F8 ) Call
Entering DtaToken::parse 87
9       ( A8 ) 00 00 00 00 00 00 00 FF ("Session Manager UID")
Entering DtaToken::parse 78
9       ( A8 ) 00 00 00 00 00 00 FF 02 ("StartSessionMethod")
Entering DtaToken::parse 69
1       ( F0 ) Start_List
Entering DtaToken::parse 68
2       ( 81 ) 105 (69h)
Entering DtaToken::parse 66
9       ( A8 ) 00 00 02 05 00 00 00 01 ("SP Admin")
Entering DtaToken::parse 57
1       ( 01 ) 1 (1h)
Entering DtaToken::parse 56
1       ( F2 ) Start_Name
Entering DtaToken::parse 55
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 54
34      ( D0 20 ) 31 4B 51 35 50 5A 44 56 47 46 55 58 4E 54 47 31 37 46 4E 30 59 52 50 53 47 41 4B 58 43 4B 33 36 ("1KQ5PZDVGFUXNTG17FN0YRPSGAKXCK36")
Entering DtaToken::parse 20
1       ( F3 ) End_Name
Entering DtaToken::parse 19
1       ( F2 ) Start_Name
Entering DtaToken::parse 18
1       ( 03 ) 3 (3h)
Entering DtaToken::parse 17
9       ( A8 ) 00 00 00 09 00 01 FF 01 ("........")
Entering DtaToken::parse 8
1       ( F3 ) End_Name
Entering DtaToken::parse 7
1       ( F1 ) End_List
Entering DtaToken::parse 6
1       ( F9 ) End_of_Data
Entering DtaToken::parse 5
1       ( F0 ) Start_List
Entering DtaToken::parse 4
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 3
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 2
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 1
1       ( F1 ) End_List
Entering hexDump
0000 00000000 10040000 00000000 00000000  ................
0010 0000007c 00000000 00000000 00000000  ...|............
0020 00000000 00000000 00000064 00000000  ...........d....
0030 00000000 00000058 f8a80000 00000000  .......X........
0040 00ffa800 00000000 00ff02f0 8169a800  .............i..
0050 00020500 00000101 f200d020 314b5135  ........... 1KQ5
0060 505a4456 47465558 4e544731 37464e30  PZDVGFUXNTG17FN0
0070 59525053 47414b58 434b3336 f3f203a8  YRPSGAKXCK36....
0080 00000009 0001ff01 f3f1f9f0 000000f1  ................
Entering DtaDevLinuxNvme::sendCmd
Security Send Command
NVME Security Command Success:0
Entering DtaDevLinuxNvme::sendCmd
Security Receive Command
NVME Security Command Success:0

Dumping reply buffer
<< IF_RECV >>
ComPacket.extendedComID    10040000
ComPacket.outstandingData  00000000
ComPacket.minTransfer      00000000
ComPacket.length           0000004C
Packet.TSN                 00000000
Packet.HSN                 00000000
Packet.seqNumber           00000000
Packet.ackType             00000000
Packet.acknowledgement     00000000
Packet.length              00000034
DataSubPacket.kind         00000000
DataSubPacket.length       00000025
Entering DtaToken::parse 37
1       ( F8 ) Call
Entering DtaToken::parse 36
9       ( A8 ) 00 00 00 00 00 00 00 FF ("Session Manager UID")
Entering DtaToken::parse 27
9       ( A8 ) 00 00 00 00 00 00 FF 03 ("SyncSession Method UID")
Entering DtaToken::parse 18
1       ( F0 ) Start_List
Entering DtaToken::parse 17
5       ( 84 ) 105 (69h)
Entering DtaToken::parse 12
5       ( 84 ) 4101 (1005h)
Entering DtaToken::parse 7
1       ( F1 ) End_List
Entering DtaToken::parse 6
1       ( F9 ) End_of_Data
Entering DtaToken::parse 5
1       ( F0 ) Start_List
Entering DtaToken::parse 4
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 3
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 2
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 1
1       ( F1 ) End_List
Entering hexDump
0000 00000000 10040000 00000000 00000000  ................
0010 0000004c 00000000 00000000 00000000  ...L............
0020 00000000 00000000 00000034 00000000  ...........4....
0030 00000000 00000025 f8a80000 00000000  .......%........
0040 00ffa800 00000000 00ff03f0 84000000  ................
0050 69840000 1005f1f9 f0000000 f1000000  i...............
Entering  DtaResponse::init
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::getUint8
Entering  DtaResponse::getUint64
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::getUint8
Entering  DtaResponse::getUint64
Entering  DtaResponse::getUint32
Entering  DtaResponse::getUint64
Entering  DtaResponse::getUint32
Entering  DtaResponse::getUint64
Entering  DtaResponse::getUint32
Entering  DtaResponse::getUint64
Entering  DtaResponse::getUint32
Entering  DtaResponse::getUint64
Entering  DtaResponse::getUint32
Entering  DtaResponse::getUint64
Entering  DtaResponse::getUint32
Entering  DtaResponse::getUint64
Entering  DtaResponse::getUint32
Entering  DtaResponse::getUint64
Entering  DtaResponse::getUint32
Entering  DtaResponse::getUint64
Destroying DtaCommand
Entering DtaDev::isEprise 0
Destroying DtaResponse
Entering DtaCommand::reset(OPAL_UID, OPAL_METHOD)
Entering DtaCommand::reset()
Entering DtaCommand::addToken(OPAL_UID)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::addToken(OPAL_TOKEN)
Entering DtaCommand::complete(uint8_t EOD)
Entering DtaSession::sendCommand()
Entering DtaCommand::setHSN()
Entering DtaCommand::setTSN()
Entering DtaCommand::setcomID()

Dumping command buffer
<< IF_SEND >>
ComPacket.extendedComID    10040000
ComPacket.outstandingData  00000000
ComPacket.minTransfer      00000000
ComPacket.length           00000040
Packet.TSN                 00001005
Packet.HSN                 00000069
Packet.seqNumber           00000000
Packet.ackType             00000000
Packet.acknowledgement     00000000
Packet.length              00000028
DataSubPacket.kind         00000000
DataSubPacket.length       0000001B
Entering DtaToken::parse 27
1       ( F8 ) Call
Entering DtaToken::parse 26
9       ( A8 ) 00 00 02 05 00 00 00 01 ("SP Admin")
Entering DtaToken::parse 17
9       ( A8 ) 00 00 00 06 00 00 02 02 ("Revert")
Entering DtaToken::parse 8
1       ( F0 ) Start_List
Entering DtaToken::parse 7
1       ( F1 ) End_List
Entering DtaToken::parse 6
1       ( F9 ) End_of_Data
Entering DtaToken::parse 5
1       ( F0 ) Start_List
Entering DtaToken::parse 4
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 3
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 2
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 1
1       ( F1 ) End_List
Entering hexDump
0000 00000000 10040000 00000000 00000000  ................
0010 00000040 00001005 00000069 00000000  [email protected]....
0020 00000000 00000000 00000028 00000000  ...........(....
0030 00000000 0000001b f8a80000 02050000  ................
0040 0001a800 00000600 000202f0 f1f9f000  ................
0050 0000f100                             ....
Entering DtaDevLinuxNvme::sendCmd
Security Send Command
NVME Security Command Success:0
Entering DtaDevLinuxNvme::sendCmd
Security Receive Command
NVME Security Command Success:0

Dumping reply buffer
<< IF_RECV >>
ComPacket.extendedComID    10040000
ComPacket.outstandingData  00000000
ComPacket.minTransfer      00000000
ComPacket.length           0000002C
Packet.TSN                 00001005
Packet.HSN                 00000069
Packet.seqNumber           00000000
Packet.ackType             00000000
Packet.acknowledgement     00000000
Packet.length              00000014
DataSubPacket.kind         00000000
DataSubPacket.length       00000008
Entering DtaToken::parse 8
1       ( F0 ) Start_List
Entering DtaToken::parse 7
1       ( F1 ) End_List
Entering DtaToken::parse 6
1       ( F9 ) End_of_Data
Entering DtaToken::parse 5
1       ( F0 ) Start_List
Entering DtaToken::parse 4
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 3
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 2
1       ( 00 ) 0 (0h)
Entering DtaToken::parse 1
1       ( F1 ) End_List
Entering hexDump
0000 00000000 10040000 00000000 00000000  ................
0010 0000002c 00001005 00000069 00000000  ...,.......i....
0020 00000000 00000000 00000014 00000000  ................
0030 00000000 00000008 f0f1f9f0 000000f1  ................
Entering  DtaResponse::init
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::tokenIs
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::getUint8
Entering  DtaResponse::getUint64
Entering  DtaResponse::getTokenCount()
Entering  DtaResponse::getUint8
Entering  DtaResponse::getUint64
revertTper completed successfully
Entering DtaSession::expectAbort()
Destroying DtaCommand
Destroying DtaSession
Creating  DtaResponse()
Destroying DtaResponse
Exiting DtaDevOpal::revertTPer()
@youk
Copy link

youk commented May 18, 2024

The Kernel flag libata.allow_tpm is not set correctly

It's not clear whether you set the kernel parameter or not. It is relevant (its name is misnomer some not especially bright Linux developer came up with).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants