i2c-imc-skylake: validate the write path end to end
The driver advertises SMBus byte and word writes but no write to a real device had been exercised in this cycle. Engine-level evidence existed -- a write to an unpopulated address returns -ENXIO with the address NACK reported, so writes are issued rather than suppressed -- but nothing showed a populated device accepting one. Driven through the sibling project's CLI, which uses the framing decoded in its own protocol notes: a 12-write frame to the LED controller at 0x27 on both channels, latch open, effect id, brightness, three colour bytes, latch commit. Every write acknowledged, no NACK, no interference reported, and the device applied the result. This also settles SMB_DIS_WRT, which is set in the documented SMBCNTL and is SMM-writable only: it governs the documented interface, not this path. No SPD was written at any point. The four SPD EEPROMs were verified present with valid CRCs before and after every experiment in this cycle.
This commit is contained in:
@@ -149,16 +149,16 @@ Validation
|
|||||||
on this system.
|
on this system.
|
||||||
- SMBCNTL on all four iMC channels reads 0xac000000: TSOD polling
|
- SMBCNTL on all four iMC channels reads 0xac000000: TSOD polling
|
||||||
disabled, TSOD_PRESENT empty.
|
disabled, TSOD_PRESENT empty.
|
||||||
- Write transactions reach the bus: a byte write to an unpopulated
|
- Writes validated end to end against a populated device: a 12-write
|
||||||
address returns -ENXIO with the engine reporting the address NACK, so
|
frame to an LED controller at 0x27, across both channels, every write
|
||||||
the write path is issued rather than suppressed. An end-to-end write
|
acknowledged, no NACK, and the device applied the result. A byte
|
||||||
to a populated device is not part of this validation; the only
|
write to an unpopulated address returns -ENXIO with the engine
|
||||||
non-SPD device on the test system is an LED controller whose reads are
|
reporting the address NACK. No SPD was written at any point, and the
|
||||||
themselves unreliable, and SPD writes were out of scope.
|
four SPD EEPROMs were verified present with valid CRCs before and
|
||||||
|
after.
|
||||||
|
|
||||||
Still missing: an independent Tested-by, ideally on Skylake-X rather than
|
Still missing: an independent Tested-by, ideally on Skylake-X rather than
|
||||||
Cascade Lake-X, suspend/resume testing with active I2C clients, and an
|
Cascade Lake-X, and suspend/resume testing with active I2C clients.
|
||||||
end-to-end write to a populated device.
|
|
||||||
|
|
||||||
One note on the register interface, since a reader with the datasheet will
|
One note on the register interface, since a reader with the datasheet will
|
||||||
ask. That document describes an SMBus interface on the iMC channel
|
ask. That document describes an SMBus interface on the iMC channel
|
||||||
|
|||||||
Reference in New Issue
Block a user