AMD 'Barcelo' passthrough issues - any success stories?
-
I am trying to pass through my AMD GPU to a Debian host. This sort of succeeds, but I am getting error messages about a "BIOS ROM". I have had a look online and found some resources to suggest how to provide one, but I am quite unsure on that and cannot locate a specific one for my GPU (AMD Ryzen 7 5825U with Radeon Graphics, I think Vega 8).
I am showing it has at least tried to load/associate the kernel module:
lspci -nnk -s 00:08.0 00:08.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Barcelo [1002:15e7] (rev c1) Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:1636] Kernel modules: amdgpuBut
dmesgoutput states it cannot locate a ROM.[ 4.655776] amdgpu 0000:00:08.0: amdgpu: Unable to locate a BIOS ROM [ 4.655797] amdgpu 0000:00:08.0: amdgpu: Fatal error during GPU init [ 4.655812] amdgpu 0000:00:08.0: amdgpu: amdgpu: finishing device. [ 4.656681] amdgpu 0000:00:08.0: probe with driver amdgpu failed with error -22Is there a trick to this, has anyone had success with this kind of AMD GPU? On my old hosts, enabling pass through was enough for it to just kind of work (Intel HD 530). The host machine outputs to a display normally when the card is in-use by the host. I am of the understanding the ROM is just part of the motherboard/GPU, there is some suggestion it can be dumped from the host-side, but I'm unsure on this.
Can anyone shed some light on how this should work, or whether it's just something in my setup that isn't working? I have IOMMU and SR-IOV enabled in the BIOS, but I don't know if it's working.
EDIT: It looks like I may just have a fake BIOS? The settings to enable all the relevant components (IOMMU, DMAr support etc) don't actually seem to do anything, they might just be for show -
dmesg | grep -i iommureturns nothing,dmesg | grep -i -e dmar -e vfio -e pcibackonly showspcibackinfo, andcat /proc/cmdlinecontains nothing about IOMMU. Oddly, XO is still reporting that IOMMU is enabled:
The output of
xe host-param-get uuid={uuid} param-name=chipset-infoalso returnsiommu: true, but the output ofxl info | grep "iommu"returns nothing.