Kernel driver kb9002

Supported chips:

  • Kandou KB9002

    Prefix: ‘kb9002’

    Addresses scanned: -

    Datasheet: KA-015171-PD (available from Kandou under NDA)

Author: Andy Chung <andy.chung@amd.com>

Description

The Kandou KB9002 is an 8-lane PCIe 5.0 retimer with an integrated microcontroller. It exposes an SMBus 3.0 target (with mandatory PEC) on its sideband interface. The internal firmware aggregates per-lane die temperatures and publishes the maximum value through a 16-bit addressed register window.

This driver reports that aggregated maximum as the only hwmon temperature channel. The running firmware version and the firmware boot status are exposed under debugfs.

sysfs interface

temp1_input

Aggregated maximum die temperature across all active lanes (millidegrees Celsius).

debugfs interface

Files live in the per-client debugfs directory created by the I2C core: /sys/kernel/debug/i2c/i2c-<bus>/<bus>-<addr>/.

fw_ver

Running firmware version in “major.minor.patch.suffix” format. Read-only.

fw_load_status

Firmware boot status: “normal” once firmware has finished initialising, “abnormal” otherwise. Read-only.

Notes

The driver requires I2C_FUNC_SMBUS_BLOCK_DATA, I2C_FUNC_SMBUS_PEC and I2C_FUNC_I2C from the host adapter. The last is needed only during probe for the host-interface mode switch; runtime accesses use SMBus block transactions exclusively.

The retimer’s SMBus address is configurable on three strap pins and ranges from 0x20 to 0x27. The address is selected through device tree (or i2c board info) the same way as any other I2C device; the driver does not auto-detect.