Date: Mon, 15 Sep 2025 11:58:05 -0700 From: Chuck Tuffli <chuck@freebsd.org> To: freebsd-virtualization@freebsd.org Cc: Mark Johnston <markj@freebsd.org>, John Baldwin <jhb@freebsd.org> Subject: Max BAR size for passthru? Message-ID: <CAKAYmM%2BiMb%2B-CLWp05f-0sC2fmodPwOJWY4Xs6si8oXWaoN%2BdA@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
I'm trying to get PCI passthru of an AMD GPU working, and am seeing
what I think is a problem mapping the device's BAR into the guest. The
host shows:
# pciconf -lbevV pci0:3:0:0
vgapci0@pci0:3:0:0: class=0x030000 rev=0xc0 hdr=0x00 vendor=0x1002
device=0x7590 subvendor=0x148c subdevice=0x2437
vendor = 'Advanced Micro Devices, Inc. [AMD/ATI]'
device = 'Navi 44 [Radeon RX 9060 XT]'
class = display
subclass = VGA
bar [10] = type Prefetchable Memory, range 64, base
0x4000000000, size 268435456, enabled
bar [18] = type Prefetchable Memory, range 64, base
0x4010000000, size 2097152, enabled
bar [20] = type I/O Port, range 32, base 0x6000, size 256, enabled
bar [24] = type Memory, range 32, base 0x81100000, size 524288, enabled
PCI-e errors = Correctable Error Detected
Unsupported Request Detected
Non-fatal = Unsupported Request
Corrected = Advisory Non-Fatal Error
(yes, a 256 MiB BAR). After starting the Linux guest, bhyve spits out the error:
bhyve: pci_passthru: map_pptdev_mmio failed. I've traced this a bit
and see that vm_map_find returns 3 (KERN_NO_SPACE) with arguments
off=0, addr=0x800000000, len=2097152, max_addr=0
In the guest, lspci reports
# lspci -s 00:07.0 -v
00:07.0 VGA compatible controller: Advanced Micro Devices, Inc.
[AMD/ATI] Device 7590 (rev c0) (prog-if 00 [VGA controller])
Subsystem: Tul Corporation / PowerColor Device 2437
Flags: bus master, fast devsel, latency 0
Memory at 800000000 (64-bit, prefetchable) [size=256M]
Memory at 810000000 (64-bit, prefetchable) [size=2M]
I/O ports at 2000 [size=256]
Memory at c1000000 (32-bit, non-prefetchable) [size=512K]
Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
Has anyone run into something like this before? Is this a limit I'm
bumping into? Suggestions for what to poke next, etc.? TIA!
--chuck
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAKAYmM%2BiMb%2B-CLWp05f-0sC2fmodPwOJWY4Xs6si8oXWaoN%2BdA>
