Looking for motherboard recommendations. Dual GPU passthrough.

a5cent

New Member
Sep 10, 2025
10
2
3
Hello all!

I’m planning to purchase a new AM5 motherboard and would love some input from the community. My key requirements:
  • Two bifurcated PCIe x16 GPU slots, with confirmed support for dual GPU passthrough to separate VMs.
  • Two PCIe x4 NVMe slots.
  • Generally plays nice with Proxmox (clean IOMMU groups, no ACS override or kernel patches needed).
My current setup includes an nVidia RTX 4080 and I'd like to add an nVidia RTX A2000. One for gaming, one for professional CAD and rendering applications.

If anyone has practical success passing through two NVIDIA GPUs on an AM5 board, something like a ASUS ProArt X870E-CREATOR WIFI or similar, I’d love to hear about it.

Additional context:
I’ve been using the ASUS ProArt X670E-CREATOR WIFI. While I liked the board overall, it wasn’t ideal for VFIO. The IOMMU groupings were on the messy side, and I could only ever pass through a single GPU. After plugging in the A2000, all guest VMs refused to boot.

CoPilot suggested the issue was likely related to NVIDIA GPUs requesting large BARs, which exhausted MMIO address space. The consumer oriented BIOS offered no way to reserve or expand MMIO. Fortunately, I had a chance to sell the board at a good price, which brings me here.
 
Last edited:
For AM4 only X570(S) has good IOMMU groups but I don't know about AM5 yet. Please let us know if your motherboard has (almost) all devices in separate groups (with using pcie_acs_override).
 
I´m just getting started, so I´m far from a final verdict. It is looking good though. All the basics worked fine without requiring me to jump through any hoops, including PCIe passthrough for one GPU and one USB controller.

IOMMU isolation is some of the best I´ve seen on a non-server motherboard. This is without ACS override enabled, BIOS version 1605:

Code:
Group 0:    [1022:14d8]     00:00.0  Host bridge                              Raphael/Granite Ridge Root Complex
Group 1:    [1022:14da]     00:01.0  Host bridge                              Raphael/Granite Ridge Dummy Host Bridge
Group 2:    [1022:14db] [R] 00:01.1  PCI bridge                               Raphael/Granite Ridge GPP Bridge
Group 3:    [1022:14db] [R] 00:01.2  PCI bridge                               Raphael/Granite Ridge GPP Bridge
Group 4:    [1022:14da]     00:02.0  Host bridge                              Raphael/Granite Ridge Dummy Host Bridge
Group 5:    [1022:14db] [R] 00:02.1  PCI bridge                               Raphael/Granite Ridge GPP Bridge
Group 6:    [1022:14db] [R] 00:02.2  PCI bridge                               Raphael/Granite Ridge GPP Bridge
Group 7:    [1022:14da]     00:03.0  Host bridge                              Raphael/Granite Ridge Dummy Host Bridge
Group 8:    [1022:14da]     00:04.0  Host bridge                              Raphael/Granite Ridge Dummy Host Bridge
Group 9:    [1022:14da]     00:08.0  Host bridge                              Raphael/Granite Ridge Dummy Host Bridge
Group 10:   [1022:14dd] [R] 00:08.1  PCI bridge                               Raphael/Granite Ridge Internal GPP Bridge to Bus [C:A]
Group 11:   [1022:14dd] [R] 00:08.3  PCI bridge                               Raphael/Granite Ridge Internal GPP Bridge to Bus [C:A]
Group 12:   [1022:790b]     00:14.0  SMBus                                    FCH SMBus Controller
            [1022:790e]     00:14.3  ISA bridge                               FCH LPC Bridge
Group 13:   [1022:14e0]     00:18.0  Host bridge                              Raphael/Granite Ridge Data Fabric; Function 0
            [1022:14e1]     00:18.1  Host bridge                              Raphael/Granite Ridge Data Fabric; Function 1
            [1022:14e2]     00:18.2  Host bridge                              Raphael/Granite Ridge Data Fabric; Function 2
            [1022:14e3]     00:18.3  Host bridge                              Raphael/Granite Ridge Data Fabric; Function 3
            [1022:14e4]     00:18.4  Host bridge                              Raphael/Granite Ridge Data Fabric; Function 4
            [1022:14e5]     00:18.5  Host bridge                              Raphael/Granite Ridge Data Fabric; Function 5
            [1022:14e6]     00:18.6  Host bridge                              Raphael/Granite Ridge Data Fabric; Function 6
            [1022:14e7]     00:18.7  Host bridge                              Raphael/Granite Ridge Data Fabric; Function 7
