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.
- Configure both PCA9545A (IDs 0x70 and 0x71) to route the I2C path.
- Configure the output pin value and output enable for the targeted TCA6408A.
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.
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.
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.
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 |