I am trying to get the Axelera Metis M.2 module working on a NanoPC-T6 Plus board powered by the Rockchip RK3588 SoC running Ubuntu 22.04 (Linux kernel 5.10.0-1012-rockchip / ARM64).(I installed image file in this link https://support.axelera.ai/hc/en-us/articles/31859388491794-Bring-up-Voyager-SDK-in-NanoPC-T6?_gl=1*3zteth*_gcl_au*MTc5ODEwMTM1MC4xNzg3NzI0Mjgx because I have tested other OS images provided on the official NanoPC-T6 Plus wiki, but the issue persists, indicating a known PCIe memory allocation bug within the Ubuntu 22.04 kernel for this platform.)
However, the driver fails to probe the device due to PCI resource assignment failure (ENOMEM / error -12).
1. Device Identification & lspci Status
The PCIe device is visible on the bus (0000:01:00.0), but the Linux kernel fails to assign memory resources (MMIO) to Region 0 and Region 2:
$ lspci -vv -s 0000:01:00.0 | grep -iE 'Region|Memory|flags'
Region 0: Memory at <ignored> (64-bit, non-prefetchable) [disabled]
Region 2: Memory at <ignored> (32-bit, non-prefetchable) [disabled]
2. Driver Log Output (dmesg)
When loading the DKMS metis kernel driver (v1.6.2), the probe fails during memory resource allocation:
[ 17.953792] axl_aipu: root directory for axl_aipu
[ 17.954068] axl 0000:01:00.0: Failed to request resources
[ 17.954098] axl: probe of 0000:01:00.0 failed with error -12
Consequently, running axdevice results in a PCI count mismatch:
WARNING: PCI device count mismatch: lspci=1, triton=0
ERROR: min() arg is an empty sequence
-
Is there a recommended/officially supported Device Tree (
ranges) configuration for RK3588 / ARM64 architectures to map Metis BARs into 64-bit high memory space (0x0900000000)? -
Does the
metiskernel driver support high MMIO 64-bit relocation out of the box for ARM64 platforms? -
Are there any specific kernel patches or module options recommended for Rockchip BSP Linux 5.10 kernels?
Any guidance or example Device Tree snippets for ARM64 / RK3588 integration would be greatly appreciated!
