NVMe · Q1–328

NVM Express Base 2.4NVM Command Set 1.3NVMe over PCIe Transport 1.4

Q237–Q245

Security 與 Lockdown

Security Send/Receive 承載協定資料;Lockdown 限制命令或 Feature。先分清資料交換結果與禁止範圍,再討論 reset 及斷電持續性。

每個問題都接著完整解說,依內容帶讀欄位、比較機制或追蹤流程。先看本冊總覽,再沿問題閱讀;必要條件與正常路徑直接顯示。所有數字案例均為教學假設;Status 以 SCT/SC 表示,代碼後的 h 代表十六進位。

SCT
Status Code Type,完成狀態代碼類型

傳輸成功、協定成功與允許執行

NVMe Success 不自動等於認證成功;被鎖定 Feature 的 Get 也不自動被禁止。

問題需要的資訊結果所在位置
資料有沒有交換Security CQENVMe 命令結果
安全操作是否成功SECP、SPSP、payload所選協定定義
命令是否被禁止IFC、CSEL、SCP、清單Lockdown 及目標 CQE
斷電後是否保留CSEL 與 LDPE範圍專屬規則
CQE
Completion Queue Entry,佇列中的完成項目

舉例看懂:CSEL=0、LDPE=1 的禁止可跨 Power Cycle 保留;CSEL=1/2 不能只因 LDPE=1 就取得同樣持續性。

來源:Base 2.4 §5.2.28–5.2.29 · Base 2.4 §5.2.16, 8.1.5 · Base 2.4 §5.2.13.1.20 · Base 2.4 §5.2.30.1.25.4–5.2.30.1.25.4.1

先把觀念接起來

教學 1 · 先指定安全協定,才談鎖定狀態

NVMe 定義如何送收安全資料,但不替所有外部協定定義相同的 session、金鑰與解鎖規則。若問題沒有指定協定,就不能可靠回答 Power Cycle 後一定解鎖或一定保留認證。教材會明確區分 NVMe 能證明的傳輸結果,以及仍需所選協定才能解讀的狀態。

教學 2 · Lockdown的目標是多個selector交集

想禁止某操作,必須同時選對介面、controller 範圍、opcode 或 FID 與 UUID。若只禁止 Admin 介面,另一個未被涵蓋的介面可能仍允許;若鎖的是 Set Features 的 FID,Get 仍可能正常。驗證前先寫出完整選擇條件,才知道哪個成功案例是真正漏鎖。

FID
Feature Identifier,功能識別碼

教學 3 · 彙整清單要看全部與部分的差別

一般全體視角與增強 FFFFh 視角的集合意義不同。增強清單裡 ACNTL=0 表示不是所有 controller 都受該項限制,並不表示完全沒有禁止。先確認查詢格式,再看是哪幾台受影響,避免將部分限制看成空清單。

需要時回顧本篇名詞
Controller / namespace
controller 接收命令並管理存取;namespace 是命令可指定的一份邏輯儲存空間。NVM subsystem 則包含 controller 與非揮發儲存資源,同一 subsystem 可以有多個 controller。
SQ / CQ / SQE / CQE
Submission Queue(SQ)是提交佇列,Completion Queue(CQ)是完成佇列;SQE 與 CQE 分別是其中的一筆命令及完成項目。QID 識別 queue,CID 區分同一 SQ 中尚未完成的命令,NSID 則識別 namespace。
Register / Identify / Feature / Log
Register 提供可存取的控制或狀態資訊;Identify 查詢物件的能力與屬性;Feature 用來讀取或變更工作設定;Log Page 回報特定種類的狀態或紀錄。FID、LID、CNS、CSI 則分別用來選擇 Feature、Log Page、Identify 資料結構及命令集。
index / offset / zero-based
index 指出清單中的第幾筆,通常從 0 起算;offset 表示與起點相隔多遠,解讀時必須確認單位。若數量欄位採 zero-based 編碼,實際數量等於欄位值加 1;但不是所有欄位看到 0 都要加 1。Dword 是 4 bytes,1 byte 是 8 bits。
Scope / reset / retention
scope 表示操作影響哪些物件;retention 表示狀態是否保留。清除 CC.EN 所觸發的 Controller Reset,是 Controller Level Reset(CLR)的一種。同屬 CLR 的不同觸發方式,仍可能採用不同的 Register 保留規則。

