This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

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.

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.

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.

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.

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 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.

DeviceAddressAvailable when host is offDescription
AUX panel SMBus header (AUX_PANEL1)YesStandard 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.

DeviceAddressAvailable when host is offDescription
PCA9557 IO expander0x1CNoControls the FAN fault LEDs
Unknown device0x1DNoUnknown
Nuvoton NCT6796D-R SuperIO0x2DNoHost temperature monitoring interface
Nuvoton W83773G0x4CYesTemperature monitoring interface for 10G NIC (Not installed on base model X570D4U boards)

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 using the PSU_SMB1 connector. SMBus alert for this bus is connected to GPIO 54 (G6) named input-psu-smb-alert-n.

DeviceAddressAvailable when host is offDescription
PSU SMBus header (PSU_SMB1)YesMOLEX 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
0PCI express 16x slot
1PCI express 8x slot
2Unknown
3PCI 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.

DeviceAddressAvailable when host is offDescription
BMC SMbus header (BMC_SMB_1)YesMOLEX 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 EEPROM0x57Yes

I2C bus 8

This bus is connected to the IPMB_1 connector.

DeviceAddressAvailable when host is offDescription
IPMI SMbus header (IPMB_1)YesMOLEX 22035045 connector, pinout is in manual

1.1.3 - ASRock Rack X570D4U mainboard: GPIO

This page describes the GPIOs of the ASPEED AST2500 BMC on the ASRock X570D4U mainboard.

#IDPower domainPeripheralTypeNameDescription
0A0PV33DGPIOInputinput-locatorled-nState of the locator LED (active low)
1A1PV33D
2A2PV33D
3A3PV33D
4A4I2CI2C bus 8 clock (IPMB SMBus)
5A5I2CI2C bus 8 data (IPMB SMBus)
6A6
7A7
8B0LPVDDGPIOInputinput-bios-post-cmplt-nBIOS has completed POST stage (active low)
9B1LPVDD(Changes on host boot)
10B2LPVDD(Changes on host boot)
11B3LPVDD
12B4LPVDD(Changes on host boot)
13B5LPVDD
14B6LPVDD
15B7LPVDD(Changes on host boot)
16C0(I2C bus 9 clock)
17C1(I2C bus 9 data)
18C2(I2C bus 10 clock)
19C3(I2C bus 10 data)
20C4(I2C bus 11 clock)
21C5(I2C bus 11 data)
22C6GPIOOutput open draincontrol-locatorbutton-nPull low to emulate identification button press
23C7
24D0GPIOInputbutton-power-nState of the power button (active low)
25D1GPIOOutput open draincontrol-power-nPull low to emulate power button press
26D2GPIOInputbutton-reset-nState of the reset button (active low)
27D3GPIOOutput open draincontrol-reset-nPull low to emulate reset button press
28D4
29D5
30D6
31D7
32E0(UART3 CTS)
33E1(UART3 DCD)
34E2(UART3 DSR)
35E3(UART3 RING)
36E4(UART3 DTR)
37E5(UART3 RTS)
38E6(UART3 TX)
39E7(UART3 RX)
40F0(UART4 CTS, LPC HOST BIT 0)
41F1(UART4 DCD, LPC HOST BIT 1)
42F2(UART4 DSR, LPC HOST BIT 2)
43F3(UART4 RING, LPC HOST BIT 3)
44F4(UART4 DTR, LPC HOST CLOCK IO)
45F5(UART4 RTS, LPC HOST FRAME#)
46F6(UART4 TX, LPC HOST SERIRQ#, maybe BMC_PCH_SCI_LPC)
47F7(UART4 RX, LPC HOST RESET IO, maybe BMC_NCSI_MUX_STL)
48G0GPIOOutputoutput-hwm-vbat-enablePull high to connect the RTC battery to ADC9
49G1GPIOInputinput-id0-nPulled low when jumper ID0 is closed
50G2GPIOInputinput-id1-nPulled low when jumper ID1 is closed
51G3GPIOInputinput-id2-nPulled low when jumper ID2 is closed
52G4GPIOInputinput-aux-smb-alert-nSMBus alert for I2C bus 0 (AUX_PANEL1)
53G5
54G6GPIOInputinput-psu-smb-alert-nSMBus alert for I2C bus 2 (PSU_SMB1)
55G7
56H0
57H1
58H2
59H3
60H4GPIOInputinput-mfg-mode-nPulled low when jumper MFG1 is closed
61H5
62H6GPIOOutputled-heartbeat-nControls the green heartbeat LED on the board (active low)
63H7GPIOInputinput-case-open-nHigh while case open button is pressed, low when released
64I0(SYSCS#)
65I1(SYSCK)
66I2(SYSMOSI)
67I3(SYSMISO)
68I4(SPI1CS0# / VBCS#)
69I5(SPI1CK / VBCK)
70I6(SPI1MOSI / VBMOSI)
71I7(SPI1MISO / VBMISO)
72J0GPIOOutputoutput-bmc-ready-nSignals to the host that the BMC is ready (active low)
73J1(guess based on other asrock boards: BMC_PCH_BIOS_CS_N)
74J2
75J3
76J4VGAVGA horizontal sync
77J5VGAVGA vertical sync
78J6VGAVGA DDC clock
79J7VGAVGA DDC data
80K0I2CI2C bus 4 clock (PCI Express SMBus)
81K1I2CI2C bus 4 data (PCI Express SMBus)
82K2I2CI2C bus 5 clock (BMC SMBus)
83K3I2CI2C bus 5 data (BMC SMBus)
84K4(I2C bus 6 clock)
85K5(I2C bus 6 data)
86K6I2CI2C bus 7 clock (FRU and SPD EEPROM SMBus)
87K7I2CI2C bus 7 data (FRU and SPD EEPROM SMBus)
88L0(UART1 CTS)
89L1(UART1 DCD)
90L2(UART1 DSR)
91L3(UART1 RING)
92L4(UART1 DTR)
93L5(UART1 RTS)
94L6(UART1 TX)
95L7(UART1 RX)
96M0(UART2 CTS)
97M1(UART2 DCD)
98M2(UART2 DSR)
99M3(UART2 RING)
100M4(UART2 DTR)
101M5(UART2 RTS)
102M6(UART2 TX)
103M7(UART2 RX)
104N0PWMFAN1 PWM output
105N1PWMFAN2 PWM output
106N2PWMFAN3 PWM output
107N3PWMFAN4 PWM output
108N4PWMFAN6 PWM output
109N5PWMFAN5 PWM output
110N6
111N7
112O0TachometerFAN1 tachometer input
113O1TachometerFAN2 tachometer input
114O2TachometerFAN3 tachometer input
115O3TachometerFAN4 tachometer input 1
116O4TachometerFAN5 tachometer input 1
117O5TachometerFAN6 tachometer input 1
118O6
119O7
120P0
121P1
122P2
123P3TachometerFAN4 tachometer input 2
124P4TachometerFAN5 tachometer input 2
125P5TachometerFAN6 tachometer input 2
126P6
127P7
128Q0I2CI2C bus 2 clock (PSU_SMB1)
129Q1I2CI2C bus 2 data (PSU_SMB1)
130Q2I2CI2C bus 3 clock
131Q3I2CI2C bus 3 data
132Q4GPIOInputinput-bmc-smb-present-nBMC present input (BMC_SMB_1)
133Q5
134Q6PV33D
135Q7PV33DGPIOInputinput-pcie-wake-nPulled low when a PCI Express card asserts WAKE#
136R0
137R1
138R2(SPI2CS0#)
139R3(SPI2CK)
140R4(SPI2MOSI)
141R5(SPI2MISO)
142R6RGMIIMDC1
143R7RGMIIMDIO1
144S0PV33DGPIOInputinput-bmc-pchhot-nNeeds verification
145S1PV33D
146S2PV33D
147S3PV33D
148S4PV33D
149S5PV33D
150S6PV33D
151S7PV33D
152T0RGMIIDedicated LAN port: TXCK
153T1RGMIIDedicated LAN port: TXCL
154T2RGMIIDedicated LAN port: TXD0
155T3RGMIIDedicated LAN port: TXD1
156T4RGMIIDedicated LAN port: TXD2
157T5RGMIIDedicated LAN port: TXD3
158T6RMIINC-SI: RCLKO
159T7RMIINC-SI: TXEN
160U0RMIINC-SI: TXD0
161U1RMIINC-SI: TXD1
162U2
163U3
164U4RGMIIDedicated LAN port: RXCK
165U5RGMIIDedicated LAN port: RXCTL
166U6RGMIIDedicated LAN port: RXD0
167U7RGMIIDedicated LAN port: RXD1
168V0RGMIIDedicated LAN port: RXD2
169V1RGMIIDedicated LAN port: RXD3
170V2RMIINC-SI: CLKI
171V3
172V4RMIINC-SI: RXD0
173V5RMIINC-SI: RXD1
174V6RMIINC-SI: CRSDV
175V7RMIINC-SI: RXER
176W0ADCAnalog input representing 3VSB
177W1ADCAnalog input representing 5VSB
178W2ADCAnalog input representing VCPU
179W3ADCAnalog input representing VSOC
180W4ADCAnalog input representing VCCM
181W5ADCAnalog input representing APU VDDP
182W6ADCAnalog input representing PM VDD CLDO
183W7ADCAnalog input representing PM VDDCR S5
184X0ADCAnalog input representing PM VDDCR
185X1ADCAnalog input representing RTC battery voltage
186X2ADCAnalog input representing 3V
187X3ADCAnalog input representing 5V
188X4ADCAnalog input representing 12V
189X5(ADC)
190X6(ADC)
191X7(ADC)
192Y0PV33D
193Y1PV33D
194Y2PV33D
195Y3PV33D
196Y4I2CI2C bus 0 clock (AUX_PANEL1)
197Y5I2CI2C bus 0 data (AUX_PANEL1)
198Y6I2CI2C bus 1 clock (SuperIO and thermal sensor)
199Y7I2CI2C bus 1 data (SuperIO and thermal sensor)
200Z0PV33D
201Z1PV33D
202Z2PV33DGPIOOutputled-fault-n
203Z3PV33DGPIOOutputoutput-bmc-throttle-nNeeds verification
204Z4PV33D
205Z5PV33D
206Z6PV33D
207Z7PV33D
208AA0PV33DGPIOInputinput-cpu1-thermtrip-latch-n
209AA1PV33D
210AA2PV33DGPIOInputinput-cpu1-prochot-n
211AA3PV33D
212AA4PV33D
213AA5PV33D
214AA6PV33D
215AA7PV33D
216AB0PV33D
217AA1PV33D
218AA2PV33D
219AA3PV33D
220
221
222
223
224AC0LPCLAD0
225AC1LPCLAD1
226AC2LPCLAD2
227AC3LPCLAD3
228AC4LPCClock
229AC5LPCLFRAME
230AC6LPCIRQ
231AC7LPCReset

1.1.4 - 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

1.1.5 - ASRock Rack X570D4U mainboard: temperature sensors

This page describes the temperature sensors on the X570D4U.

Nuvoton NCT6796D-R SuperIO

This device can be accessed via I2C bus 1 at address 0x2D.

InputValidDescription
SYSTINYesClose to SuperIO chip, could be MB temperature
CPUTINNo
AUXTIN0No
AUXTIN1YesClose to SuperIO chip, could be MB temperature
AUXTIN2YesBottom left corner of the board, Card side temperature
AUXTIN3No
AUXTIN4No
TSI0_TEMPYesCPU temperature
TSI1_TEMPYesChipset temperature

Nuvoton W83773G

This device can be accessed via I2C bus 1 at address 0x4C.

InputValidDescription
temp1_inputYesInside of the W83773G, located close to the 10Gbit NIC
temp2_inputYesCconnected to a temperature diode in or close to the 10Gbit NIC
temp3_inputNo

1.1.6 - ASRock Rack X570D4U mainboard: fans

This page describes the fan connectors on the X570D4U.

Fan connectors

ConnectorPWMTacho 1Tacho 2
111-
222-
333-
44412
56513
65614

Fan 1-3 connector pinout

PinFunctionAsrock label
1GroundGND
2PowerFAN_VOLTAGE
3Tacho 1FAN_SPEED
4PWMFAN_SPEED_CONTROL

Fan 4-6 connector pinout

PinFunctionAsrock label
1GroundGND
2PowerFAN_VOLTAGE
3Tacho 1FAN_SPEED
4PWMFAN_SPEED_CONTROL
5Tacho 2SENSOR
6-NC

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.