What can I help you with?
NVIDIA Firmware Tools (MFT) Documentation v4.32.0

mlxcables - Cables Tool

Note
  • mlxcables is used for R/W to cable EEPROM

  • The information of the devices will be collected by PRM command from switch Asic by mlxlink tool only

  • mlxcables will continue to support R/W operations to EEPROM, and will not be deprecated currently due to Independent module. Meaning, new features will not be supported in mlxcables

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)

Copy
Copied!
            

[-d|--dev <DeviceName>] [-h|--help] [-v|--version] [-q|--query] [--DDM] [-r|--read] [--print_raw] [--dump] [-b|--bytes_line <bytesPerLine>] [-p|--page <pageNum>] [-o|--offset <pageOffset>] [-l|--length <length>] [-a|--address <address>] [-y|--yes] [--no] [--read_reg <Register>] [--read_all_regs] [--show_all_regs] [--customization <Customization_type>]

where:

-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

--customization <customization_type>

Show cable specific customization

Notes:

  • 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.

Examples:

To read specific byte/s in the cable pages:

Copy
Copied!
            

mlxcables -d mt4115_pciconf0_cable_0 -r -p 0 -o 165 -l 3 Page[0].Byte[165] = 0x00 Page[0].Byte[166] = 0x02 Page[0].Byte[167] = 0xc9

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:

Copy
Copied!
            

mlxcables -d mt4115_pciconf0_cable_0 -r -a 0x00A5 -l 3 Page[0].Byte[165] = 0x00 Page[0].Byte[166] = 0x02 Page[0].Byte[167] = 0xc9

To read in raw format:

Copy
Copied!
            

# mlxcables -d mt4115_pciconf0_cable_0 -r -p 0 -o 128 -l 12 --print_raw   128: 0d 8c 23 81 132: 00 00 00 00 136: 00 00 00 05

To control Bytes per line, use -b:

Copy
Copied!
            

# mlxcables -d mt4115_pciconf0_cable_0 -r -p 0 -o 128 -l 12 --print_raw -b 8 128: 0d 8c 23 81 00 00 00 00 136: 00 00 00 05

To query the cable:

Copy
Copied!
            

mlxcables -d mt4115_pciconf0_cable_0 -q Cable name : mt4115_pciconf0_cable_0 FW version : 2.2.550 FW Dev ID : 0x21 FW GW version : Legacy -------- Cable EEPROM -------- Identifier : QSFP+ (0dh) Technology : 1550 nm DFB (50h) Compliance : 40G Active Cable (XLPPI), 100G AOC or 25GAUI C2M AOC. Providing a worst BER of 10^(-12) or below Wavelength : 1550 nm OUI : 0x0002c9 Vendor : Mellanox Serial number : MT1602FT00022 Part number : MFS1200-E003 Revision : AB Temperature : 54 C Length : 3 m

Get the DDM query of the cable:

Copy
Copied!
            

# mlxcables -d mt4115_pciconf0_cable_0 --DDM Cable DDM: ---------- Temperature : 37C Voltage : 3.3010V RX Power : -0.6712dBm TX Power : 0.8877dBm TX Bias : 6.7500mA ----- Flags ----- Temperature: Alarm high : 0 Warning high : 0 Warning low : 0 Alarm low : 0 Voltage: Alarm high : 0 Warning high : 0 Warning low : 0 Alarm low : 0 RX/TX Power and TX Bias: RX Power alarm high : 0 RX Power warning high: 0 RX Power warning low : 0 RX Power alarm low : 0 TX Power alarm high : 0 TX Power warning high: 0 TX Power warning low : 0 TX Power alarm low : 0 TX Bias alarm high : 0 TX Bias warning high : 0 TX Bias warning low : 0 TX Bias alarm low : 0 ----- Thresholds ----- Temperature high alarm threshold : 80C Temperature high warning threshold : 70C Temperature low warning threshold : 0C Temperature low alarm threshold : -10C   Voltage high alarm threshold : 3.5000V Voltage high warning threshold: 3.4650V Voltage low warning threshold : 3.1350V Voltage low alarm threshold : 3.1000V   RX Power high alarm threshold : 5.3999dBm RX Power high warn threshold : 2.4000dBm RX Power low warn threshold : -10.3012dBm RX Power low alarm threshold : -13.3068dBm   TX Power high alarm threshold : 5.3999dBm TX Power high warn threshold : 2.4000dBm TX Power low warn threshold : -8.4013dBm TX Power low alarm threshold : -11.4026dBm   TX Bias high alarm threshold : 8.5000mA TX Bias high warn threshold : 8.0000mA TX Bias low warn threshold : 6.0000mA TX Bias low alarm threshold : 5.4920mA