本冊題目

  1. Q237 · 如何確認 Security Send/Receive 與實際協定支援?
  2. Q238 · Security Protocol、欄位或資料長度不合法時如何處理?
  3. Q239 · Security 資料傳輸失敗應如何區分 Status 與協定錯誤?
  4. Q240 · Security 狀態如何影響其他 Admin Command?
  5. Q241 · Reset 與 Power Cycle 後 Security 狀態是否保留?
  6. Q242 · Lockdown 如何限制指定 Command 或 Feature?
  7. Q243 · 執行被 Lockdown 禁止的命令或 Feature 應如何回應?
  8. Q244 · Lockdown Log 的一般與增強格式如何解讀?
  9. Q245 · Reset 與 Power Cycle 後 Lockdown 是否保留?

Q237 如何確認 Security Send/Receive 與實際協定支援?

跟著解說理解

NVMe 命令支援與特定安全協定支援是兩層能力,先確認前者,才能安全解讀後者的回覆。

1. 要查哪個對象、哪份資料

OACS 描述 controller 的命令能力;協定探索回覆才說明它能處理哪些 SECP。

查 Identify.OACS 的 Security Send/Receive 支援,並核對 Commands Supported and Effects。

Security Receive 使用 SECP=00h 探索支援協定;這次查詢不需要先送 Security Send。

2. 查詢順序與回覆判讀

先探索,再依所選協定配置 SPSP、NSSF 與資料長度,後續 Send/Receive 配對依協定定義。

NVMe 成功表示命令完成;協定清單指出可繼續使用的安全協定,不表示已完成認證。

3. 證據不足或不一致時怎麼判斷

Security Receive 指定不支援 SECP 必須 Invalid Field in Command;完全不支援 Opcode 則是另一層命令支援問題。

Identify、效果 Log 與探索結果應一致,但不能因 Opcode 受支援就要求每個 SECP 都成功。

先檢查失敗出在 NVMe 命令層,還是選到未支援的安全協定。

來源:Base 2.4 §5.2.28–5.2.29 · Base 2.4 §5.2.16, 8.1.5 · Base 2.4 §5.2.13.1.20 · Base 2.4 §5.2.30.1.25.4–5.2.30.1.25.4.1 · Base 2.4 §5.2.14.2.1 · Base 2.4 §3.7.1–3.7.4 · Base 2.4 §4.2.3 · Base 2.4 §5.2.13.1.2 · Base 2.4 §5.2.2 · Base 2.4 §5.2.13.1.14 (header, reset, hardware, Set Feature events)

回本冊題目

Q238 Security Protocol、欄位或資料長度不合法時如何處理?

跟著解說理解

必須分清外層 NVMe 欄位與內層安全資料,否則容易期待錯的 Status。

1. 先區分是哪一種失敗

SECP、SPSP、NSSF 與 DPTR/長度都屬查證範圍,但 payload 格式由協定定義。

Receive 的 AL 與 Send 的 TL 依 Security Protocol In/Out、INC_512=0 的定義使用;不能當成 NVMe 一般 zero-based Dword 數。

Receive 不支援 SECP、Send 使用保留 SECP 須 Invalid Field。內層認證失敗可能以協定 payload 表示,不能全部改寫成 Invalid Field 或 Access Denied CQE。

2. 用哪些資料確認原因

先查 SECP 探索結果與 NVMe 命令支援,再選具體協定。

先核對 NVMe 欄位與 buffer 長度,再解析協定內容;NSSF 只在 EAh 的指定用途下有定義。

3. 結果與後續驗證

合法傳輸取得對應資料或協定回覆;應按協定結果決定認證或安全操作是否成功。

對同一測試記錄外層 CQE 與內層 result,避免把兩者混為一個錯誤碼。

先按 AL/TL 的單位核對傳輸長度與 buffer 容量,確認資料已完整送達後,再依安全協定的回覆檢查認證資料。

來源:Base 2.4 §5.2.28–5.2.29 · Base 2.4 §5.2.16, 8.1.5 · Base 2.4 §5.2.13.1.20 · Base 2.4 §5.2.30.1.25.4–5.2.30.1.25.4.1 · Base 2.4 §5.2.14.2.1 · Base 2.4 §3.7.1–3.7.4 · Base 2.4 §4.2.3 · Base 2.4 §5.2.13.1.2 · Base 2.4 §5.2.2 · Base 2.4 §5.2.13.1.14 (header, reset, hardware, Set Feature events)

