Overview & identity
Class 01:08 with programming interface 02 is the source-defined NVMe PCI match. Controller model/serial/firmware comes from NVMe Identify data, while namespaces are separately exposed block devices.
This is an explicit class, transport or driver-context profile. It is not an exact numeric product match.
A numeric match establishes a candidate family within the reviewed evidence. Marketing names, board variants, subsystem conditions and successful operation remain separate questions.
Driver & binding
The nvme PCI table ends with a class-based match as well as explicit quirk entries. A generic match establishes protocol context, not the absence of a device-specific quirk or the running driver’s success.
nvme— kernel driver/module candidate
Firmware
Device/revision dependent
Controller firmware, option ROM and drive firmware can be separate. The reviewed sources do not establish a host-loaded filename for this profile; firmware revision and update policy require the actual controller and OEM identity.
Read-only diagnostics
Run one displayed command at a time. Replace uppercase placeholders with the affected device, interface or module from your own output. Commands are never executed here. Read-only output can still contain private identifiers.
Read the class and bound driver
lspci -nnk -s BDFReplace BDF with the controller address. A class-derived nvme candidate establishes a protocol family only. Kernel driver in use is the observed binding; the PCI pair alone does not name the attached SSD.
Inspect visible block-device identities
lsblk -d -o NAME,MODEL,TRAN,HCTLMODEL describes a block device or a controller-presented logical volume; it is not a PCI-controller identity. HCTL helps distinguish SCSI targets. TRAN can be absent, and this list does not establish the complete physical disk topology.
Read controller and transport messages
sudo journalctl -k -b --no-pagerElevated access may be needed. Root reads the current boot kernel journal. Associate nvme messages, port/host identifiers and timeout/reset timestamps with the actual controller. A reset message alone does not prove a bad disk or a firmware defect.
Read NVMe controller identification
sudo nvme id-ctrl /dev/NVME_CONTROLLERElevated access may be needed. Requires nvme-cli and root access to the controller device. Replace NVME_CONTROLLER with a real name such as nvme0, not a namespace such as nvme0n1. Read mn, sn and fr; serial numbers may be sensitive when sharing output.
Limitations & related issues
An Identify model string and a healthy namespace do not guarantee every firmware power-state transition works. Idle/resume failures, I/O resets and filesystem errors must remain separate observations.
These guides are linked for relevant observations, not as known defects of every device in this family.
- NVMe I/O timeouts and controller resets · First documented next step
- NVMe fails after idle or resume · First documented next step
Choose a hardware diagnostic workflow · Inspect a log excerpt in Fix Lab
References
Source review records a checked implementation or document, not a reproduced hardware test. Version-specific tables do not establish a minimum kernel or guaranteed operation.
- Upstream Linux: drivers/nvme/host/pci.c
Reviewed upstream source
PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_EXPRESS; line 4307 - Upstream Linux: include/linux/pci_ids.h
Reviewed upstream source
PCI_CLASS_STORAGE_EXPRESS; line 27 - Upstream Linux: Documentation/nvme/feature-and-quirk-policy.rst
Project or distribution documentation
identifier-based quirks; line 63