FMC FRU EEPROM Utility
The FMC specification requires FMC mezzanine modules to provide hardware definition information through FRU (Field Replaceable Unit) Information storage, as defined in the “Intel Platform Management FRU Information Storage Definition V1.1.”
The FRU Information is used primarily to provide inventory information about the boards, including part numbers, version numbers, and serial numbers. FMC-specific MultiRecords define connector requirements, power requirements, and I2C devices to ensure carrier platform compatibility before power application.
Analog Devices developed the fru-dump utility to dump and modify FRU files,
particularly for production testing of ADI FMC cards. Source code is available
at GitHub.
Synopsis
fru-dump [-b] [-c] [-p] [-o OUTPUT_FILE] [-s SERIAL_NUMBER] [-d DATE] [-i] INPUT_FILE
Options
File options:
-i— input file-o— output file (only applicable when modifying data)
Dump information:
-b— dump board info-c— dump connector info-p— dump power supply info-2— dump I2C info-v— verbose (display warnings)
Modify information:
-d <num>— set date (minutes from 0:00 hrs 01Jan1996)-d <date>— set date (RFC3339 format:2012-12-21T15:12:30-05:00)-d now— set date to current time-s <str>— set serial number-t <str>— set tuning parameters-6— force 6-bit ASCII output
Finding the EEPROM
The FRU EEPROM responds to I2C Slave address 0x51.
# find /sys -name eeprom
/sys/bus/i2c/devices/0-0051/eeprom
Dump board information
# 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 power information
# fru-dump -i /sys/bus/i2c/devices/0-0051/eeprom -p
Example DC Load entry:
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)
Dump connector information
# 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
Set tuning parameters
Tuning parameters (calibration values) can be written as raw hex strings:
# fru-dump -i /sys/bus/i2c/devices/0-0051/eeprom -o /sys/bus/i2c/devices/0-0051/eeprom -t 0b10db
read 256 bytes from /sys/bus/i2c/devices/0-0051/eeprom changing tuning
parameter to 0b10db