回本冊題目

Q239 Security 資料傳輸失敗應如何區分 Status 與協定錯誤?

跟著解說理解

資料根本沒有正確傳送,與資料送到後協定拒絕,是不同故障階段。

1. 先區分是哪一種失敗

先看 NVMe 命令,再看所選安全協定;同一個安全動作可能涉及多筆 Send/Receive。

Data Transfer Error 表示命令資料傳輸問題;安全結果可能另外以協定欄位回報,不能只靠字面上的「Security」決定 Status。

未支援欄位、傳輸錯誤、內部錯誤與認證拒絕各有不同前提;沒有「所有安全失敗都回同一 Status」的規則。

2. 用哪些資料確認原因

保存完整 SQE、DPTR、長度、CQE 與有效的 Receive payload。

SQE
Submission Queue Entry,佇列中的命令項目

先檢查 CQE 是否允許信任回傳資料,再依協定解碼;失敗傳輸的舊 buffer 內容不能當新回覆。

3. 結果與後續驗證

成功 CQE 只證明該 NVMe 命令成功完成,還需讀協定結果才知道操作是否獲准。

將兩層結果與先後順序對回原始 request,避免讀到上一個 exchange 的結果。

先檢查是不是把成功傳輸的「協定拒絕」誤認成 DMA 失敗。

DMA
Direct Memory Access,裝置直接存取記憶體

來源:Base 2.4 §5.2.28–5.2.29 · Base 2.4 §5.2.16, 8.1.5 · Base 2.4 §5.2.13.1.20 · Base 2.4 §5.2.30.1.25.4–5.2.30.1.25.4.1 · Base 2.4 §5.2.14.2.1 · Base 2.4 §3.7.1–3.7.4 · Base 2.4 §4.2.3 · Base 2.4 §5.2.13.1.2 · Base 2.4 §5.2.2 · Base 2.4 §5.2.13.1.14 (header, reset, hardware, Set Feature events)

回本冊題目

Q240 Security 狀態如何影響其他 Admin Command?

跟著解說理解

安全協定可能限制其他操作,但不能用一個抽象的「Locked」推論所有 Admin 都被禁止。

1. 機制與適用範圍

影響範圍由協定、保護對象與 NVMe 明定互動共同決定。

Security Send/Receive 傳送協定;Lockdown 是另一个命令禁止機制;Namespace Write Protection 又控制另一種存取狀態。

2. 用操作與結果理解

確認實際 SECP/安全狀態、Lockdown Log,以及適用的 Security Personality 設定。

先判斷被拒命令與範圍,再確認哪一項機制要求拒絕,最後對照該機制指定的 Status。

被允許的查詢仍可能正常運作;解除一種限制不保證其他限制一起解除。

3. 容易誤判的地方

不能把所有拒絕都要求回 Command Prohibited by Lockdown;只有符合 Lockdown 條件才使用該通用 SC23h。

原始協定回覆、Lockdown 清單與命令行為要分層吻合,不能混用安全狀態名稱。

來源:Base 2.4 §5.2.28–5.2.29 · Base 2.4 §5.2.16, 8.1.5 · Base 2.4 §5.2.13.1.20 · Base 2.4 §5.2.30.1.25.4–5.2.30.1.25.4.1 · Base 2.4 §5.2.14.2.1 · Base 2.4 §3.7.1–3.7.4 · Base 2.4 §4.2.3 · Base 2.4 §5.2.13.1.2 · Base 2.4 §5.2.2 · Base 2.4 §5.2.13.1.14 (header, reset, hardware, Set Feature events)

回本冊題目

Q241 Reset 與 Power Cycle 後 Security 狀態是否保留?

跟著解說理解

原問題必須指定「哪個安全協定的哪個狀態」,才會有可驗證的保留答案。

1. 先界定觸發方式與影響對象

長期金鑰、持久鎖定設定、暫時 session 與待取的 Receive 資料,不是同一種狀態。

記錄 SECP、協定版本、操作前狀態與 Reset 來源;三份 NVMe 規格只提供其明定的傳輸邊界。

2. 哪些狀態改變,恢復後怎麼處理

Base 明定失聯或 CLR 可能不保留 Security Receive 資料;這不等於永久設定被擦除。

