Master Write/Read to/from FRU PROM

Help
Anonymous
2014-07-10
2014-07-10
  • Anonymous - 2014-07-10

    Hi there,

    Sorry to be cluttering up the Help section again, hopefully for the last time. :)

    So, now that I am confident OpenIPMI is doing what I want it to do, I would like to read the FRU contents of an 'IPMI-dumb' slave i2c device, connected locally in the same chassis as the BMC.

    Just a quick brief about the command I am using (source: reference manual of BMC-containing board):

    "Master Write/Read Command

    This command is used to provide low-level I2C write, read and write-read accesses to, typically, non-IPMI-compliant devices, on both public and private I2C busses. This command sends the message exactly as embedded in the command to the addressed slave I2C device."

    Using freeipmi, the command took the following form:

    ipmi-raw 0 06 52 00 00 22
    ipmi-raw 0 06 52 00 01 22
    ...
    ipmi-raw 0 06 52 00 FE 22
    ipmi-raw 0 06 52 00 FF 22 ... where:

    06 = Network Function Code (Application)
    52 = Command Code (Master Write/Read)
    00 = Channel Number
    XX = Slave Address
    22 = Read Count (34 Bits)

    I was not sure of the slave address, so I went ahead and made a shell script to go through from address 0x00 -> 0xFF, and to no avail. Completion code 0x82 (Bus error) would always be given back in the response message.

    Using the Linux userspace program "i2cdetect", I tried to scan for any slave I2C device addresses, but I had also not been able to find any.

    I think the reason behind this is probably due to a certain driver not been installed/loaded.

    Any thoughts to which drivers in specific they could be, or thought as to what really is the problem here would be greatly appreciated. :)

    Thanks again,

    Kahtan

     
    Last edit: Anonymous 2014-07-10
    • Corey Minyard

      Corey Minyard - 2014-07-10

      On 07/10/2014 06:32 AM, Kahtan Miyasar wrote:

      Hi there,

      Sorry to be cluttering up the Help section again, hopefully for the
      last time. :)

      So, now that I am confident OpenIPMI is doing what I want it to do, I
      would like to read the FRU contents of an 'IPMI-dumb' slave i2c
      device, connected locally in the same chassis as the BMC.

      Just a quick breif about the command I am using (source: refernce
      manual of BMC-containing board):

      "Master Write/Read Command

      This command is used to provide low-level I2C write, read and
      write-read accesses to, typically, non-IPMI-compliant devices, on both
      public and private I2C busses. This command sends the message exactly
      as embedded in the command to the addressed slave I2C device."

      This command requires that you understand how I2C buses work,
      unfortunately. First of all, the lower bit of the address should always
      be zero, per the spec. Second, you are interacting with a piece of
      hardware and you have to know how it works.

      It also depends on the bus configuration of your system, though most
      systems have one I2C bus that everything hangs off of.

      That said, your scan should have found something, unless it locked up
      the bus somehow early in the scan (which is possible). Generally, if
      you read from an I2C EEPROM it will return successive bytes. You can
      write an address, but you'll have to look at the specifics of the device
      in question. You may want to completely power down your system (unplug
      it from the wall) and try again, as the I2C bus will always be powered
      even if the system is off.

      -corey

      Using freeipmi, the command took the following form:

      ipmi-raw 0 06 52 00 00 22
      ipmi-raw 0 06 52 00 01 22
      ...
      ipmi-raw 0 06 52 00 FE 22
      ipmi-raw 0 06 52 00 FF 22 , where:

      06 Network Function Code (Application)
      52 Command Code (Master Write/Read)
      00 Channel Number
      XX Slave Address
      22 Read Count (34 Bits)

      I was not sure of the slave address, so I went ahead and made a shell
      script to go through from address 0x00 -> 0xFF, and to no avail.
      Completion code 0x82 (Bus error) would always be given back in the
      response message.

      Using the Linux userspace program "i2cdetect", I tried to scan for any
      slave I2C device addresses, but I had also not been able to find any.

      I think the reason behind this is probably due to a certain driver not
      been installed/loaded.

      Any thoughts to which drivers in specific they could be, or thought as
      to what really is the problem here would be greatly appreciated. :)

      Thanks again,

      Kahtan


      Master Write/Read to/from FRU PROM
      https://sourceforge.net/p/openipmi/discussion/112996/thread/3fe6dc93/?limit=25#30b9


      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/openipmi/discussion/112996/
      https://sourceforge.net/p/openipmi/discussion/112996

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/
      https://sourceforge.net/auth/subscriptions

       

Log in to post a comment.