Configuring/Reading QSFP Sideband Signals - DS1013

Alveo V80 Data Center Accelerator Cards Data Sheet (DS1013)

Document ID
DS1013
Release Date
2024-05-08
Revision
1.0 English

Once enabled, the QSFP sideband signals are configured by configuring two PCA9545A I2C multiplexer devices to route the I2C to the TCA6408A I/O Expander controlling the target QSFP sideband signals. This is done by a series of I2C transfers.

  1. Configure both PCA9545A (IDs 0x70 and 0x71) to route the I2C path.
  2. Configure the output pin value and output enable for the targeted TCA6408A.
Warning: Each TCA6408A has an identical I2C address, so the I2C multiplexers must be configured to route to only one such device to prevent bus contention.

Each TCA6408A is enabled by means of pull-up resistors. This can be manually overwritten by driving the respective QSFP56_IO_RESET_B signal from the adaptive SoC. See QSFP56 Peripheral Resets for details.

Before accessing one of the QSFP56 module’s I2C port or sideband expander, it is necessary to first program both I2C multiplexers to configure the appropriate routing.

Note: Because of duplicate target device IDs, the multiplexers must have only one target path enabled at a time. This can be managed by performing two I2C sequences when changing targets using the following reference table.
Table 1. I2C Multiplexer Settings to Access QSFP56 Low-Speed Sideband Signal
Target Port Target Device Selected Mux Port First I2C Sequence

(Program I2C Mux 0)

Second I2C Sequence

(Program I2C Mux 1)

QSFP56 1 TCA6408APWR I/O Expander Mux 0x70, Port 0 0x70, 0x01 0x71, 0x00
QSFP56 1 External QSFP Module Mux 0x70, Port 1 0x70, 0x02 0x71, 0x00
QSFP56 2 TCA6408APWR I/O Expander Mux 0x70, Port 2 0x70, 0x04 0x71, 0x00
QSFP56 2 External QSFP Module Mux 0x70, Port 3 0x70, 0x08 0x71, 0x00
QSFP56 3 TCA6408APWR I/O Expander Mux 0x71, Port 0 0x70, 0x00 0x71, 0x01
QSFP56 3 External QSFP Module Mux 0x71, Port 1 0x70, 0x00 0x71, 0x02
QSFP56 4 TCA6408APWR I/O Expander Mux 0x71, Port 2 0x70, 0x00 0x71, 0x04
QSFP56 4 External QSFP Module Mux 0x71, Port 3 0x70, 0x00 0x71, 0x08

Each QSFP56 low-speed sideband signal is connected to a TCA6408A I/O expander whose pinouts are detailed in the following table. Access to these signals involves configuring the PCA9545A I2C multiplexers to route to the targeted I/O expander, then configuring or reading the I/O expander.

Table 2. QSFP56 Sideband Signal Definition
Pin Signal Name Input/Output Output Value
0 MODSELL Output 0
1 RESETL Output 1
2 LPMODE Output 0
3 MODPRSL Input 0
4 INTR_B Input 0
5 N/C Input 0
6 N/C Input 0
7 N/C Input 0

By default, the I/O expanders are configured for input only, so the LPMODE, MODSELL, and RESETL signals are not driven until initialized. The following table illustrates how QSFP56_1 can be initialized. Similar steps must be taken to initialize the other expanders.

Table 3. Example Configuring QSFP56_1 I/O Expander
Function Sequence Description
Disable PCA9545A (0x70) 0x70, 0x00 Gates I2C communication to QSFP56_1 and QSFP56_2 expanders
Disable PCA9545A (0x71) 0x71, 0x00 Gates I2C communication to QSFP56_3 and QSFP56_4 expanders
Disable PCA9545A (0x72) 0x72, 0x00 Gates I2C comms to PCIe and DIMMs
Enable Port 2 of PCA9545A (0x70) 0x70, 0x04 Enables I2C routing to QSFP56 sideband expander
Program QSFP56_1 TCA6008A (0x20) 0x20, 0x01, 0x02 Sets RESETL, clears LPMODE, MODSEL (pins 0,1,2)
Program QSFP56_1 TCA6008A (0x20) 0x20, 0x03, 0xF8 Configures output enables for pins 0,1,2