Skip to content

Silicon Motion SM2263 / ShiJi NVMe: standard temperature stuck at 313 K, vendor log page 0xC6 has a dynamic temperature-like value #3945

Description

@proxmox26-dot

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:

00 39 01 64 0a ...

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

  1. Is vendor-specific log page 0xC6 known for Silicon Motion SM2263 / SM2263XT controllers?

  2. Is there any public or existing nvme-cli/libnvme knowledge of the layout of this Silicon Motion log page?

  3. Is offset 0x50 known to represent a temperature, thermal state, or another controller parameter?

  4. Have similar devices or vendor-specific firmwares been observed to keep the standard SMART composite temperature fixed while exposing thermal information elsewhere?

  5. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions