Mlx5_core Driver and ATS Support for ConnectX-7 on RISC-V Linux

Hi,

I am working on a RISC-V platform and planning to use a ConnectX-7 NIC. I have two questions regarding driver and feature compatibility:

  1. Driver Compatibility: Is the upstream mlx5_core driver fully supported and verified to work on the RISC-V architecture in Linux 6.17?

  2. ATS Support: Does the mlx5_core driver support enabling ATS (Address Translation Services) on RISC-V? Are there any known architectural limitations or specific IOMMU configurations required to make ATS work on this platform?

System Info:

  • CPU: SiFive P670 (RISC-V)

  • NIC: ConnectX-7

  • OS/Kernel: Linux 6.17

Thanks!

Hi,

Thanks for your question.

Following to my check in Nvidia docs, RISC-V arch is not listed among officially tested architectures.

You may need to check it with the server and OS vendors.

The below commands may help you as well:

This will enable ATS in Cx7 firmware, you will need a power cycle.

mstconfig -d set ATS_ENABLED=1

To check if it’s enabled in kernel config:

grep CONFIG_PCI_ATS /boot/config-$(uname -r)

dmesg | grep -i “riscv.*iommu|iommu.*riscv”
cat /proc/cmdline | grep -i iommu

lspci -vv -s | grep -i ats

Best Regards,

Anatoly

Hi Anatoly, Thanks for answering my question. I have another question.
Regarding the power cycle requirement after enabling ATS, does this mean the configuration only needs to be set once, and ATS will remain enabled in this card going forward? If yes, under what conditions would the card revert to having ATS disabled?