Reconfiguration of I2C buses connections
EDIT: The PS is configured with 2x I2C controllers, I2C0 and I2C1. Currently, I2C0 is using MIOs and I2C1 is using EMIOs. The PL is also configured with 2x I2C controllers, AXI_IIC0 and AXI_IIC1. The slaves connected on these buses are the following
I2C0:
- 1x FMC EEPROM
I2C1:
- 2x Infineon IRPS5401 Power Management IC
- 3x TI LM75A Temperature Sensors
- 1x SI Labs SI5341 clock generator
- 1x Monimod fantray
- 2x Power Supplies
AXI_IIC0:
- 1x WR EEPROM
- 1x EEPROM (mac_eeprom1)
- 1x EEPROM (mac_eeprom2)
AXI_IIC1:
- 1x Peripheral Board EEPROM (pb_eeprom)
There are some problematic connections in the above configuration.
-
The problem with using EMIOs for I2C1 is that we need the PL configured before being able to access the devices connected on the bus. This already causes some problems:
- We cannot configure the SI5341 in the early stages of FSBL (simple && standard) but we have to wait until the bitstream is loaded to configure the SI5341 and reload the bitstream (complex && not standard).
- In case of a badly configured PL, the rest of the monitoring hardware of the board is inaccessible. Considering that we will use PS Ethernet in v3, it makes sense to be able to access the monitoring hardware, without the PL configured.
-
Currently, we are using a mac_eeprom1 in order to read the MAC address of the System Board. The I2C bus that is connected to this EEPROM is on the PL. In the new version, it would be better to use a PS I2C so we are completely independent from the bitstream in order to set up the Network.
My proposal is that we should do the following:
- Use MIOs for I2C1 or connect the I2C1 devices to I2C0.
- Move mac_eeprom1 to PS I2C with MIO access.
- Reconsider if mac_eeprom2 and pb_eeprom should stay in the PL I2C.
Concluding, I feel that the monitoring should be more PS-oriented and less PL-dependent.