恢復後重新建立需要的交換並查詢狀態,再依協定確認是否需重新認證。

正確結果是符合已指定協定的保留規則,而不是所有狀態一律保留或一律清空。

3. 重設或斷電時,要確認什麼

觸發方式這項操作或狀態會如何變化
Controller Reset 後是否保留或繼續?CLR 後 Security Receive 待取的結果可能不保留。安全鎖定、認證 session 與金鑰的持續性由所選協定決定,不能把失去傳輸結果解讀成自動解鎖或清除金鑰。
NVM Subsystem Reset 後是否保留或繼續?Subsystem Reset 後重新確認通訊及協定狀態。NVMe Base 不給所有 Security Protocol 一個共同的認證或鎖定保留答案,因此測試須先指定協定與狀態。
Power Cycle 後是否保留或繼續?Power Cycle 後不能只因 NVMe queues 已重建,就推論安全狀態回到未鎖定。以協定的持久設定、session 規則與查詢結果判斷;未指定協定時,結論只能是 NVMe 三份來源未定義。

4. 如何驗證保留或恢復結果

協定未指定時,不得捏造固定 Status、解鎖結果或金鑰處理;應明確標示來源未定義的部分。

把傳輸重新初始化、session 重建與持久設定驗證拆成三項,比單看命令成功更可靠。

先檢查題目中的「Security 狀態」究竟指哪個欄位或協定物件。

來源:Base 2.4 §5.2.28–5.2.29 · Base 2.4 §5.2.16, 8.1.5 · Base 2.4 §5.2.13.1.20 · Base 2.4 §5.2.30.1.25.4–5.2.30.1.25.4.1 · Base 2.4 §5.2.14.2.1 · Base 2.4 §3.7.1–3.7.4 · Base 2.4 §4.2.3 · Base 2.4 §5.2.13.1.2 · Base 2.4 §5.2.2 · Base 2.4 §5.2.13.1.14 (header, reset, hardware, Set Feature events)

回本冊題目

Q242 Lockdown 如何限制指定 Command 或 Feature?

跟著解說理解

Lockdown 限制命令在選定介面與 controller 執行,用來控制管理入口;它不是加密資料或設定 namespace 唯讀。

1. 操作前先準備什麼

CSEL=0 選 subsystem,1 選指定 controller,2 選指定 primary 的 secondary 群組;IFC 另選收命令的介面。

查 OACS.CFLS/CCFLS 與 LID14h 的可禁止清單;哪些 Opcode/FID 可禁止由實作宣告。

CDW10.SCP 選 Admin Opcode 或 Set Features FID,OFI 指目標,PRHBT=1 禁止、0 允許;CDW14.CSS 選 controller,必要時 UIDX 選定義。

2. 先後順序與完成條件

先查能力與清單,再送 Lockdown,等成功後讀目前禁止清單,最後以相同介面驗證目標命令。

成功後選定目標受限制;重複禁止已禁止項目,或允許已允許項目,都不是錯誤。

3. 未符合條件時如何處理

不可禁止項目必須回命令特定 Prohibition of Command Execution Not Supported;不支援 CCFLS 卻指定非零 CSEL 須 Invalid Field。

一個 FID 被禁止是阻止 Set,不是同時禁止 Get;也不等於 Set Features 全部 Opcode 被禁止。

來源:Base 2.4 §5.2.28–5.2.29 · Base 2.4 §5.2.16, 8.1.5 · Base 2.4 §5.2.13.1.20 · Base 2.4 §5.2.30.1.25.4–5.2.30.1.25.4.1 · Base 2.4 §5.2.14.2.1 · Base 2.4 §3.7.1–3.7.4 · Base 2.4 §4.2.3 · Base 2.4 §5.2.13.1.2 · Base 2.4 §5.2.2 · Base 2.4 §5.2.13.1.14 (header, reset, hardware, Set Feature events)

回本冊題目

Q243 執行被 Lockdown 禁止的命令或 Feature 應如何回應?

跟著解說理解

成功設下禁止後,還要驗證目標操作真的被阻擋,不能只看到設定命令成功就結束。

1. 先區分是哪一種失敗

條件包含目標 controller、收到命令的介面、Opcode 或 Set FID,以及適用 UUID。

Admin SQ 上收到符合禁止條件的命令,必須中止並回 Command Prohibited by Command and Feature Lockdown,SCT=0、SC=23h。

