Wiki

This version is outdated by a newer approved version.DiffThis version (03 Dec 2014 23:53) was approved by Robin Getz.The Previously approved version (04 Jan 2013 23:33) is available.Diff

This is an old revision of the document!


FMC FRU EEPROM Utility

The FMC specification includes a methodology where FMC mezzanine modules must provide hardware definition information that can be read by an external controller on the FMC Carrier platform (most of the time the FPGA on the carrier). This hardware definition is defined by FRU (Field Replaceable Unit) Information storage recorders, as defined in the Intel Platform Management FRU Information Storage Definition V1.1

The FRU Information is used to primarily to provide ‘inventory’ information about the boards that the FRU information device is located on. All FMC mezzanine modules include an EEPROM where this FRU Information, including the part number, version number, serial number can be read through software.

There are some extensions, or FMC-specific MultiRecords, that the FMC specification includes to help define connector requirements, power requirements, and other I2C devices which may be on the FMC mezzanine module to help the carrier platform ensure it is compatible with the mezzanine modules before it applies power. This means that if this EEPROM is blank, or has corrupt data in it, it could be that the carrier platform will not power the FMC slot at all.

In order to better use this data, Analog Devices has written a small utility which dumps the FRU file which can be found on many systems. It also can change the serial number and date (since we use this for production test of ADI's FMC cards).

NAME
       fru_dump - print and manipulate FRU file information

SYNOPSIS
       fru_dump [-b] [-c] [-p] [-o OUTPUT_FILE] [-s SERIAL_NUMBER] [-d DATE] [-i ] INPUT_FILE

DESCRIPTION

dump information about FRU files for FMC Cards
  file options
    -i	input file
    -o	output file, only makes sense when changing something
  dump info
    -b	dump board info
    -c	dump connector info
    -p	dump power supply info
    -v	verbose (show warnings)
  set info (modifies output file)
    -d <num>	set date (Number of minutes from 0:00 hrs 01Jan1996)
    -d <date>	set date (Date in RFC3339 format: 2012-12-21T15:12:30-05:00)
    -d now      set the date to the current time
    -s <str>	set serial number (string)

Finding the eeprom

This specifies a root shell prompt running on the target, where the FMC module is attached

# find /sys -name eeprom
/sys/bus/i2c/devices/0-0051/eeprom
#

The FRU EEPROM responds to I2C Slave address 0x51.

Dump FRU Board Information

This specifies any shell prompt running on the target

# fru_dump -i /sys/bus/i2c/devices/0-0051/eeprom -b
read 256 bytes from /sys/bus/i2c/devices/0-0051/eeprom
Date of Man  : Tue Sep 18 16:30:00 2012
Manufacture  : Analog Devices
Product Name : FMC Comms 1
Serial Number: D836081
Part Number  : AD-FMCOMMS1-EBZ
Board Rev    : B

Dump FRU Power Information

This specifies any shell prompt running on the target>

# fru_dump -i /sys/bus/i2c/devices/0-0051/eeprom -p
read 256 bytes from /sys/bus/i2c/devices/0-0051/eeprom
DC Load
  Output number: 0 (P1 VADJ)
  Nominal Volts:         2500 (mV)
  minimum voltage:       1800 (mV)
  maximum voltage:       2500 (mV)
  Ripple and Noise pk-pk 0000 (mV)
  Minimum current load   0000 (mA)
  Maximum current load   0000 (mA)
DC Load
  Output number: 1 (P1 3P3V)
  Nominal Volts:         3300 (mV)
  minimum voltage:       2970 (mV)
  maximum voltage:       3630 (mV)
  Ripple and Noise pk-pk 0000 (mV)
  Minimum current load   0000 (mA)
  Maximum current load   3000 (mA)
DC Load
  Output number: 2 (P1 12P0V)
  Nominal Volts:         12000 (mV)
  minimum voltage:       10800 (mV)
  maximum voltage:       13200 (mV)
  Ripple and Noise pk-pk 0000 (mV)
  Minimum current load   0000 (mA)
  Maximum current load   1000 (mA)
DC Output
  Output Number: 3 (P1 VIO_B_M2C)
  Nominal volts:              0 (mV)
  Maximum negative deviation: 0 (mV)
  Maximum positive deviation: 0 (mV)
  Ripple and Noise pk-pk:     0 (mV)
  Minimum current draw:       0 (mA)
  Maximum current draw:       0 (mA)
DC Output
  Output Number: 4 (P1 VREF_A_M2C)
  Nominal volts:              0 (mV)
  Maximum negative deviation: 0 (mV)
  Maximum positive deviation: 0 (mV)
  Ripple and Noise pk-pk:     0 (mV)
  Minimum current draw:       0 (mA)
  Maximum current draw:       0 (mA)
DC Output
  Output Number: 5 (P1 VREF_B_M2C)
  Nominal volts:              0 (mV)
  Maximum negative deviation: 0 (mV)
  Maximum positive deviation: 0 (mV)
  Ripple and Noise pk-pk:     0 (mV)
  Minimum current draw:       0 (mA)
  Maximum current draw:       0 (mA)

Dump FRU Connector Information

This specifies any shell prompt running on the target

# fru_dump -i /sys/bus/i2c/devices/0-0051/eeprom -c
read 256 bytes from /sys/bus/i2c/devices/0-0051/eeprom
Single Width Card
P1 is LPC
P1 Bank A Signals needed 68
P1 Bank B Signals needed 0
P1 GBT Transceivers needed 0
Max JTAG Clock 0

For Help

For help and assistance with the tool, check out the EngineerZone.

resources/tools-software/linux-software/fru_dump.1417647219.txt.gz · Last modified: 03 Dec 2014 23:53 by Robin Getz