ASRock Rack X570D4U mainboard: I2C busses
This page describes the I2C busses and connected on-board devices on the ASRock X570D4U mainboard.
I2C bus 0
This bus is connected to the AUX_PANEL1
connector. SMBus alert for this bus is connected to GPIO 52 (G4)
named input-aux-smb-alert-n
.
Device | Address | Available when host is off | Description |
---|---|---|---|
AUX panel SMBus header (AUX_PANEL1) | — | Yes | Standard 2.54mm header, pinout is in manual |
I2C bus 1
This bus is used for controlling on-board devices that are used when the host is on.
Device | Address | Available when host is off | Description |
---|---|---|---|
PCA9557 IO expander | 0x1C | No | Controls the FAN fault LEDs |
Unknown device | 0x1D | No | Unknown |
Nuvoton NCT6796D-R SuperIO | 0x2D | No | Host temperature monitoring interface (SuperIO) |
Nuvoton W83773G | 0x4C | Yes | Temperature monitoring interface for 10G NIC (Not installed on base model X570D4U boards) |
PCA9557 IO expander
Pin | Direction | Function |
---|---|---|
0 | Output | Fault LED for FAN 4 |
1 | Output | Fault LED for FAN 5 |
2 | Output | Fault LED for FAN 1 |
3 | Output | Unknown / not connected |
4 | Output | Fault LED for FAN 2 |
5 | Output | Fault LED for FAN 3 |
6 | Output | Fault LED for FAN 6 |
7 | Output | Unknown / not connected |
Nuvoton NCT6796D-R SuperIO
This chip can read the CPU and chipset temperatures. It should be possible to use the newly added nct6775-i2c driver to use this device.
Using the NCT6775-I2C driver
The OpenBMC port for the X570D4U already includes the nct6775-i2c
driver in it’s kernel, but as the SuperIO device only appears on the bus when the host system is powered on the driver needs to be loaded in and unloaded based on power state changes. This has not been implemented yet.
The driver can be manually loaded in using the following command:
echo "nct6775 0x2d" > /sys/bus/i2c/devices/i2c-1/new_device
If the driver was loaded correctly then you should now be able to find a folder called hwmon
in the device folder /sys/bus/i2c/devices/i2c-1/1-002d
. This folder will contain a symlink to the hwmon interface for the SuperIO chip. If the folder is missing then your kernel does not include the nct6775-i2c
driver.
Directly accessing and reading the temperature registers
Alternatively the temperatures can be read using this shell script, for which no kernel driver is required:
#!/bin/bash
i2cset -y 1 0x2d 0x4e 0x04
while :
do
TSI0INT=$((16#$(i2cget -y 1 0x2d 0x09 | cut -f2 -dx)))
TSI0FRC=$(($((16#$(i2cget -y 1 0x2d 0x0a | cut -f2 -dx)))>>5))
TSI1INT=$((16#$(i2cget -y 1 0x2d 0x0b | cut -f2 -dx)))
TSI1FRC=$(($((16#$(i2cget -y 1 0x2d 0x0c | cut -f2 -dx)))>>5))
echo "TSI0_TEMP: $TSI0INT.$TSI0FRC °C / TSI1_TEMP: $TSI1INT.$TSI1FRC °C"
sleep 0.5
done
Nuvoton W83773G
This device is available on the versions of the X570D4U which include a 10Gbit network adapter. It monitors the temperature of the 10Gbit NIC.
cat /sys/class/hwmon/hwmon0/temp2_input
I2C bus 2
This bus is used for connecting to exernal power supplies with SMBus monitoring support using the PSU_SMB1
connector. SMBus alert for this bus is connected to GPIO 54 (G6)
named input-psu-smb-alert-n
.
Device | Address | Available when host is off | Description |
---|---|---|---|
PSU SMBus header (PSU_SMB1) | — | Yes | MOLEX 70543-0003 connector, pinout is in manual |
I2C bus 3
This bus has an unknown purpose.
Device | Address | Available when host is off | Description |
---|---|---|---|
Unknown device | 0x13 | Yes | Unknown |
Unknown device | 0x14 | No | Unknown |
Unknown device | 0x15 | No | Unknown |
I2C bus 4
This bus is used to connect to expansion cards inserted into the PCI-Express slots of the mainboard.
Device | Address | Available when host is off | Description |
---|---|---|---|
NXP PCA9545A I2C bus switch | 0x70 | Yes | Bus multiplexer for switching between PCIe slots |
NXP PCA9545A I2C bus switch
Bus | Port |
---|---|
0 | PCI express 16x slot |
1 | PCI express 8x slot |
2 | Unknown |
3 | PCI express 1x slot |
I2C bus 5
This bus is connected to the BMC_SMB_1
connector. The BMC_PRESENT_1_N
signal on the BMC_SMB_1
connector is connected to GPIO 132 (Q4)
named input-bmc-smb-present-n
.
Device | Address | Available when host is off | Description |
---|---|---|---|
BMC SMbus header (BMC_SMB_1) | — | Yes | Unknown connector, pinout is in manual (might be MOLEX 353620550) |
I2C bus 7
This bus is used for connecting to the FRU EEPROM and the RAM DIMMs.
Device | Address | Available when host is off | Description |
---|---|---|---|
RAM DIMM A1 temperature sensor | 0x1A | No | |
RAM DIMM A2 temperature sensor | ???? | No | Not tested yet |
RAM DIMM B1 temperature sensor | 0x1B | No | |
RAM DIMM B2 temperature sensor | ???? | No | Not tested yet |
Unknown device | 0x30 | No | Unknown |
Unknown device | 0x35 | No | Unknown |
Unknown device | 0x36 | No | Unknown |
RAM DIMM A1 SPD EEPROM | 0x52 | No | |
RAM DIMM A2 SPD EEPROM | ???? | No | Not tested yet |
RAM DIMM B1 SPD EEPROM | 0x53 | No | |
RAM DIMM B2 SPD EEPROM | ???? | No | Not tested yet |
FRU EEPROM | 0x57 | Yes |
I2C bus 8
This bus is connected to the IPMB_1
connector.
Device | Address | Available when host is off | Description |
---|---|---|---|
IPMI SMbus header (IPMB_1) | — | Yes | MOLEX 22035045 connector, pinout is in manual |