[i2c] i2c or eeprom enumeration problem

Jean Delvare khali at linux-fr.org
Mon Apr 28 14:15:26 CEST 2008


On Mon, 28 Apr 2008 05:05:15 -0700, Andrew Morton wrote:
> On Sun, 27 Apr 2008 21:20:42 -0700 Ulrich Drepper <drepper at redhat.com> wrote:
> 
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> > 
> > On a NUMA system the eeprom interface in /sys
> > 
> >   /sys/bus/i2c/drivers/eeprom/*
> > 
> > do not list all the DRAM eeproms.  Only the DRAM from one node is
> > listed.  I have a 4 socket system with all 16 banks filled and see only
> > 4 entries.
> > 
> > My suspicion (without looking at any code) is that the list of i2c
> > devices with eeproms is collected once and this happens only on one CPU.
> >  I sees not to be dynamic since when I read the files with taskset
> > restricting execution on certain sockets and cores the result doesn't
> > change.
> > 
> > Is this known or expected (I hope not the latter)?  Where should I look
> > at?  I assume that's in the i2c code?
> > 
> 
> Let's cc the i2c list.

Motherboard manufacturer and model?

Most likely the SMBus is multiplexed and each CPU gets it's own SMBus
segment, as was seen on the Tyan S4882. The EEPROMs you see are the
ones on the segment which happens to be active at boot time.

The i2c subsystem (still) doesn't support that properly, although we
have a quirk for the Tyan S4882 (see
drivers/i2c/busses/i2c-amd756-s4882.c).

-- 
Jean Delvare



More information about the i2c mailing list