Re: [i2c] i2c or eeprom enumeration problem

From: Jean Delvare
Date: Mon Apr 28 2008 - 08:15:57 EST


On Mon, 28 Apr 2008 05:05:15 -0700, Andrew Morton wrote:
> On Sun, 27 Apr 2008 21:20:42 -0700 Ulrich Drepper <drepper@xxxxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/