The mlxcables tool allows users to access the cables and do the following:
- Query the cable and get its IDs
- Read specific addresses in the EEPROM
- Read a specific register by its name. Supported registers are received by the tool (depends on the cable type)
- Dump all the cable EEPROM bytes in RAW format
- Upgrade the FW image on the cable uC (Only on cables that support ISSU)
|-d|--dev <DeviceName>||Perform operation for specified cable|
|-h|--help||Show this message and exit|
|-v|--version||Show the executable version and exit|
|-q|--query||Query cable info|
|--DDM||Get cable DDM query|
|-r|--read||Read from cable|
|--print_raw||Print bytes in raw format|
|--dump||Dump all cable pages in RAW format|
|-b|--bytes_line <bytesPerLine>||Bytes per line in the raw print (multiples of 4, default: 4)|
|-p|--page <pageNum>||Specific Page number to do the read/write operation|
|-o|--offset <pageOffset>||Specific Page offset|
|-l|--length <length>||Length of the needed data in bytes to read (default: 1 Byte)|
|-a|--address <address>||Address (Replacement for page+offset)|
|--read_reg <Register>||Read register from cable|
|--read_all_regs||Read all registers from cable|
|--show_all_regs||Show all registers in the cable|
Show cable specific customization
- For QSFP transceivers, the tool reads the address from I2C address of 0x50. For further information, please see spec SFF8636.
- For SFP transceivers, the tool reads from I2C address 0x50 and names it page 0. When reading from I2C address 0x51 the pages will be read as page <x+1>, for example:
- I2C address 0x51 page 0 will be referred in the tool as page 1.
- I2C address 0x51 page 1 will be referred in the tool as page 2. For further information, please see spec SFF8472.
To read specific byte/s in the cable pages:
Another way to read from a specific page is to use the '--address <ADDR>' flag where ADDR=0x<PAGE><OFFSET>, for example to read the same bytes with -a:
To read in raw format:
To control Bytes per line, use -b:
To query the cable:
Get the DDM query of the cable:
To read by register name:
Get the list of the supported registers.
Read the register with the register name you choose (e.g. vendor_oui, identifier).
To read all the Eeprom of the cable:
This will print the same tables as "--show_all_regs" but with the data that was read.
To dump all the cable's pages in raw format: