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.

PropertyValuePart
ProcessorARM1176JZS (ARMv6) @ 800MHzAST2500 SoC
RAM512MB DDR4K4A4G165WE
Storage64MB SPI flashMX25L51245G

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.

board

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_DEBUG1

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.

BMC_PH1

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.

DeviceAddressAvailable when host is offDescription
PCA9557 IO expander0x1CNoControls the FAN fault LEDs
Unknown device0x1DNoUnknown
Nuvoton NCT6796D-R SuperIO0x2DNoHost temperature monitoring interface
Nuvoton W83773G0x4CYesMainboard temperature sensor

PCA9557 IO expander

PinDirectionFunction
0OutputFault LED for FAN 4
1OutputFault LED for FAN 5
2OutputFault LED for FAN 1
3OutputUnknown / not connected
4OutputFault LED for FAN 2
5OutputFault LED for FAN 3
6OutputFault LED for FAN 6
7OutputUnknown / 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.

DeviceAddressAvailable when host is offDescription
PSU SMBus header (PSU_SMB1)MOLEX 70543-0003 connector, pinout is in manual

I2C bus 3

This bus has an unknown purpose.

DeviceAddressAvailable when host is offDescription
Unknown device0x13YesUnknown
Unknown device0x14NoUnknown
Unknown device0x15NoUnknown

I2C bus 4

This bus is used to connect to expansion cards inserted into the PCI-Express slots of the mainboard.

DeviceAddressAvailable when host is offDescription
NXP PCA9545A I2C bus switch0x70YesBus multiplexer for switching between PCIe slots

NXP PCA9545A I2C bus switch

BusPort
1???
2???
3???
4???

I2C bus 5

This bus is used for connecting to exernal power supplies with SMBus monitoring support.

DeviceAddressAvailable when host is offDescription
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.

DeviceAddressAvailable when host is offDescription
RAM DIMM A1 temperature sensor0x1ANo
RAM DIMM A2 temperature sensor????NoNot tested yet
RAM DIMM B1 temperature sensor0x1BNo
RAM DIMM B2 temperature sensor????NoNot tested yet
Unknown device0x30NoUnknown
Unknown device0x35NoUnknown
Unknown device0x36NoUnknown
RAM DIMM A1 SPD EEPROM0x52No
RAM DIMM A2 SPD EEPROM????NoNot tested yet
RAM DIMM B1 SPD EEPROM0x53No
RAM DIMM B2 SPD EEPROM????NoNot tested yet
FRU EEPROM0x57No

Unknown

Not tested yet.

DeviceAddressAvailable when host is offDescription
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 MainboardFunction SPIFunction QSPIPin on FTDI
CS#Chip selectChip selectADBUS 3
VCC3.3v output3.3v outputNot connected
SO/SIO1Data outputData bit 1ADBUS 2
SIO3UnusedData bit 3Not connected
WP#/SIO2Write protectData bit 2Not connected
SCLKClockClockADBUS 0
BMC RESET#ResetResetGround
SI/SIO0Data inputData bit 0ADBUS 1
GNDGroundGroundGround

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.

PropertyValuePart
ProcessorARM1176JZS (ARMv6) @ 800MHzAST2500 SoC
RAM512MB DDR4K4A4G165WE-BCRC
Storage3x 32MB SPI flashMX25L25645G

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.