NVMe Self-Study Bank: Identify and capability discovery
NVMe · Q1–328
Q44–Q53
Identify and capability discovery
Treat Identify as several distinct query interfaces. Choose the object and structure before CNS, CSI, NSID and other selectors. Separate capability, current configuration and changing lists to find real contradictions.
- CNS
- Controller or Namespace Structure, selecting Identify data
- CSI
- Command Set Identifier
- NSID
- Namespace Identifier
Each question is followed by its explanation. Start with the volume overview, then follow the field interpretations, comparisons or processes. Essential conditions and the normal path are visible from the start. All numerical examples are hypothetical. Status is written SCT/SC; h indicates hexadecimal.
- SCT
- Status Code Type
Choose the question before the Identify structure
Different CNS values answer different questions; allocated does not automatically mean accessible through this controller.
| Question | Query | How to use the response |
|---|---|---|
| Advertised controller capability | CNS=01h | Read OACS, ONCS, MDTS and their field conditions |
| Currently active namespaces | CNS=02h | Active list, not all allocated capacity |
| Allocated namespaces | CNS=10h with Namespace Management support | May include namespaces not attached to this controller |
| Format of one NVM namespace | CNS=00h; additionally CNS=05h, CSI=00h when applicable | Interpret NSZE/NCAP, FLBAS, LBAF and PI together |
| Command-set-independent namespace properties | CNS=08h | Keep separate from the NVM-specific LBA format structure |
- PI
- Protection Information
- LBA
- Logical Block Address
Worked interpretation: If Allocated={1,2} and this controller’s Active={1}, namespace 2 is absent from this active list; that does not establish deletion. Check attachment and relevant state, preserving controller identity and query time.
Sources: Base 2.4 §5.2.14.1 · Base 2.4 §5.2.14.2.1 · Base 2.4 §5.2.14.2.2–5.2.14.2.19, 5.2.14.3.1–5.2.14.3.2 · NVM Command Set 1.3 §4.1.5.1–4.1.5.4 · Base 2.4 §5.2.24–5.2.25, 8.1.17
Review the terminology when needed
- Controller / namespace
- A controller receives commands and manages access. A namespace is a logical storage space that commands can address. An NVM subsystem contains controllers and nonvolatile storage resources.
- SQ / CQ / SQE / CQE
- Submission and Completion Queues carry command entries (SQEs) and completion entries (CQEs). QID identifies a queue, CID distinguishes outstanding commands in one SQ, and NSID identifies a namespace.
- Register / Identify / Feature / Log
- A register exposes control or state. Identify queries capabilities and attributes; features query or configure operation; log pages report specific state or records. FID, LID, CNS and CSI select features, logs, Identify structures and command sets.
- index / offset / zero-based
- An index selects an entry, usually starting at 0; an offset measures distance from an origin in specified units. A zero-based count encodes count−1, but not every zero-valued field is a count. A Dword is 4 bytes; a byte is 8 bits.
- Scope / reset / retention
- Scope names the affected objects; retention means preserving state. Controller Reset (clearing CC.EN) is one form of Controller Level Reset, or CLR. Different CLR triggers can retain different registers.
Questions in this volume
- Q44 · What important information is provided by Identify Controller and Identify Namespace?
- Q45 · How do active, allocated and namespace descriptor lists differ?
- Q46 · What are Controller Lists, the UUID List and I/O Command Set Identify data used for?
- Q47 · Which Identify structures describe NVM Sets, Endurance Groups, Domains and Secondary Controllers?
- Q48 · How should unsupported or invalid CNS, CSI, NSID and UUID Index values be handled?
- Q49 · How are SN, MN, FR, MDTS and optional Admin capability fields interpreted?
- Q50 · How can advertised Identify support be cross-checked against commands and the Commands Supported and Effects Log?
- Q51 · Which Identify data and lists change after namespace creation, deletion, attachment, detachment or format?
- Q52 · Which Identify data may change after firmware activation, reset or power cycling?
- Q53 · How should inconsistencies among Identify, features, logs and command behavior be investigated?
Q44 What important information is provided by Identify Controller and Identify Namespace?
Follow the explanation
Separate controller capability from a particular namespace's capacity, format and protection configuration.
1. What differs
Controller data describes the receiving controller's view; NSID/CNS/CSI select namespace information.
Controller fields include SN/MN/FR, MDTS, OACS/ONCS, LPA and SQES/CQES. NVM Namespace includes NSZE/NCAP/NUSE, FLBAS/LBAF, MC/DPC/DPS, atomicity and group identifiers.
2. How to choose and verify
Main entry points are CNS 01h Controller and CNS 00h NVM Namespace; CNS 05h/06h are command-set specific, while CNS 08h is command-set independent Namespace data.
Read Controller and the active list, then the applicable structures for each namespace. Convert block counts using the currently selected LBA format.
- LBA
- Logical Block Address
Identify returns a 4096-byte structure and successful CQE. NSZE=8192 and LBADS=12 describe 32 MiB of logical address space.
- CQE
- Completion Queue Entry
3. Conditions that shape the comparison
Unsupported CNS uses Invalid Field (0/02h); an incompatible namespace command set uses Invalid I/O Command Set (1/2Ch). Apply CNS-specific NSID rules.
Controller opcode support does not make every namespace format or current state suitable; both levels must permit the operation.
Sources: Base 2.4 §5.2.14.1 · Base 2.4 §5.2.14.2.1 · NVM Command Set 1.3 §4.1.5.1–4.1.5.4 · Base 2.4 §5.2.14.2.2–5.2.14.2.19, 5.2.14.3.1–5.2.14.3.2 · 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)
Source locations for this question
Sources: Base 2.4 §5.2.14.1 · Base 2.4 §5.2.14.2.1 · NVM Command Set 1.3 §4.1.5.1–4.1.5.4 · Base 2.4 §5.2.14.2.2–5.2.14.2.19, 5.2.14.3.1–5.2.14.3.2 · 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)
Q45 How do active, allocated and namespace descriptor lists differ?
Follow the explanation
Separate accessibility through this controller, allocation/existence and the identity of one namespace.
1. What differs
The active list is controller-relative; the allocated list can include unattached namespaces; descriptors describe one NSID.
List NSID is a pagination cursor returning greater IDs. Descriptors contain NIDT/NIDL/NID for identifiers such as EUI64, NGUID, UUID and CSI.
2. How to choose and verify
CNS 02h queries active IDs, CNS 10h allocated IDs and CNS 03h namespace identification descriptors. Allocation queries depend on Namespace Management support.
Start list enumeration at NSID=0 and continue from returned IDs; for a descriptor query NSID selects the target, not a cursor.
Allocated={1,3,8} and Active={1,8} mean namespace 3 is allocated but not active here, not necessarily damaged.
3. Conditions that shape the comparison
CNS 02h/10h cursors FFFFFFFEh or FFFFFFFFh shall return Invalid Namespace or Format (0/0Bh); unsupported CNS uses 0/02h.
Correlate stable descriptor identifiers rather than assuming NSIDs never change. Restart enumeration when configuration changes compromise a consistent view.
Sources: Base 2.4 §5.2.14.2.2–5.2.14.2.19, 5.2.14.3.1–5.2.14.3.2 · Base 2.4 §3.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)
Source locations for this question
Sources: Base 2.4 §5.2.14.2.2–5.2.14.2.19, 5.2.14.3.1–5.2.14.3.2 · Base 2.4 §3.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)
Q46 What are Controller Lists, the UUID List and I/O Command Set Identify data used for?
Follow the explanation
Answer three different questions: which controllers can access, which vendor definition to use and which command sets can operate together.
1. What differs
Controller Lists describe relationships. The UUID List selects vendor-specific information and is not the namespace UUID descriptor.
CNTID is a list cursor or CNS-specific target; UIDX=0 selects no UUID. Each CNS 1Ch vector describes a simultaneously supported set combination.
2. How to choose and verify
CNS 12h lists controllers attached to a namespace, 13h subsystem I/O controllers, 17h the UUID List and 1Ch command-set combinations.
Select CNS and selectors for the question. After CNS 1Ch discovery, FID 19h.IOCSCI selects the combination index, not the CSI bitmap itself.
- FID
- Feature Identifier
Lists return identities/counts or UUID entries; command-set vectors advertise available combinations without automatically enabling them.
3. Conditions that shape the comparison
Unsupported CNS and CNS 12h NSID=FFFFFFFFh use 0/02h. Illegal UUID selection follows §8.1.31, not namespace-absence rules.
Keep CNTID and NSID roles separate and verify that FID 19h Current selects the intended vector.
- FID
- Feature Identifier
Sources: Base 2.4 §5.2.14.2.2–5.2.14.2.19, 5.2.14.3.1–5.2.14.3.2 · Base 2.4 §5.2.14.1 · Base 2.4 §8.1.31.1–8.1.31.2 · Base 2.4 §5.2.30.1.18 · 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)
Source locations for this question
Sources: Base 2.4 §5.2.14.2.2–5.2.14.2.19, 5.2.14.3.1–5.2.14.3.2 · Base 2.4 §5.2.14.1 · Base 2.4 §8.1.31.1–8.1.31.2 · Base 2.4 §5.2.30.1.18 · 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)
Q47 Which Identify structures describe NVM Sets, Endurance Groups, Domains and Secondary Controllers?
Follow the explanation
Establish resource membership instead of treating sets, groups, domains and controllers as interchangeable objects.
1. Select the target and information
Each list has its own IDs and capacity/resource fields. This question discovers information rather than changing capacity or virtualization state.
Check relevant CTRATT capabilities and OACS.VMS. CNS 04h,19h,18h and 14h/15h describe sets, endurance groups, domains and primary/secondary controllers respectively.
Set attributes include ENDGID; namespace data includes NVMSETID/ENDGID; domain entries include DID/TDC/UDC; secondary entries include SCID/PCID, state and VQ/VI counts.
2. Query sequence and interpretation
Trace namespace membership through sets/groups, domain capacity and primary/secondary resource information for allocated queues and interrupts.
Results provide related IDs/attributes. A zero field is not always a zero resource count; first establish support and field validity.
3. Handle missing or inconsistent evidence
Unsupported CNS uses 0/02h; cursors beyond existing IDs may return empty lists rather than errors.
Compare resources with queue allocations, valid QIDs and vectors. Primary capacity and secondary allocations are different quantities.
First check the selected primary controller and pagination starting point.
Sources: Base 2.4 §5.2.14.2.2–5.2.14.2.19, 5.2.14.3.1–5.2.14.3.2 · Base 2.4 §8.2.7 · Base 2.4 §5.2.14.2.1 · NVM Command Set 1.3 §4.1.5.1–4.1.5.4 · 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)
Source locations for this question
Sources: Base 2.4 §5.2.14.2.2–5.2.14.2.19, 5.2.14.3.1–5.2.14.3.2 · Base 2.4 §8.2.7 · Base 2.4 §5.2.14.2.1 · NVM Command Set 1.3 §4.1.5.1–4.1.5.4 · 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)
Q48 How should unsupported or invalid CNS, CSI, NSID and UUID Index values be handled?
Follow the explanation
Judge selectors by their actual roles rather than calling every Identify failure an invalid namespace.
1. Distinguish the failure conditions
The same NSID/CSI can be legal for one CNS and illegal for another; fix the CNS and prerequisites in each test.
For unused CNTID, the host clears it and the controller ignores it. For unused CSI, the host should clear it; the controller should ignore it but may return Invalid Field if nonzero.
Unsupported CNS:0/02h; incompatible namespace command set:1/2Ch; prohibited terminal cursors for CNS 02h/10h:0/0Bh. For UUID selection, an unsupported UUID for the requested information, an all-zero UUID or the NVMe Invalid UUID shall return 0/02h. CSI handling depends on whether the CNS uses CSI and on the namespace command set.
2. Establish the cause from evidence
Figure 336 specifies use of NSID/CNTID/CSI per CNS; UUID-selection capability controls UIDX use.
Hold other selectors constant, vary the target field and apply CNS-specific rules before generic defaults.
3. Outcome and follow-up checks
Valid queries return 4096 bytes. CNS 11h can return zero-filled data for a defined unallocated NSID, distinct from an invalid-NSID error.
Preserve CQE with CDW10/11/14; different selectors can produce the same 0/02h.
- CQE
- Completion Queue Entry
First check whether the CNS uses that selector. Ignoring an unused field is not automatically a validation omission.
Sources: Base 2.4 §5.2.14.1 · Base 2.4 §5.2.14.2.2–5.2.14.2.19, 5.2.14.3.1–5.2.14.3.2 · Base 2.4 §8.1.31.1–8.1.31.2 · Base 2.4 §4.2.3 · NVM Command Set 1.3 §4.1.5.1–4.1.5.4 · Base 2.4 §3.7.1–3.7.4 · 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)
Source locations for this question
Sources: Base 2.4 §5.2.14.1 · Base 2.4 §5.2.14.2.2–5.2.14.2.19, 5.2.14.3.1–5.2.14.3.2 · Base 2.4 §8.1.31.1–8.1.31.2 · Base 2.4 §4.2.3 · NVM Command Set 1.3 §4.1.5.1–4.1.5.4 · Base 2.4 §3.7.1–3.7.4 · 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)
Q49 How are SN, MN, FR, MDTS and optional Admin capability fields interpreted?
Follow the explanation
One large Identify structure combines identity strings, transfer limits and capability bitmaps, requiring different interpretation methods.
1. Establish the source and scope
SN/MN identify the subsystem, FR the active firmware, MDTS a transfer limit and OACS optional Admin capabilities.
In CNS 01h: SN bytes 23:4, MN63:24, FR71:64, MDTS byte 77 and OACS bytes 257:256.
2. Fields, units and worked interpretation
Decode ASCII strings and space padding. Nonzero MDTS limits bytes to 2^MDTS×2^(12+CAP.MPSMIN), not CC.MPS. MDTS=0 removes this limit, not all command-specific limits.
Confirm layout/offsets, then decode strings, bits and exponents separately. Check CTRATT.MEM when accounting for metadata in transfer length.
MPSMIN=0 and MDTS=5 give 128 KiB. With MEM=0, 32 blocks of 4096-byte data plus 16-byte metadata per block exceed it.
3. Conditions that change the interpretation
Exceeding MDTS returns Invalid Field (0/02h). Unsupported optional opcodes generally use 0/01h; a recent revision does not require all options.
Compare FR with the currently active firmware slot, not a pending slot; cross-check OACS with corresponding command-support entries.
Sources: Base 2.4 §5.2.14.2.1 · Base 2.4 §3.1.4 (CAP, VS) · Base 2.4 §1.4.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)
Source locations for this question
Sources: Base 2.4 §5.2.14.2.1 · Base 2.4 §3.1.4 (CAP, VS) · Base 2.4 §1.4.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)
Q50 How can advertised Identify support be cross-checked against commands and the Commands Supported and Effects Log?
Follow the explanation
Connect an advertised bit to a legal operation instead of validating the bit alone.
1. Select the target and information
Compare the same controller, command set, namespace configuration and time.
Check Identify support, LPA.CSES and the correct Admin/I/O opcode's CSUPP and effects in LID 05h.
- LID
- Log Page Identifier
Read CSUPP together with LBCC, NCC, NIC, CCC and CSE to understand data/capability/list changes and execution restrictions.
2. Query sequence and interpretation
Establish legal prerequisites, discover support, prepare valid parameters/resources, execute, verify result and rediscover information affected by the command.
Support means a legal supported operation exists, not that every parameter/state succeeds. Completion must also match the command's defined effect.
3. Handle missing or inconsistent evidence
0/01h may contradict opcode support, but Invalid Field, Namespace Not Ready or Lockdown first require checking parameters and state.
Commands Supported and Effects describes capability/effects, not recent execution history.
First check Admin versus I/O entry selection and CSI.
Sources: Base 2.4 §5.2.13.1.6 · Base 2.4 §5.2.14.2.1 · Base 2.4 §5.2.14.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)
Source locations for this question
Sources: Base 2.4 §5.2.13.1.6 · Base 2.4 §5.2.14.2.1 · Base 2.4 §5.2.14.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)
Q51 Which Identify data and lists change after namespace creation, deletion, attachment, detachment or format?
Follow the explanation
Connect configuration changes to rediscovery instead of continuing with stale capacity, format or attachment data.
1. Prepare the operation
Create/Delete change existence, Attach/Detach controller accessibility, and Format the data format within its defined scope.
OACS.NMS advertises namespace management; Format also uses OACS/FNA and NVM format support.
Separately inspect allocated/active lists, CNS 12h attached controllers and namespace format/capacity fields such as FLBAS/DPS/NSZE/NCAP.
2. Sequence and completion conditions
Capture before-state, wait for management completion, then reread affected lists/namespace data. Successful Create does not automatically attach the namespace.
Create adds to Allocated; Attach adds to the target Active list; Detach removes from that Active list without necessarily deallocating; Format updates the selected format rather than necessarily changing NSID.
3. Handle unmet conditions
A failed management command does not universally imply either every change occurred or none occurred; examine its failure/partial-operation rules and rediscover.
Correlate management results, lists, namespace data and applicable Changed Namespace notification. The event is not a full replacement for Identify configuration data.
4. Evidence supplied by the log
Check Changed Namespace List (LID 04h) alongside fresh Identify data. The list identifies changed NSIDs, not current configuration. RAE affects acknowledgement; preserve the event and list before subsequent queries.
- LID
- Log Page Identifier
Sources: Base 2.4 §5.2.14.2.2–5.2.14.2.19, 5.2.14.3.1–5.2.14.3.2 · NVM Command Set 1.3 §4.1.5.1–4.1.5.4 · Base 2.4 §5.2.24–5.2.25, 8.1.17 · Base 2.4 §5.2.13.1.6 · 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 2.4 §5.2.13.1.5, 5.2.13.1.14.2.6–5.2.13.1.14.2.8
Source locations for this question
Sources: Base 2.4 §5.2.14.2.2–5.2.14.2.19, 5.2.14.3.1–5.2.14.3.2 · NVM Command Set 1.3 §4.1.5.1–4.1.5.4 · Base 2.4 §5.2.24–5.2.25, 8.1.17 · Base 2.4 §5.2.13.1.6 · 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 2.4 §5.2.13.1.5, 5.2.13.1.14.2.6–5.2.13.1.14.2.8
Q52 Which Identify data may change after firmware activation, reset or power cycling?
Follow the explanation
Judge change by field semantics instead of requiring the whole 4096-byte buffer to remain identical.
1. Identify the trigger and affected objects
Separate stable identity, firmware-advertised capability, persistent configuration and dynamic state.
Preserve identity, namespace stable identifiers, FR, capabilities, capacity/format/attachments and dynamic fields as separate comparison groups.
2. State changes and recovery
FR describes active firmware. Rediscover MDTS/capabilities after an update; dynamic fields such as NUSE are not fixed identities.
Record whether reset/power cycling also activated firmware or changed configuration. Reread with identical selectors and compare by field definition.
Ordinary reset is not a rename, namespace deletion or format operation. Concurrent firmware activation can change FR and legitimately change advertised capabilities.
3. Verify retention and recovery
Comparison has no new status. For failed post-reset Identify distinguish incomplete initialization, invalid NSID and wrong CNS before attributing every difference to firmware.
Confirm object identity with stable IDs. Preserve raw bytes while separating padding, reserved/dynamic fields and meaningful changes.
First check concurrent pending firmware activation and accidental selection of another controller/namespace.
Sources: Base 2.4 §5.2.14.2.1 · Base 2.4 §4.7.1 · NVM Command Set 1.3 §4.1.5.1–4.1.5.4 · Base 2.4 §3.7.1–3.7.4 · Base 2.4 §5.2.13.1.6 · 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)
Source locations for this question
Sources: Base 2.4 §5.2.14.2.1 · Base 2.4 §4.7.1 · NVM Command Set 1.3 §4.1.5.1–4.1.5.4 · Base 2.4 §3.7.1–3.7.4 · Base 2.4 §5.2.13.1.6 · 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)
Q53 How should inconsistencies among Identify, features, logs and command behavior be investigated?
Follow the explanation
Build a complete evidence chain instead of letting one advertised capability override current conditions.
1. Preserve the evidence first
Hold controller, NSID, CSI, time and configuration constant; different views/times need not describe the same state.
Identify discovers capability, Get Features configuration, and logs state/events or effect declarations. Their roles differ.
Preserve SQE/CQE, raw Identify, Feature SEL and log selectors. Distinguish Current from Supported Capabilities.
- SQE
- Submission Queue Entry
2. Work through the possible causes
First verify that all evidence describes the same controller/namespace, configuration interval and selectors.
Check revision/decoding, scope/selectors, legal parameters, current state/order and result; isolate one variable when reproducing.
3. Connect observations to specification conditions
Consistency means the specified relationships hold, not equal numeric values. CHANG=1 and Current=0 can both be correct.
Use original SCT/SC for next steps and associated Error Information when More=1. A host timeout without status first requires locating the submission/completion stage.
- SCT
- Status Code Type
A defensible noncompliance conclusion requires fixed prerequisites, object and timing, plus a remaining contradiction with an explicit requirement.
Sources: Base 2.4 §5.2.14.1 · Base 2.4 §5.2.13.1.6 · Base 2.4 §4.4 · Base 2.4 §5.2.12 · Base 2.4 §5.2.13.1.2 · Base 2.4 §3.7.1–3.7.4 · Base 2.4 §4.2.3 · Base 2.4 §5.2.2 · Base 2.4 §5.2.13.1.14 (header, reset, hardware, Set Feature events)
Source locations for this question
Sources: Base 2.4 §5.2.14.1 · Base 2.4 §5.2.13.1.6 · Base 2.4 §4.4 · Base 2.4 §5.2.12 · Base 2.4 §5.2.13.1.2 · Base 2.4 §3.7.1–3.7.4 · Base 2.4 §4.2.3 · Base 2.4 §5.2.2 · Base 2.4 §5.2.13.1.14 (header, reset, hardware, Set Feature events)
Source locations and existing figure guides
Base printed page = PDF page−26; the other two use identical numbers. Locations follow the supplied PDF body and retain figure numbers. Shared pages contribute only the relevant definitions, excluding Fabrics and PCIe link/packet content.
- Base 2.4 · §1.4.1
Printed pages 2–3 · PDF 28–29 - Base 2.4 · §3.1.4 (CAP, VS)
Printed pages 54–59 · PDF 80–85 · Figure 36–37 - Base 2.4 · §3.2.1
Printed pages 78–81 · PDF 104–107 - Base 2.4 · §3.7.1–3.7.4
Printed pages 120–124 · PDF 146–150 - Base 2.4 · §4.2.3
Printed pages 145–155 · PDF 171–181 · Figure 101–105 - Base 2.4 · §4.4
Printed pages 166–169 · PDF 192–195 · Figure 126–127 - Base 2.4 · §4.7.1
Printed pages 173–175 · PDF 199–201 - Base 2.4 · §5.2.2
Printed pages 183–190 · PDF 209–216 · Figure 150–156 - Base 2.4 · §5.2.12
Printed pages 209–212 · PDF 235–238 · Figure 197–202 - Base 2.4 · §5.2.13.1.2
Printed pages 218–220 · PDF 244–246 · Figure 212 - Base 2.4 · §5.2.13.1.6
Printed pages 226–229 · PDF 252–255 · Figure 216–217 - Base 2.4 · §5.2.13.1.5, 5.2.13.1.14.2.6–5.2.13.1.14.2.8
Printed pages 226, 258–261 · PDF 252, 284–287 · Figure 247–249 - Base 2.4 · §5.2.13.1.14 (header, reset, hardware, Set Feature events)
Printed pages 244–256, 258, 262–264 · PDF 270–282, 284, 288–290 · Figure 232–244, 246, 252–253 - Base 2.4 · §5.2.14.1
Printed pages 336–340 · PDF 362–366 · Figure 332–337 - Base 2.4 · §5.2.14.2.1
Printed pages 340–387 · PDF 366–413 · Figure 338–341 - Base 2.4 · §5.2.14.2.2–5.2.14.2.19, 5.2.14.3.1–5.2.14.3.2
Printed pages 387–399, 402–404 · PDF 413–425, 428–430 · Figure 342–355, 360–362 - Base 2.4 · §5.2.24–5.2.25, 8.1.17
Printed pages 442–448, 660–664 · PDF 468–474, 686–690 · Figure 442–450 - Base 2.4 · §5.2.30.1.18
Printed pages 478–479 · PDF 504–505 · Figure 494–495 - Base 2.4 · §8.1.31.1–8.1.31.2
Printed pages 737–738 · PDF 763–764 · Figure 782 - Base 2.4 · §8.2.7
Printed pages 754–758 · PDF 780–784 · Figure 796 - NVM Command Set 1.3 · §4.1.5.1–4.1.5.4
Printed pages 84–107 · PDF 84–107 · Figure 123–130
When you need a field guide
Existing figure explanations have canonical locations; use these links instead of duplicating the same guide.
- Base 2.4 Figure 101 · Completion Queue Entry: Status Field
- Base 2.4 Figure 104 · Status Code – Command Specific Status Values
- Base 2.4 Figure 338 · Identify – Identify Controller Data Structure, I/O Command Set Independent
- Base 2.4 Figure 36 · Offset 0h: CAP – Controller Capabilities
- NVM Command Set 1.3 Figure 123 · Identify – Identify Namespace Data Structure, NVM Command Set
Original documents used
- 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


Comments