SQ
Submission Queue,提交佇列
SCT
Status Code Type,完成狀態代碼類型

Lockdown 命令自己不被支援或參數非法,與已禁止的目標命令被拒絕,是不同 Status。Personality 的 CDP Authentication 明定例外也要保留。

2. 用哪些資料確認原因

讀目前禁止清單,並確認原 Lockdown 的 CQE 與所選範圍。

先成功建立禁止,再送一筆其餘參數合法的目標命令,最後查 CQE 及操作是否未執行。

3. 結果與後續驗證

驗證中的預期成功,是禁止生效而目標命令被拒絕;不是要求目標也回 Successful Completion。

LDPE 啟用且符合 authenticated unfreeze 支援條件時,指定 CDP Authentication 的 Security Send/Receive 必須允許,即使先前被禁止。

先檢查是否測到錯誤介面、錯誤 controller,或規範明定的允許例外。

來源:Base 2.4 §5.2.28–5.2.29 · Base 2.4 §5.2.16, 8.1.5 · Base 2.4 §5.2.13.1.20 · Base 2.4 §5.2.30.1.25.4–5.2.30.1.25.4.1 · Base 2.4 §5.2.14.2.1 · Base 2.4 §3.7.1–3.7.4 · Base 2.4 §4.2.3 · Base 2.4 §5.2.13.1.2 · Base 2.4 §5.2.2 · Base 2.4 §5.2.13.1.14 (header, reset, hardware, Set Feature events)

回本冊題目

Q244 Lockdown Log 的一般與增強格式如何解讀?

跟著解說理解

Log 分開回報「可以禁止」與「目前禁止」,這兩份清單不能互換。

1. 先確認資料的來源與範圍

一般格式的部分清單描述全體 controller;增強格式可指定單台或以 FFFFh 彙整至少一台回報的項目。

查 CFLS、CCFLS;ELPF=1 需要 controller-scoped 支援,LSI.CNTLID 只在增強格式使用。

2. 欄位、單位與判讀例子

LSP.CNTTS=0 可禁止、1 Admin 已禁止、2 帶外已禁止;SCP 選 Opcode/FID。一般 LNGTH 是 bytes 數;增強依 SZE、NCFID、CFIDS 解析 descriptors。

先確定查詢條件,再檢查 Header 回報的 CS/SS。增強 FFFFh 清單中 ACNTL=1 表示全體,0 表示至少一台但非全體。

例如兩台中只有 controller1 禁止 FID12h,增強彙整可列它且 ACNTL=0;不能因此說「沒有禁止」。

3. 判讀時要保留的條件

不支援 CCFLS 卻要求增強格式須 Invalid Field;不能把每份增強 Log 固定當成 512 bytes。

以特定 controller 查詢驗證彙整清單,再比較實際命令,避免把聯集誤看成交集。

來源:Base 2.4 §5.2.28–5.2.29 · Base 2.4 §5.2.16, 8.1.5 · Base 2.4 §5.2.13.1.20 · Base 2.4 §5.2.30.1.25.4–5.2.30.1.25.4.1 · Base 2.4 §5.2.14.2.1 · Base 2.4 §3.7.1–3.7.4 · Base 2.4 §4.2.3 · Base 2.4 §5.2.13.1.2 · Base 2.4 §5.2.2 · Base 2.4 §5.2.13.1.14 (header, reset, hardware, Set Feature events)

回本冊題目

Q245 Reset 與 Power Cycle 後 Lockdown 是否保留?

跟著解說理解

持續性取決於 CSEL 與 Lockdown Persistence,不能只用「Lockdown 已啟用」一個布林值判斷。

1. 先界定觸發方式與影響對象

先區分 subsystem 禁止與指定 controller/secondary 群組禁止。

保存原 Lockdown 的 CSEL、PRHBT、IFC 與目標,並讀 Personality 的實際 LDPS。

2. 哪些狀態改變,恢復後怎麼處理

LDPE 是設定輸入,LDPS 是回覆狀態;前者寫入不等於後者必然已成功生效。

重設前讀清單,執行指定種類的 Reset 或 Power Cycle,再以相同 selector 讀回並驗證目標命令。

一般 Reset 保留禁止;Power Cycle 後 CSEL0 依 LDPS 保留或解除,CSEL1/2 不取得跨斷電持續性。

