My current status (with the setup described in these salt recipes) shows in the VM logs:
[2021-10-06 22:38:28] [ 3.292678] [drm] BIOS signature incorrect 0 0
[2021-10-06 22:38:28] [ 3.292699] amdgpu 0000:00:05.0: Invalid PCI ROM data signature: expecting 0x52494350, got 0xcb03aa55
[2021-10-06 22:38:28] [ 3.342064] [drm] BIOS signature incorrect 0 0
[2021-10-06 22:38:28] [ 3.342169] [drm:amdgpu_get_bios [amdgpu]] *ERROR* Unable to locate a BIOS ROM
[2021-10-06 22:38:28] [ 3.342209] amdgpu 0000:00:05.0: amdgpu: Fatal error during GPU init
[2021-10-06 22:38:28] [ 3.342284] amdgpu 0000:00:05.0: amdgpu: amdgpu: finishing device.
the stubdom log shows:
[2021-10-06 21:29:01] pcifront pci-0: Installing PCI frontend
[2021-10-06 21:29:01] xen:swiotlb_xen: Warning: only able to allocate 4 MB for software IO TLB
[2021-10-06 21:29:01] software IO TLB: mapped [mem 0x04c00000-0x05000000] (4MB)
[2021-10-06 21:29:01] written 110 bytes to vchan
[2021-10-06 21:29:01] pcifront pci-0: Creating PCI Frontend Bus 0000:00
[2021-10-06 21:29:01] pcifront pci-0: PCI host bridge to bus 0000:00
[2021-10-06 21:29:01] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
[2021-10-06 21:29:01] pci_bus 0000:00: root bus resource [mem 0x00000000-0xffffffffffff]
[2021-10-06 21:29:01] pci_bus 0000:00: root bus resource [bus 00-ff]
[2021-10-06 21:29:01] pci 0000:00:00.0: [1002:1636] type 00 class 0x030000
[2021-10-06 21:29:01] pci 0000:00:00.0: reg 0x10: [mem 0xb0000000-0xbfffffff 64bit pref]
[2021-10-06 21:29:01] pci 0000:00:00.0: reg 0x18: [mem 0xc0000000-0xc01fffff 64bit pref]
[2021-10-06 21:29:01] pci 0000:00:00.0: reg 0x20: [io 0xe000-0xe0ff]
[2021-10-06 21:29:01] pci 0000:00:00.0: reg 0x24: [mem 0xfe400000-0xfe47ffff]
[2021-10-06 21:29:01] pci 0000:00:00.0: reg 0x30: [mem 0x000c0000-0x000dffff pref]
[2021-10-06 21:29:01] pcifront pci-0: claiming resource 0000:00:00.0/0
[2021-10-06 21:29:01] pcifront pci-0: claiming resource 0000:00:00.0/2
[2021-10-06 21:29:01] pcifront pci-0: claiming resource 0000:00:00.0/4
[2021-10-06 21:29:01] pcifront pci-0: claiming resource 0000:00:00.0/5
[2021-10-06 21:29:01] pcifront pci-0: claiming resource 0000:00:00.0/6
[2021-10-06 21:29:01] pci 0000:00:00.0: can't claim BAR 6 [mem 0x000c0000-0x000dffff pref]: address conflict with Reserved [mem 0x000a0000-0x000fffff]
[2021-10-06 21:29:01] pcifront pci-0: Could not claim resource 0000:00:00.0/6! Device offline. Try using e820_host=1 in the guest config.
Could it be that the ROM should be accessible from BAR 6 ?
Is the Try using e820_host=1 in the guest config
suggestion useful for us ? From the code it looks like the pci-e820-host
feature defaults to 1 already (but then, seeing the libvirt config for sys-gui-gpu
would help to confirm where we stand).
Since the ROM apparently can’t be read from the GPU, I booted on a Debian Live stick, and was able to extract it from /sys
(though I’m not yet sure it is a pristine ROM image and not a shadow RAM copy that would have been patched, eg. by the EFI driver). It does have the proper signature where the kernel’s pci/rom.c
is looking for it. To use this ROM I tried this patch to the pci.xml template:
--- pci.xml.orig 2021-10-05 00:47:56.599213557 +0200
+++ pci.xml 2021-10-06 21:48:24.315969520 +0200
@@ -12,6 +12,9 @@
slot="0x{{ device.device }}"
function="0x{{ device.function }}" />
</source>
+{% if options.get('vga-rom', False) %}
+ <rom bar="on" file="{{ options.get('vga-rom', '') }}" />
+{% endif %}
</hostdev>
{# vim : set ft=jinja ts=4 sts=4 sw=4 et : #}
… and hacked by hand a vga-rom
option in qubes.xml
, with:
<option name='vga-rom'>/path/to/renoir.rom</option>
It looks like the <rom>
element is indeed parsed (if I place it in a wrong place, eg. inside <source>
I do see an error through journalctl
)… but that does not change the system’s behaviour.
Anyone with a clue ?