The ASRock Rack ALTRAD8UD is an Ampere Altra LGA 4926 based motherboard with 8 DDR4 channels, 4 x16 PCIe slots, USB 3.2, NVMe and 12VO power input.
Being based around a server processor/SoC, it works a bit differently than PCs people might be more familiar with. Firstly, it uses DDR4 RDIMMs or LRDIMMs - not UDIMMs. These are server memory modules which support ECC.
Secondly, there's a separate BMC (Baseboard Management Controller) which provides VGA output and remote management. Plug a network cable into the "MGMT" port on the back and 2-3 minutes after supplying power to the board (i.e. turning the PSU on) you'll be able to control the machine remotely, see various statuses etc.
The BMC runs a Linux distribution called OpenBMC. The default login is root/0penBmc - and is accessible via https and ssh.
The power button on the front panel only works after the BMC has booted.
The board comes with a single double page sheet with assembly instructions, but no printed manual.
You can find the manual online at https://www.asrockrack.com/general/productdetail.asp?Model=ALTRAD8UD-1L2T#Manual - it has lots of useful information so is definitely worth having open when assembling and first booting it.
The latest BMC and BIOS firmware can be downloaded from https://www.asrockrack.com/general/productdetail.asp?Model=ALTRAD8UD-1L2T#Download.
When turning the host on for the first time, it's best if you can have a second machine accessible where you can ssh to the following ports to see diagnostic information as the system boots:
Port 2201: Secure Console (TF-A)
Port 2202: SCP (SMpro and PMpro)
Port 2203: Host (UEFI/OS)
On port 2202, you should see something like this. The SMpro runs first, followed by PMpro - and then the main application processor (the ARMv8 SoC) powers on and starts booting.
SMpro firmware v1.0 - build 20190626
SEC:fuselock: 00000001 tmmdbglockr: 00000001
tmmnsdbgcsr: 00000003 tmmsdbgcsr: 00000003
SMpro Runtime Firmware v2.10.20230517
Failsafe: 0
P035
P034
Board: config 0
Available CPM: 0x000000FFFFC3FFC3
P036
P038
P040
Probe I2C10 DIMM0
Probe I2C10 DIMM1
Probe I2C10 DIMM2
Probe I2C10 DIMM3
Probe I2C10 DIMM4
Probe I2C10 DIMM5
Probe I2C10 DIMM6
Probe I2C10 DIMM7
Probe I2C2 DIMM0
Probe I2C2 DIMM1
Probe I2C2 DIMM2
Probe I2C2 DIMM3
Probe I2C2 DIMM4
Probe I2C2 DIMM5
Probe I2C2 DIMM6
Probe I2C2 DIMM7
DDR: Operational DIMM: 0x00005555
DDR: Failure DIMM: 0x00000000
DDR: Non-Operational DIMM: 0x00000000
P026
P033
P028
P054
PMpro output start
PMpro Runtime Firmware v2.10.20230517
I2C0: Clear bus
2P mode: 0x00000002
PMpro output complete
Port 2203 should display something like this, with memory initialization/training, followed by UEFI and eventually OS boot:
NOTICE: AM FW vion 220CP: 0ff00900
MCU param:
ecc_en = 00000002 [default: 00000001]
DRAM populated DIMMs:
SK0 MC0 S0: RDIMM[2c:80] 64GB 3200 ECC 2R x4 RCD[9d:86] 36ASF8G72PZ-3G2F1
SK0 MC1 S0: RDIMM[2c:80] 64GB 3200 ECC 2R x4 RCD[9d:86] 36ASF8G72PZ-3G2F1
SK0 MC2 S0: RDIMM[2c:80] 64GB 3200 ECC 2R x4 RCD[9d:86] 36ASF8G72PZ-3G2F1
SK0 MC3 S0: RDIMM[2c:80] 64GB 3200 ECC 2R x4 RCD[9d:86] 36ASF8G72PZ-3G2F1
SK0 MC4 S0: RDIMM[2c:80] 64GB 3200 ECC 2R x4 RCD[9d:86] 36ASF8G72PZ-3G2F1
SK0 MC5 S0: RDIMM[2c:80] 64GB 3200 ECC 2R x4 RCD[9d:86] 36ASF8G72PZ-3G2F1
SK0 MC6 S0: RDIMM[2c:80] 64GB 3200 ECC 2R x4 RCD[9d:86] 36ASF8G72PZ-3G2F1
SK0 MC7 S0: RDIMM[2c:80] 64GB 3200 ECC 2R x4 RCD[9d:86] 36ASF8G72PZ-3G2F1
CP: 3ff00100
CP: 3ff00200
...
CP: 00f01902
DRAM ECC Initialization: [100] [ ==================== ]
CP: 0ff01200
CP: 3ff00800
DRAM memory regions:
Node[0] Region[0]: 0x000080000000 - 0x0000ffffffff
Node[0] Region[1]: 0x080000000000 - 0x08007fffffff
Node[0] Region[2]: 0x080100000000 - 0x087fffffffff
DRAM: 512GB DDR4 3200 SYMBOL ECC
Any problems booting, such as using incorrect RAM should be displayed on one of those consoles.
If all else fails and the system appears 'dead', there's an undocumented BMC debug console available on the bottom-left side of the motherboard. This should show Linux (OpenBMC) booting and eventually provide a login prompt.
I found that if the motherboard is installed such that the 'ID' (UID) button is wedged pushed in, the BMC will fail to boot: a couple of lines of text will be printed before it hangs.
The header has the following pins, from left to right:
Rx (BMC Rx, Tx from host's perspective)
Tx (BMC Tx, Rx from host's perspective)
3.3V
Not Connected (no pin)
GND (Ground)
You should use a USB to TTL converter to connect them.
Examples of such devices are the DSD TECH SH-U09C5.
When (or after) installing Linux, you might want to edit the kernel boot commandline via GRUB (/etc/default/grub) and add console=tty1
to display boot messages on the video output otherwise they might go to the serial console (i.e. ssh port 2203) instead.
You probably want to disable automatic suspend/hibernate/sleep. From https://ostechnix.com/linux-tips-disable-suspend-and-hibernation/
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Blacklist the ast
and nouveau
kernel modules:
Edit /etc/modprobe.d/50-blacklist.conf :
blacklist ast
blacklist nouveau
You can then install the NVIDIA drivers. For newer cards, the Open GPU drivers are preferred. For example, on OpenSUSE follow the instructions at https://sndirsch.github.io/nvidia/2022/06/07/nvidia-opengpu.html .
Note that the two PCIe slots closest to the CPU are x8 and not x16 when using an Ampere Altra CPU.
If you have an Altra Max installed, all 4 slots are x16.
This means that when using an Atra CPU, you'll want to install x16 card such as GPUs in the furthest two slots, which might be surprising.
By default, getting through POST takes about 3 minutes. You can reduce that to about 1 minute by disabling the network stack in the UEFI Setup.
This disables network boot (PXE/HTTP) and disables Redfish support during the UEFI phase.