Group 14:   [10de:2704] [R] 01:00.0  VGA compatible controller                AD103 [GeForce RTX 4080]
            [10de:22bb]     01:00.1  Audio device                             Device 22bb
Group 15:   [144d:a80c] [R] 02:00.0  Non-Volatile memory controller           NVMe SSD Controller S4LV008[Pascal]
Group 16:   [1022:43f4] [R] 03:00.0  PCI bridge                               600 Series Chipset PCIe Switch Upstream Port
Group 17:   [1022:43f5] [R] 04:00.0  PCI bridge                               600 Series Chipset PCIe Switch Downstream Port
Group 18:   [1022:43f5] [R] 04:08.0  PCI bridge                               600 Series Chipset PCIe Switch Downstream Port
            [1022:43f4] [R] 06:00.0  PCI bridge                               600 Series Chipset PCIe Switch Upstream Port
            [1022:43f5] [R] 07:00.0  PCI bridge                               600 Series Chipset PCIe Switch Downstream Port
            [1022:43f5] [R] 07:05.0  PCI bridge                               600 Series Chipset PCIe Switch Downstream Port
            [1022:43f5] [R] 07:08.0  PCI bridge                               600 Series Chipset PCIe Switch Downstream Port
            [1022:43f5]     07:0c.0  PCI bridge                               600 Series Chipset PCIe Switch Downstream Port
            [1022:43f5]     07:0d.0  PCI bridge                               600 Series Chipset PCIe Switch Downstream Port
            [8086:125c] [R] 09:00.0  Ethernet controller                      Ethernet Controller I226-V
            [144d:a80c] [R] 0a:00.0  Non-Volatile memory controller           NVMe SSD Controller S4LV008[Pascal]
            [1022:43fd] [R] 0b:00.0  USB controller                           800 Series Chipset USB 3.x XHCI Controller
USB:        [1d6b:0002]      Bus 001 Device 001                               Linux Foundation 2.0 root hub
USB:        [0bda:5411]      Bus 001 Device 002                               Realtek Semiconductor Corp. RTS5411 Hub
USB:        [0b05:19af]      Bus 001 Device 003                               ASUSTek Computer, Inc. AURA LED Controller
USB:        [04f2:2219]      Bus 001 Device 006                               Chicony Electronics Co., Ltd Peri    xx Ergo PB-835
USB:        [1532:00b2]      Bus 001 Device 007                               Razer USA, Ltd Razer DeathAdder V3
USB:        [1d6b:0003]      Bus 002 Device 001                               Linux Foundation 3.0 root hub
            [1022:43f6] [R] 0c:00.0  SATA controller                          600 Series Chipset SATA Controller
Group 19:   [1022:43f5]     04:0c.0  PCI bridge                               600 Series Chipset PCIe Switch Downstream Port
            [1022:43fd] [R] 0d:00.0  USB controller                           800 Series Chipset USB 3.x XHCI Controller
Group 20:   [1022:43f5]     04:0d.0  PCI bridge                               600 Series Chipset PCIe Switch Downstream Port
            [1022:43f6] [R] 0e:00.0  SATA controller                          600 Series Chipset SATA Controller
Group 21:   [1b21:2421] [R] 0f:00.0  PCI bridge                               ASM4242 PCIe Switch Upstream Port
Group 22:   [1b21:2423] [R] 10:00.0  PCI bridge                               ASM4242 PCIe Switch Downstream Port
Group 23:   [1b21:2423] [R] 10:01.0  PCI bridge                               ASM4242 PCIe Switch Downstream Port
Group 24:   [1b21:2423] [R] 10:02.0  PCI bridge                               ASM4242 PCIe Switch Downstream Port
            [1b21:2426] [R] 75:00.0  USB controller                           ASM4242 USB 3.2 xHCI Controller
USB:        [1d6b:0002]      Bus 005 Device 001                               Linux Foundation 2.0 root hub
USB:        [1d6b:0003]      Bus 006 Device 001                               Linux Foundation 3.0 root hub
Group 25:   [1b21:2423] [R] 10:03.0  PCI bridge                               ASM4242 PCIe Switch Downstream Port
            [1b21:2425] [R] 76:00.0  USB controller                           ASM4242 USB 4 / Thunderbolt 3 Host Router
Group 26:   [1002:164e] [R] 77:00.0  VGA compatible controller                Raphael
Group 27:   [1002:1640] [R] 77:00.1  Audio device                             Radeon High Definition Audio Controller [Rembrandt/Strix]
Group 28:   [1022:1649]     77:00.2  Encryption controller                    Family 19h PSP/CCP
Group 29:   [1022:15b6] [R] 77:00.3  USB controller                           Raphael/Granite Ridge USB 3.1 xHCI
USB:        [1d6b:0002]      Bus 007 Device 001                               Linux Foundation 2.0 root hub
USB:        [1d6b:0003]      Bus 008 Device 001                               Linux Foundation 3.0 root hub
Group 30:   [1022:15b7] [R] 77:00.4  USB controller                           Raphael/Granite Ridge USB 3.1 xHCI
USB:        [1d6b:0003]      Bus 010 Device 001                               Linux Foundation 3.0 root hub
USB:        [1d6b:0002]      Bus 009 Device 001                               Linux Foundation 2.0 root hub
Group 31:   [1022:15e3]     77:00.6  Audio device                             Family 17h/19h/1ah HD Audio Controller
Group 32:   [1022:15b8] [R] 78:00.0  USB controller                           Raphael/Granite Ridge USB 2.0 xHCI
USB:        [1d6b:0002]      Bus 011 Device 001                               Linux Foundation 2.0 root hub
USB:        [1d6b:0003]      Bus 012 Device 001                               Linux Foundation 3.0 root hub

What I´m very impressed by is the amount of MMIO address space the board offers. The ProArt X670E didn´t even manage 1 GB, which was too little to pass through my second nVidia GPU. The ProArt X870E manages to provide over 960 GB of MMIO address space:

Code:
# cat /proc/iomem | grep -i 'PCI Bus'
  000a0000-000dffff : PCI Bus 0000:00
80000000-dfffffff : PCI Bus 0000:00
  80000000-806fffff : PCI Bus 0000:03
    80000000-806fffff : PCI Bus 0000:04
      80000000-804fffff : PCI Bus 0000:06
        80000000-804fffff : PCI Bus 0000:07
          80000000-801fffff : PCI Bus 0000:09
          80200000-802fffff : PCI Bus 0000:0a
          80300000-803fffff : PCI Bus 0000:0b
          80400000-804fffff : PCI Bus 0000:0c
      80500000-805fffff : PCI Bus 0000:0d
      80600000-806fffff : PCI Bus 0000:0e
  ac000000-dc7fffff : PCI Bus 0000:0f
    ac000000-dc7fffff : PCI Bus 0000:10
      ac000000-c3ffffff : PCI Bus 0000:15
      c4000000-dbffffff : PCI Bus 0000:45
      dc000000-dc3fffff : PCI Bus 0000:75
      dc400000-dc7fffff : PCI Bus 0000:76
  dd000000-de0fffff : PCI Bus 0000:01
  de900000-decfffff : PCI Bus 0000:77
  ded00000-dedfffff : PCI Bus 0000:78
  dee00000-deefffff : PCI Bus 0000:02
1080000000-ffffffffff : PCI Bus 0000:00
  b800000000-f7ffffffff : PCI Bus 0000:0f
    b800000000-f7ffffffff : PCI Bus 0000:10
      b800000000-d7ffffffff : PCI Bus 0000:15
      d800000000-f7ffffffff : PCI Bus 0000:45
  f800000000-f811ffffff : PCI Bus 0000:01
  f820000000-f8301fffff : PCI Bus 0000:77

I still have other things to get to, but in a week or two I hope to get back to trying PCIe passthrough for my second GPU.

Unrelated to Proxmox, but the only thing I got stuck on so far is not being able to write ARGB settings to the firmware. If ARGB can only be controlled from a running Windows OS, then it´s dead to me and just gets turned off.
 
Last edited:
  • Like
Reactions: leesteken
Other people also reported very good IOMMU groups (which I honestly did not expect) for X870E: https://forum.level1techs.com/t/x870e-iommu-and-general-vfio-things/
Yeah. To be honest, most boards have worked well enough for me so far. Few were great, but I also never attempted to do much beyond single GPU passthrough, which most better boards can do fine. The GPU, particularly nVidia, has always been the big troublemaker for me.

Dual GPU passthrough is closer to VDI server territory. This just wasn't possible with the ProArt X670E. I've inserted both GPUs now and all my guests still boot, which is what I was hoping for from the ProArt X870E. I'm happy with that.

Sadly, as usual, I'm stuck with Code 43 on the passed through GPU. This is what I dreaded. I always struggle with this, because I have no idea how to diagnose this systematically. This weekend I'll have to dig into this and hopefully can find a solution.
 
Last edited: