Date: 2023-12-21
Last Updated: 2024-03-01
PRODUCT INFORMATION
Arm SystemReady SR-compliant SOAFEE’s reference development platform based on Ampere Altra SoCSystem configuration:
COM-HPC Ampere Altra server type module with Ampere Altra 32-core SoC
COM-HPC Server Base carrier board
32 GB 3200MHz DDR4 ECC Reg
128 GB NVMe M.2 storage
1x GbE + 4x 10GbE LAN ports (optional)
64x PCIe Gen4 lanes (3 x16, 2 x4 and 2 M.2 slots)
Liquid cooling assembly (optional)
750 Watt power supply
Tower enclosure
Specifications:
Ampere Altra SoC (Arm Neoverse N1 based architecture), 32 Arm v8.2 64-bit cores up to 1.7GHz, Arm SystemReady SR, 32GB DDR4 memory, 128GB NVMe storage, 64x PCIe Gen4 lanes (3 x16 available), 4x 10GbE (optional) and 1x GbE LAN, 4x USB 3.0/2.0 and 2x USB 3.0 [rear I/O], 2x USB 3.0 [front panel], open source EDKII, Yocto Linux OS support
GRAPHICS
PHYSICAL OUTPUT
The AVA contains an Aspeed VGA output, and some display managers (gdm3 confirmed) choose it by default, even if it’s not connect and even though HDMI is available. I could not find any config setting or work around to make gdm3 ignore the VGA output except for disabling the ast
kernel module:
root@ava:~# cat > /etc/modprobe.d/ast.conf <<'EOF' blacklist ast EOF root@ava:~# reboot
gdm3 + wayland
If gdm3 refuses to launch with wayland, it might be because of udev rules forcing xorg (e.g. see if file /lib/udev/rules.d/61-gdm.rules
) exists. The override conf is written to /var/run/gdm3/custom.conf
which you can edit and then restart gdm3.
Graphics during booting process with GPUs
There is no UEFI GOP driver support on AVA, according to ADLINK. †
†. https://docs.ipi.wiki/com-hpc/ava/How_to_install_Nvidia_Graphic_Card_Driver.html (Retrieved 2024-02-26) (Archive.org snapshot)
However, you can enable graphics during boot by flashing the GPU’s ROM. Instructions on how to flash arm64 EFI OptionRom on an AMDGPU
PCI
See also:
Discussion on the ampere computing forum about AMD GPU bugs and patches.
MMIO access
The PCI standard implementation in the AVA platform has a few problems. PCI devices that require unaligned MMIO reads, like a GPU, require a patched kernel to overcome those problems.
Some patches come from Ampere themselves, and a single patch reverts an amdgpu
change that makes it not work on AVA.
Note: Build the patched kernel with CONFIG_ALTRA_ERRATUM_82288=y
You can find a 6.5.11 kernel with rebased patches here: https://github.com/epilys/linux/tree/6.5.11-ampere-pci-fixes and 6.6.2 here https://github.com/epilys/linux/tree/6.6.2-ampere-pci-fixes
The original (not rebased) patches are also attached as files in this page. The amdgpu
patch has been merged into linux but might be missing from earlier versions and need to be applied.
ECAM access
Ampere Altra supports only 32-bit ECAM reads. Linux includes a quirk fix.
https://github.com/torvalds/linux/commit/877c1a5f79c6984bbe3f2924234c08e2f4f1acd5
Tips for mainline kernel
When you want to use the mainline kernel with defconfig, also enable the following config options.
DRM_AMDGPU
FW_LOADER_COMPRESS, FW_LOADER_COMPRESS_ZSTD
CMDLINE flags
pcie_aspm=off amdgpu.aspm=0 amdgpu.runpm=0
†