Wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
resources:tools-software:linux-software:fru_dump [14 Dec 2012 16:42] – created Lars-Peter Clausenresources:tools-software:linux-software:fru_dump [04 Feb 2022 18:12] (current) – Typo: fru_dump -> fru-dump Dragos Bogdan
Line 1: Line 1:
 ====== FMC FRU EEPROM Utility ====== ====== FMC FRU EEPROM Utility ======
 +
 +The [[http://www.vita.com/fmc|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 [[https://www.intel.com/content/www/us/en/servers/ipmi/information-storage-definition.html|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).
 +
 +<xterm>
 +**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
 +    -2  dump I2C 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)
 +    -t <str>    set tuning parameters
 +    -6          force output to be in 6-bit ASCII
 +</xterm>
 +
 +===== Installing the FRUDump utility =====
 +
 +The source code for the FRUDump utility is found at [[https://github.com/analogdevicesinc/fru_tools|Github]]. 
 +
 +===== Finding the eeprom =====
 +
 +<WRAP box bggreen fgblack>
 +This specifies a root shell prompt running on the target, where the FMC module is attached
 +<xterm>
 +# **find /sys -name eeprom**
 +/sys/bus/i2c/devices/0-0051/eeprom
 +#
 +</xterm>
 +</WRAP>
  
 The FRU EEPROM responds to I2C Slave address 0x51. The FRU EEPROM responds to I2C Slave address 0x51.
Line 5: Line 57:
 ===== Dump FRU Board Information ===== ===== Dump FRU Board Information =====
  
-<box 100% green|This specifies any shell prompt running on the target><xterm> +<WRAP box bggreen fgblack> 
-# **fru_dump -i /sys/bus/i2c/devices/0-0051/eeprom -b**+This specifies any shell prompt running on the target 
 +<xterm> 
 +# **fru-dump -i /sys/bus/i2c/devices/0-0051/eeprom -b**
 read 256 bytes from /sys/bus/i2c/devices/0-0051/eeprom read 256 bytes from /sys/bus/i2c/devices/0-0051/eeprom
 Date of Man  : Tue Sep 18 16:30:00 2012 Date of Man  : Tue Sep 18 16:30:00 2012
Line 14: Line 68:
 Part Number  : AD-FMCOMMS1-EBZ Part Number  : AD-FMCOMMS1-EBZ
 Board Rev    : B Board Rev    : B
-</xterm></box>+</xterm> 
 +</WRAP>
  
 ===== Dump FRU Power Information ===== ===== Dump FRU Power Information =====
  
-<box 100% green|This specifies any shell prompt running on the target><xterm> +<WRAP box bggreen fgblack> 
-# **fru_dump -i /sys/bus/i2c/devices/0-0051/eeprom -p**+This specifies any shell prompt running on the target 
 +<xterm> 
 +# **fru-dump -i /sys/bus/i2c/devices/0-0051/eeprom -p**
 read 256 bytes from /sys/bus/i2c/devices/0-0051/eeprom read 256 bytes from /sys/bus/i2c/devices/0-0051/eeprom
 DC Load DC Load
Line 69: Line 126:
   Minimum current draw:       0 (mA)   Minimum current draw:       0 (mA)
   Maximum current draw:       0 (mA)   Maximum current draw:       0 (mA)
-</xterm></box>+</xterm> 
 +</WRAP>
  
 ===== Dump FRU Connector Information ===== ===== Dump FRU Connector Information =====
  
-<box 100% green|This specifies any shell prompt running on the target><xterm> +<WRAP box bggreen fgblack> 
-# **fru_dump -i /sys/bus/i2c/devices/0-0051/eeprom -c**+This specifies any shell prompt running on the target 
 +<xterm> 
 +# **fru-dump -i /sys/bus/i2c/devices/0-0051/eeprom -c**
 read 256 bytes from /sys/bus/i2c/devices/0-0051/eeprom read 256 bytes from /sys/bus/i2c/devices/0-0051/eeprom
 Single Width Card Single Width Card
Line 82: Line 142:
 P1 GBT Transceivers needed 0 P1 GBT Transceivers needed 0
 Max JTAG Clock 0 Max JTAG Clock 0
-</xterm></box>+</xterm></WRAP> 
 + 
 +===== Set tuning parameters ===== 
 + 
 +A tuning (or calibration) parameter for the related board can be written to the EEPROM as seen below. Usually this is integer or floating point values encoded as a raw hex string that is then decoded where it's used such as in IIO Oscilloscope or wherever the parameter needs to be set. 
 + 
 +<WRAP box bggreen fgblack> 
 +This specifies any shell prompt running on the target 
 +<xterm> 
 +# **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 
 +</xterm></WRAP> 
 + 
 +===== For Help ===== 
 + 
 +For help and assistance with the tool, check out [[ez>community/linux-device-drivers/linux-software-drivers|the EngineerZone]].
resources/tools-software/linux-software/fru_dump.1355499726.txt.gz · Last modified: 14 Dec 2012 16:42 by Lars-Peter Clausen