3. 重設或斷電時,要確認什麼

觸發方式這項操作或狀態會如何變化
Controller Reset 後是否保留或繼續?成功建立的禁止狀態不因一般 CLR 解除;要允許命令,需合法的後續 Lockdown 操作,或符合指定的 power-cycle 解除條件。
NVM Subsystem Reset 後是否保留或繼續?Subsystem Reset 不等於 Power Cycle,不能用它自動解除禁止。仍要保留相同 scope 的狀態,並考慮 personality 明定的例外。
Power Cycle 後是否保留或繼續?CSEL=0 的 subsystem 禁止,LDPE=1 時跨 Power Cycle 保留,直到後續操作解除;LDPE=0 則在 Power Cycle 解除。CSEL=1/2 的禁止到 Power Cycle 為止,不因 LDPE=1 就取得跨斷電持續性。

4. 如何驗證保留或恢復結果

不能因 Subsystem Reset 沒解除就當作失敗,也不能因 LDPE=1 就要求所有 controller-scoped 禁止跨斷電存在。

同時核對範圍、實際 personality 狀態與重設種類,才能得出唯一預期。

先檢查是否把 Controller Reset、Subsystem Reset 與真的斷電混稱為 Reset。

來源:Base 2.4 §5.2.28–5.2.29 · Base 2.4 §5.2.16, 8.1.5 · Base 2.4 §5.2.13.1.20 · Base 2.4 §5.2.30.1.25.4–5.2.30.1.25.4.1 · Base 2.4 §5.2.14.2.1 · Base 2.4 §3.7.1–3.7.4 · Base 2.4 §4.2.3 · Base 2.4 §5.2.13.1.2 · Base 2.4 §5.2.2 · Base 2.4 §5.2.13.1.14 (header, reset, hardware, Set Feature events)

回本冊題目

原文定位與既有圖表判讀

Base 的文件頁碼等於 PDF 頁碼減 26;NVM 與 PCIe 兩份規格的文件頁碼則與 PDF 頁碼相同。以下依提供的 PDF 本文列出章節、頁碼及 Figure 編號。若同一頁包含其他主題,只引用本題需要的定義,不納入 Fabrics 或 PCIe Link、封包內容。

  • Base 2.4 · §3.7.1–3.7.4
    文件頁 120–124 · PDF 146–150
  • Base 2.4 · §4.2.3
    文件頁 145–155 · PDF 171–181 · Figure 101–105
  • Base 2.4 · §5.2.2
    文件頁 183–190 · PDF 209–216 · Figure 150–156
  • Base 2.4 · §5.2.13.1.2
    文件頁 218–220 · PDF 244–246 · Figure 212
  • Base 2.4 · §5.2.13.1.14 (header, reset, hardware, Set Feature events)
    文件頁 244–256, 258, 262–264 · PDF 270–282, 284, 288–290 · Figure 232–244, 246, 252–253
  • Base 2.4 · §5.2.13.1.20
    文件頁 279–283 · PDF 305–309 · Figure 274–278
  • Base 2.4 · §5.2.14.2.1
    文件頁 340–387 · PDF 366–413 · Figure 338–341
  • Base 2.4 · §5.2.16, 8.1.5
    文件頁 405–408, 597–599 · PDF 431–434, 623–625 · Figure 365–367
  • Base 2.4 · §5.2.28–5.2.29
    文件頁 454–456 · PDF 480–482 · Figure 456–462
  • Base 2.4 · §5.2.30.1.25.4–5.2.30.1.25.4.1
    文件頁 493–494 · PDF 519–520 · Figure 518–519

需要看欄位圖時

以下連結可開啟對應的圖表教學,查閱欄位及判讀方式。每張圖保留固定的教學位置,方便之後反覆查詢。

使用的原始文件
  • NVM Express Base Specification · Revision 2.4 · 2026-07-31
    NVM-Express-Base-Specification-Revision-2.4-Ratified-2026.07.31.pdf
  • NVM Express NVM Command Set Specification · Revision 1.3 · 2026-07-31
    NVM-Express-NVM-Command-Set-Specification-Revision-1.3-Ratified-2026.07.31.pdf
  • NVM Express NVMe over PCIe Transport Specification · Revision 1.4 · 2026-07-31
    NVM-Express-NVMe-over-PCIe-Transport-Specification-Revision-1.4-Ratified-2026.07.31.pdf