Hi,
I am investigating an NVMe temperature reporting issue on a small Silicon Motion SM2263-based device.
I originally reported this to smartmontools:
smartmontools/smartmontools#633
Christian Franke suggested forwarding the vendor-specific log page question to the nvme-cli project.
Device
Model:
ShiJi 128GB M.2-NVMe
Firmware:
T1103N0L
PCI controller:
Silicon Motion SM2263EN/SM2263XT
PCI ID: 126f:2263
NVMe version:
1.3
nvme-cli:
2.13
libnvme:
1.13
OS:
Debian GNU/Linux 13 (trixie)
Kernel:
7.0.14-14-pve
Standard NVMe temperature
Both smartctl and nvme-cli report approximately 40 °C:
nvme smart-log /dev/nvme0
temperature : 40 °C (313 K)
The raw SMART / Health Information log page 0x02 contains:
The composite temperature field is therefore:
0x0139 = 313 K ~= 39.85 °C
A smartctl debug trace requested by the smartmontools maintainer confirms that this value comes directly from the device's standard NVMe SMART/Health log, rather than being a smartctl conversion issue.
Temperature Sensor 1 through Temperature Sensor 8 are all unset.
The device nevertheless reports thermal-management activity, including:
Warning Composite Temperature Time: 1
Thermal Management T1 Transition Count: 8
Thermal Management T1 Total Time: 4392
The smartmontools maintainer considers the fixed 313 K value a firmware bug unless the device has no temperature sensor.
Vendor-specific log page 0xC6
The device accepts:
nvme get-log /dev/nvme0 \
--log-id=0xC6 \
--log-len=512 \
--rae \
--raw-binary
During monitoring, byte offset 0x50 (decimal 80) changes dynamically.
Typical observed values are approximately:
66
67
68
69
70
71
...
74
75
while the standard NVMe composite temperature remains fixed at approximately 39.85/40 °C.
During a conservative read-only validation test, for example:
Standard SMART C6[0x50]
39.85 69
39.85 68
39.85 70
39.85 71
Longer-term monitoring also shows changes in C6[0x50] during system activity.
I am NOT claiming that C6[0x50] is definitively a temperature field. I have not found public Silicon Motion documentation for vendor log page 0xC6.
It is only an empirically observed dynamic value whose behavior appears temperature-like.
Questions
-
Is vendor-specific log page 0xC6 known for Silicon Motion SM2263 / SM2263XT controllers?
-
Is there any public or existing nvme-cli/libnvme knowledge of the layout of this Silicon Motion log page?
-
Is offset 0x50 known to represent a temperature, thermal state, or another controller parameter?
-
Have similar devices or vendor-specific firmwares been observed to keep the standard SMART composite temperature fixed while exposing thermal information elsewhere?
-
Would decoding such a vendor-specific page, if its format could be established reliably, belong in nvme-cli/libnvme, or should this remain entirely vendor-specific tooling?
I can provide sanitized raw dumps of log page 0xC6 and paired measurements if useful.
For privacy reasons I have not included the complete raw Identify Controller debug dump, because the subsystem NQN contains the device serial number even when smartctl is run with -q noserial.
Thanks.
Hi,
I am investigating an NVMe temperature reporting issue on a small Silicon Motion SM2263-based device.
I originally reported this to smartmontools:
smartmontools/smartmontools#633
Christian Franke suggested forwarding the vendor-specific log page question to the nvme-cli project.
Device
Model:
ShiJi 128GB M.2-NVMe
Firmware:
T1103N0L
PCI controller:
Silicon Motion SM2263EN/SM2263XT
PCI ID: 126f:2263
NVMe version:
1.3
nvme-cli:
2.13
libnvme:
1.13
OS:
Debian GNU/Linux 13 (trixie)
Kernel:
7.0.14-14-pve
Standard NVMe temperature
Both smartctl and nvme-cli report approximately 40 °C:
The raw SMART / Health Information log page 0x02 contains:
The composite temperature field is therefore:
A smartctl debug trace requested by the smartmontools maintainer confirms that this value comes directly from the device's standard NVMe SMART/Health log, rather than being a smartctl conversion issue.
Temperature Sensor 1 through Temperature Sensor 8 are all unset.
The device nevertheless reports thermal-management activity, including:
The smartmontools maintainer considers the fixed 313 K value a firmware bug unless the device has no temperature sensor.
Vendor-specific log page 0xC6
The device accepts:
During monitoring, byte offset 0x50 (decimal 80) changes dynamically.
Typical observed values are approximately:
while the standard NVMe composite temperature remains fixed at approximately 39.85/40 °C.
During a conservative read-only validation test, for example:
Longer-term monitoring also shows changes in C6[0x50] during system activity.
I am NOT claiming that C6[0x50] is definitively a temperature field. I have not found public Silicon Motion documentation for vendor log page 0xC6.
It is only an empirically observed dynamic value whose behavior appears temperature-like.
Questions
Is vendor-specific log page 0xC6 known for Silicon Motion SM2263 / SM2263XT controllers?
Is there any public or existing nvme-cli/libnvme knowledge of the layout of this Silicon Motion log page?
Is offset 0x50 known to represent a temperature, thermal state, or another controller parameter?
Have similar devices or vendor-specific firmwares been observed to keep the standard SMART composite temperature fixed while exposing thermal information elsewhere?
Would decoding such a vendor-specific page, if its format could be established reliably, belong in nvme-cli/libnvme, or should this remain entirely vendor-specific tooling?
I can provide sanitized raw dumps of log page 0xC6 and paired measurements if useful.
For privacy reasons I have not included the complete raw Identify Controller debug dump, because the subsystem NQN contains the device serial number even when smartctl is run with
-q noserial.Thanks.