Re: [PATCH v3 1/1] i2c: imc-skylake: add Intel Skylake-X iMC SMBus adapter

From: Simone Chifari

Date: Tue Sep 29 2026 - 12:57:32 EST


On Mon, Sep 28, 2026 at 10:06:26AM +0200, Adamyno wrote:
> I tested this driver end-to-end on real hardware. Code as published at
> https://github.com/systempal/i2c-imc-skylake (matching the v3/v4 series;
> the v4 rework did not change anything relevant to this test).

Hi Adamyno,

thanks for testing, and for the detailed report. It is the first
report from a board other than mine, and it will go into the next
cover letter as such: a second vendor and BIOS, SMBCNTL reading 0 where
mine reads 0xac000000, ee1004 on all eight modules, and the RGB write
traffic through both adapters.

For the record, since the tag lands on the v3 thread: the GitHub main
you tested has the same transfer path as v4 and only adds shutdown
handling that is not part of the series. I will carry

Tested-by: Adamyno <padamyno@xxxxxxxxx>

in the next revision, unless v4 is applied as is.

If you have time for more, two read-only measurements would help with
the question this series still leaves open: whether the firmware uses
the engine behind the driver's back. The numbers in the v4 cover letter
come from my board only, and yours has a different BIOS. Both scripts
are in tools/ of the same repository (see tools/README.md) and only
read config space:

# OpenRGB closed, driver unloaded: anything that moves is firmware
sudo modprobe -r i2c_imc_skylake
sudo ./tools/watch-engine.sh --seconds 3600
sudo ./tools/dump-pcu-config.sh --settle 10

The raw output is what matters, and it would be credited to you in the
cover letter. A suspend/resume cycle during the watch-engine hour would
make it even more useful.

> One observation that may be worth adding to the driver documentation:
> the RGB controller ICs on G.Skill Trident Z RGB DIMMs answer at SMBus
> addresses 0x70-0x73 on this bus (4 per channel), not the 0x39-0x3D
> range that older OpenRGB-era documentation assumed.

Useful to know, but I think it fits OpenRGB's documentation better
than the driver's: the driver does not know about the devices behind
it, and ENE controllers can be re-addressed at runtime (OpenRGB's
detector does exactly that), so the address depends on the modules and
on the firmware or software that set them up.

Thanks,
Simone