i2c or eeprom enumeration problem - Kernel

This is a discussion on i2c or eeprom enumeration problem - Kernel ; -----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 ...

+ Reply to Thread
Results 1 to 7 of 7

Thread: i2c or eeprom enumeration problem

  1. i2c or eeprom enumeration problem

    -----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?

    - --
    ➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, CA ❖
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.7 (GNU/Linux)

    iD8DBQFIFVCa2ijCOnn/RHQRAhA6AJwN9Mc7HzmLM4EgWunC9eucPsDcTwCgtExK
    rsz/RJMFHQMB+zIX/WuE2M8=
    =OQfT
    -----END PGP SIGNATURE-----
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  2. Re: i2c or eeprom enumeration problem

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

  3. Re: [i2c] i2c or eeprom enumeration problem

    On Mon, 28 Apr 2008 05:05:15 -0700, Andrew Morton wrote:
    > On Sun, 27 Apr 2008 21:20:42 -0700 Ulrich Drepper 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@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  4. Re: [i2c] i2c or eeprom enumeration problem

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    Jean Delvare wrote:
    > Motherboard manufacturer and model?


    Tyan S4985. It's a quad socket, quad core AMD system.

    - --
    ➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, CA ❖
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.7 (GNU/Linux)

    iD8DBQFIFdxS2ijCOnn/RHQRAnnuAJ4oMLsIW3U1cWZuHCubPZVWvOTcNwCfY4NV
    A24BWrZf19VkKnX3QKcS3qc=
    =E3Vp
    -----END PGP SIGNATURE-----
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  5. Re: i2c or eeprom enumeration problem

    On Mon, 28 Apr 2008 07:16:50 -0700, Ulrich Drepper wrote:
    > Jean Delvare wrote:
    > > Motherboard manufacturer and model?

    >
    > Tyan S4985. It's a quad socket, quad core AMD system.


    OK. Maybe it uses the same trick as the S4882... Can you get the
    information from Tyan?

    Please provide the output of i2cdetect for all the SMBus channels.

    --
    Jean Delvare
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  6. Re: i2c or eeprom enumeration problem

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    Jean Delvare wrote:
    > OK. Maybe it uses the same trick as the S4882... Can you get the
    > information from Tyan?


    I don't have a special link to Tyan but I can try. What information do
    you need?


    > Please provide the output of i2cdetect for all the SMBus channels.


    [Strange, the lm_sensors package in F9 doesn't have i2cdetect anymore.
    Anything replacing it?]

    I see two busses:

    Installed I2C busses:
    i2c-0 smbus SMBus nForce2 adapter at a000
    i2c-1 smbus SMBus nForce2 adapter at a040

    Using -a to get all the info on those busses I see this:

    Bus 0:

    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: -- -- -- -- -- -- -- -- 08 -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: UU UU UU UU -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --


    Bus 1:

    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: -- -- -- -- -- -- -- -- 08 -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- 19 -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- 2d -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- 48 49 -- -- -- -- -- --
    50: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --



    This motherboard uses the NVidia nForce n4250QE chipset.

    - --
    ➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, CA ❖
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.7 (GNU/Linux)

    iD8DBQFIFezP2ijCOnn/RHQRAmd2AJ4gAQWzPhjBylM8g0Tzrw4L88xy0ACghI9q
    Za0TJOrHDSlMzq8S2DShh4o=
    =aCCS
    -----END PGP SIGNATURE-----
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  7. Re: i2c or eeprom enumeration problem

    Hi Ulrich,

    On Mon, 28 Apr 2008 08:27:12 -0700, Ulrich Drepper wrote:
    > Jean Delvare wrote:
    > > OK. Maybe it uses the same trick as the S4882... Can you get the
    > > information from Tyan?

    >
    > I don't have a special link to Tyan but I can try. What information do
    > you need?


    Basically, whether the SMBus is multiplexed or not, and if it is, what
    is the SMBus topology (which mux chip is used and how to control it,
    how many segments, what devices are connected to each segment.)

    > > Please provide the output of i2cdetect for all the SMBus channels.

    >
    > [Strange, the lm_sensors package in F9 doesn't have i2cdetect anymore.
    > Anything replacing it?]


    Yes, the i2c tools (i2cdetect, i2cdump, the eeprom decoding scripts,
    etc.) now live in their separate package named i2c-tools:
    http://www.lm-sensors.org/wiki/I2CTools
    As far as I know, Hans de Goede packaged it in Fedora already.

    [Note that the lm-sensors.org website is exceptionally slow today.]

    >
    > I see two busses:
    >
    > Installed I2C busses:
    > i2c-0 smbus SMBus nForce2 adapter at a000
    > i2c-1 smbus SMBus nForce2 adapter at a040
    >
    > Using -a to get all the info on those busses I see this:


    -a wasn't needed...

    >
    > Bus 0:
    >
    > 0 1 2 3 4 5 6 7 8 9 a b c d e f
    > 00: -- -- -- -- -- -- -- -- 08 -- -- -- -- -- -- --
    > 10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- --
    > 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    > 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    > 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    > 50: UU UU UU UU -- -- -- -- -- -- -- -- -- -- -- --
    > 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    > 70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    >


    SPD for 4 memory modules at 0x50 - 0x53. 0x18 could be a multiplexer,
    that's the address that was used by the 8-channel multiplexer on the
    S4882.

    >
    > Bus 1:
    >
    > 0 1 2 3 4 5 6 7 8 9 a b c d e f
    > 00: -- -- -- -- -- -- -- -- 08 -- -- -- -- -- -- --
    > 10: -- -- -- -- -- -- -- -- -- 19 -- -- -- -- -- --
    > 20: -- -- -- -- -- -- -- -- -- -- -- -- -- 2d -- --
    > 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    > 40: -- -- -- -- -- -- -- -- 48 49 -- -- -- -- -- --
    > 50: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
    > 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    > 70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --


    Apparently you have some Winbond hardware monitoring chip at 0x2d +
    0x48 + 0x49. You might try sensors-detect.

    There seems to be an extra EEPROM at 0x51, I'm curious what it is...
    Presumably not an SPD.

    No idea what is at 0x19, it could be a multiplexer but I'd be
    surprised, as it doesn't make much sense to multiplex both SMBus
    channels.

    > This motherboard uses the NVidia nForce n4250QE chipset.


    We won't be able to re-use the S4882 code as is, as that one was using a
    completely different chip (AMD).

    If you are willing to do some experiments with the board, I can give
    you commands to test (you'll need i2cdetect and i2cset). But maybe
    you'll prefer to wait to have additional information from Tyan first.
    Let me know.

    --
    Jean Delvare
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

+ Reply to Thread