To read by register name:

Get the list of the supported registers.

Copy
Copied!
            

mlxcables -d mt4115_pciconf0_cable_0 --show_all_regs Available registers per page: ==================================================== page00_high registers: ==================================================== identifier | ext_identifier | connector_type | .. .. .. vendor_oui | ..

Read the register with the register name you choose (e.g. vendor_oui, identifier).

Copy
Copied!
            

mlxcables -d mt4115_pciconf0_cable_0 --read_reg vendor_oui vendor_oui = 0x0002c9 mlxcables -d mt4115_pciconf0_cable_0 --read_reg identifier identifier = 0x0d

To read all the Eeprom of the cable:

Copy
Copied!
            

mlxcables -d mt4115_pciconf0_cable_0 --read_all_regs Available registers per page: ==================================================== page00_high registers: ==================================================== identifier | 0x0d ext_identifier | 0x06 connector_type | 0x02 .. .. .. vendor_oui | 0x0002c9 ..

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:

Copy
Copied!
            

# mlxcables -d mt4115_pciconf0_cable_0 --dump -b 16 +----------------------------------------+ | Page: 0x00 , Offset: 000, Length: 0x80 | +----------------------------------------+ 000: 0d 06 00 f0 00 00 00 00 00 00 00 00 00 00 00 00 016: 00 00 00 00 00 00 29 a7 00 00 80 7d 00 00 00 00 032: 00 00 37 fa 26 2a 33 68 1c 0c b3 f9 b2 76 c2 fc 048: c1 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 064: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 080: 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 096: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 112: 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +----------------------------------------+ | Page: 0x00 , Offset: 128, Length: 0x80 | +----------------------------------------+ 128: 0d cc 23 81 00 00 00 00 00 00 00 05 ff 00 00 00 144: 00 00 03 50 4d 65 6c 6c 61 6e 6f 78 20 20 20 20 160: 20 20 20 20 1f 00 02 c9 4d 46 53 31 32 30 30 2d 176: 45 30 30 33 20 20 20 20 41 43 79 18 27 10 46 be 192: 18 07 f5 96 4d 54 31 36 31 33 46 54 30 30 36 39 208: 36 20 20 20 31 36 30 32 32 32 00 00 00 00 67 a9 224: 36 30 33 46 4d 41 32 30 33 47 31 34 32 38 20 20 240: 00 00 00 00 00 00 00 00 00 00 01 00 10 00 00 00 +----------------------------------------+ | Page: 0x03 , Offset: 128, Length: 0x80 | +----------------------------------------+ 128: 50 00 f6 00 46 00 00 00 00 00 00 00 00 00 00 00 144: 88 b8 79 18 87 5a 7a 76 00 00 00 00 00 00 00 00 160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 176: 87 71 01 d3 43 e2 03 a5 00 00 00 00 00 00 00 00 192: 87 71 02 d4 43 e2 05 a5 00 00 00 00 00 00 00 00 208: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 224: a7 03 00 00 00 00 00 00 00 00 00 00 77 77 11 11 240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

© Copyright 2025, NVIDIA. Last updated on May 8, 2025.