Documentation
This is the multi-page printable view of this section. Click here to print.
Documentation
- 1: RP2040 bus breakout
- 2: Electronic shelf labels
- 3: OpenBMC
- 3.1: ASRock Rack
- 3.1.1: ASRock Rack X570D4U
- 3.1.1.1: ASRock Rack X570D4U mainboard: pinout
- 3.1.1.2: ASRock Rack X570D4U mainboard: I2C busses
- 3.1.1.3: Programming SPI flash with an FT2232 breakout board
- 3.1.2: ASRock Rack PAUL
1 - RP2040 bus breakout
TBD
2 - Electronic shelf labels
TBD
3 - OpenBMC
OpenBMC is an open source Linux distribution for Baseboard Management Controllers. Nicolai Electronics works on enabling more boards to run this open source firmware instead of manufacturer provided proprietary solutions. More information can be found on the board specific pages.
3.1 - ASRock Rack
ASRock Rack is a hardware manufacturer which has produced multiple mainboards and devices which should be capable of running OpenBMC. More information on the boards Nicolai Electronics is working can be found on the board specific pages.
3.1.1 - ASRock Rack X570D4U
Project status: in progress
The ASRock Rack X570D4U series of mainboards consists of three mainboards with an AMD X570 chipset and AM4 socket. ASRock Rack sells the board in three versions: a cost reduced version without a 10Gbit NIC (X570D4U), a version with an Intel 10Gbit NIC (X570D4U-2L2T) and a version with a Broadcom 10Gbit NIC (X570D4U-2L2T/BCM). These boards contain an Aspeed AST2500 BMC chip. A Baseboard Management Controller (BMC) is a small computer built into the motherboard that allows for out-of-band management. It allows for remote power control, KVM (remote keyboard, video and mouse) control, virtual media insertion and much more.
Property | Value | Part |
---|---|---|
Processor | ARM1176JZS (ARMv6) @ 800MHz | AST2500 SoC |
RAM | 512MB DDR4 | K4A4G165WE |
Storage | 64MB SPI flash | MX25L51245G |
These parts make for quite a powerful system, unfortunately the operating system shipped by ASRock Rack is proprietary and dos not allow for easy modification. To allow for a more secure, transparent and customizable experience we are working on adding support for this mainboard to the mainline Linux kernel and the OpenBMC Linux distribution for BMCs.
Official documentation is provided in ASRock Racks manual for these mainboards. Not a all headers and connectors are described in this manual. The pinout of the undocumented connectors and headers can be found on the pinout page.
The BMC has a programming header, a debug serial port, I2C busses and GPIOs.
Project status
Enabling the use of the mainline Linux kernel and OpenBMC on this hardware is an ongoing effort. An initial port of OpenBMC missing most board specific features can be found here.
3.1.1.1 - ASRock Rack X570D4U mainboard: pinout
This page describes the undocumented headers and connectors on the ASRock X570D4U mainboard. The official manual for this mainboard describes most other connectors and headers.
BMC debug header
This header labeled BMC_DEBUG1
provides access to the debug serial port of the AST2500 SoC (UART 5). The UART works with 3.3v level signals and provides a 3.3v output and can be found on the bottom left of the mainboard.
Using this port you can access the U-Boot command prompt, the Linux bootlog and a shell.
BMC programming header
This header labeled BMC_PH1
provides access to the MX25L51245G 64MB flash chip containing the BMC firmware. Using an exernal SPI flash programmer this port allows for unbricking and easy reflashing of the BMC firmware during development.
This interface uses 3.3v level signals. Connecting the BMC RESET#
pin to GND
disables the AST2500, allowing an exernal programmer to reprogram the flash chip without interference from the SoC.
Manufacturing mode header
This header labeled MFG1
is connected to GPIO H4 of the AST2500 SoC. With the official firmware installed shorting this jumper makes the BMC boot into a special debug mode, dropping to a root shell on the BMC_DEBUG1 port. When running OpenBMC this GPIO is available for custom applications.
Chassis identification
These three headers labeled CHASSIS_ID1
, CHASSIS_ID2
and CHASSIS_ID3
are connected to GPIO G1, G2 and G3 of the AST2500 SoC for ID1, ID2 and ID3 respectively. On production boards these headers appear to not have been installed, but they are functional. When running OpenBMC these GPIOs are available for custom applications.
3.1.1.2 - ASRock Rack X570D4U mainboard: I2C busses
This page describes the I2C busses and connected on-board devices on the ASRock X570D4U mainboard.
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 |
Nuvoton W83773G | 0x4C | Yes | Mainboard temperature sensor |
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.
Alternatively the temperatures can be read using this shell script:
#!/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
Temperature input 2 appears to be the mainboard temperature sensor.
cat /sys/class/hwmon/hwmon0/temp2_input
I2C bus 2
This bus is used for connecting to exernal power supplies with SMBus monitoring support.
Device | Address | Available when host is off | Description |
---|---|---|---|
PSU SMBus header (PSU_SMB1) | — | — | 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 |
---|---|
1 | ??? |
2 | ??? |
3 | ??? |
4 | ??? |
I2C bus 5
This bus is used for connecting to exernal power supplies with SMBus monitoring support.
Device | Address | Available when host is off | Description |
---|---|---|---|
BMC SMbus header (BMC_SMB_1) | — | — | MOLEX 353620550 connector, pinout is in manual |
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 | No |
Unknown
Not tested yet.
Device | Address | Available when host is off | Description |
---|---|---|---|
IPMI SMbus header (IPMB_1) | — | — | MOLEX 22035045 connector, pinout is in manual |
3.1.1.3 - Programming SPI flash with an FT2232 breakout board
Connection diagram
Pin on Mainboard | Function SPI | Function QSPI | Pin on FTDI |
---|---|---|---|
CS# | Chip select | Chip select | ADBUS 3 |
VCC | 3.3v output | 3.3v output | Not connected |
SO/SIO1 | Data output | Data bit 1 | ADBUS 2 |
SIO3 | Unused | Data bit 3 | Not connected |
WP#/SIO2 | Write protect | Data bit 2 | Not connected |
SCLK | Clock | Clock | ADBUS 0 |
BMC RESET# | Reset | Reset | Ground |
SI/SIO0 | Data input | Data bit 0 | ADBUS 1 |
GND | Ground | Ground | Ground |
3.1.2 - ASRock Rack PAUL
Project status: in progress
The ASRock Rack PAUL is a PCI-express add-in card for servers and workstations containing an Aspeed AST2500 BMC chip. A Baseboard Management Controller (BMC) is a small computer that allows for out-of-band management. It allows for remote power control, KVM (remote keyboard, video and mouse) control, virtual media insertion and much more.
Property | Value | Part |
---|---|---|
Processor | ARM1176JZS (ARMv6) @ 800MHz | AST2500 SoC |
RAM | 512MB DDR4 | K4A4G165WE-BCRC |
Storage | 3x 32MB SPI flash | MX25L25645G |
These parts make for quite a powerful system, unfortunately the operating system shipped by ASRock Rack is proprietary and dos not allow for easy modification. To allow for a more secure, transparent and customizable experience we are working on adding support for this mainboard to the mainline Linux kernel and the OpenBMC Linux distribution for BMCs.
Official documentation is provided in ASRock Racks manual.