AVA Platform quirks and errata

Date: 2023-12-21
Last Updated: 2024-03-01
ADLINK's AVA Developer Platform
ADLINK's AVA Developer Platform

PRODUCT INFORMATION
Arm SystemReady SR-compliant SOAFEE’s reference development platform based on Ampere Altra SoC

System 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

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.

discussion on LKML

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

†.

Other AVA platform information pages