[vfio-users] amd rx480 invalid rom contents

P. Pronk vfio at pronk.nl
Mon Jan 23 14:37:55 UTC 2017


On 2017-01-23 12:13, Manuel Ullmann wrote:
> depending on the Polaris being a reference card
Thanks for your comments, but it seems the MSI Gaming X series is not a 
reference card (its factory overclocked).

> So the vBios being bricked by the manufacturr should be also kept in 
> mind.
I dont think this is the case here, as using GPU-Z under Windows shows a 
valid EFI rom. It seems a Linux issue only, I have submitted a case with 
MSI to see what they say.

On 23/01/17 02:46, Scott wrote:
> Here is my xml in case it helps:
Thanks, if I add the rom (the one I saved using GPU-Z under Windows) my 
display turns on.

Unfortunately it didnt work then yet, as my dmesg was flooded with the 
following message:
vfio-pci 0000:01:00.0: BAR 0: can't reserve [mem 0xc0000000-0xcfffffff 
64bit pref]

This was caused due grub loading vesafb for the RX480 as the graphical 
terminal was enabled. So in /etc/default/grub I had to add 
GRUB_GFXPAYLOAD_LINUX="text" and disable 'GRUB_GFXMODE' (not sure about 
the last one as maybe thats implicit but it doesnt hurt either).

Unfortunately that does mean I cant use ddccontrol it seems, as that 
complains about missing a framebuffer driver. Therefore I've also asked 
Asus whether they plan to support choosing the primary vga slot like 
Gigabyte does and they said 'they will discuss this internally'.
My Asus support agent actually had never heard of vfio before and 
repeatedly said that Asus only supports multiple GPU's when using 
SLI/Crossfire. So maybe if more people would contact their local Asus 
support agent and request this feature they are more willing to look at 
it? Who takes the hint? ;)

I had to install the driver twice as the first time the install failed, 
but at the moment the GPU appears to be working correctly. Now first on 
to sound before I do some 3D testing.

Kind rgds, Pim

> 
> Best regards,
> Manuel
>> Here is my xml in case it helps:
>> 
>> <domain type='kvm'>
>> <name>dozer</name>
>> <uuid>989e9ee8-2e0a-asdf-asdf-00a41fdb1b31</uuid>
>> <title>dozer</title>
>> <memory unit='KiB'>8388608</memory>
>> <currentMemory unit='KiB'>8388608</currentMemory>
>> <memoryBacking>
>> <hugepages/>
>> </memoryBacking>
>> <vcpu placement='static'>4</vcpu>
>> <cputune>
>> <vcpupin vcpu='0' cpuset='4'/>
>> <vcpupin vcpu='1' cpuset='5'/>
>> <vcpupin vcpu='2' cpuset='6'/>
>> <vcpupin vcpu='3' cpuset='7'/>
>> </cputune>
>> <os>
>> <type arch='x86_64' machine='pc-i440fx-xenial'>hvm</type>
>> <loader readonly='yes'
>> type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
>> <nvram>/var/lib/libvirt/qemu/nvram/dozer_VARS.fd</nvram>
>> <boot dev='hd'/>
>> </os>
>> <features>
>> <acpi/>
>> <apic/>
>> <hyperv>
>> <relaxed state='on'/>
>> <vapic state='on'/>
>> <spinlocks state='on' retries='8191'/>
>> </hyperv>
>> </features>
>> <cpu mode='host-passthrough'>
>> <topology sockets='1' cores='4' threads='1'/>
>> </cpu>
>> <clock offset='localtime'>
>> <timer name='rtc' tickpolicy='catchup'/>
>> <timer name='pit' tickpolicy='delay'/>
>> <timer name='hpet' present='no'/>
>> <timer name='hypervclock' present='yes'/>
>> </clock>
>> <on_poweroff>destroy</on_poweroff>
>> <on_reboot>restart</on_reboot>
>> <on_crash>restart</on_crash>
>> <pm>
>> <suspend-to-mem enabled='no'/>
>> <suspend-to-disk enabled='no'/>
>> </pm>
>> <devices>
>> <emulator>/usr/bin/kvm-spice</emulator>
>> <disk type='file' device='disk'>
>> <driver name='qemu' type='qcow2'/>
>> <source file='/var/lib/libvirt/images/dozer.qcow2'/>
>> <target dev='sda' bus='scsi'/>
>> <address type='drive' controller='0' bus='0' target='0' unit='0'/>
>> </disk>
>> <disk type='block' device='disk'>
>> <driver name='qemu' type='raw' cache='none' io='native'/>
>> <source dev='/dev/sdb1'/>
>> <target dev='sdb' bus='scsi'/>
>> <address type='drive' controller='0' bus='0' target='0' unit='1'/>
>> </disk>
>> <controller type='usb' index='0' model='ich9-ehci1'>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
>> function='0x7'/>
>> </controller>
>> <controller type='usb' index='0' model='ich9-uhci1'>
>> <master startport='0'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
>> function='0x0' multifunction='on'/>
>> </controller>
>> <controller type='usb' index='0' model='ich9-uhci2'>
>> <master startport='2'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
>> function='0x1'/>
>> </controller>
>> <controller type='usb' index='0' model='ich9-uhci3'>
>> <master startport='4'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
>> function='0x2'/>
>> </controller>
>> <controller type='scsi' index='0' model='virtio-scsi'>
>> <driver queues='4'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x05'
>> function='0x0'/>
>> </controller>
>> <controller type='pci' index='0' model='pci-root'/>
>> <interface type='network'>
>> <mac address='52:54:00:bb:4f:3b'/>
>> <source network='default'/>
>> <model type='virtio'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x03'
>> function='0x0'/>
>> </interface>
>> <interface type='bridge'>
>> <mac address='52:54:00:de:52:c9'/>
>> <source bridge='br0'/>
>> <model type='virtio'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x09'
>> function='0x0'/>
>> </interface>
>> <hostdev mode='subsystem' type='pci' managed='yes'>
>> <source>
>> <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
>> </source>
>> <rom file='/var/lib/libvirt/roms/MSI.RX480.4096.160720.rom'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
>> function='0x0'/>
>> </hostdev>
>> <hostdev mode='subsystem' type='pci' managed='yes'>
>> <source>
>> <address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/>
>> </source>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x04'
>> function='0x0'/>
>> </hostdev>
>> <hostdev mode='subsystem' type='usb' managed='yes'>
>> <source>
>> <vendor id='0x24f0'/>
>> <product id='0x0137'/>
>> </source>
>> </hostdev>
>> <hostdev mode='subsystem' type='usb' managed='yes'>
>> <source>
>> <vendor id='0x1532'/>
>> <product id='0x0016'/>
>> </source>
>> </hostdev>
>> <hostdev mode='subsystem' type='usb' managed='yes'>
>> <source>
>> <vendor id='0x045e'/>
>> <product id='0x070f'/>
>> </source>
>> </hostdev>
>> <memballoon model='virtio'>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x08'
>> function='0x0'/>
>> </memballoon>
>> </devices>
>> </domain>
>> 
>> On Sun, Jan 22, 2017 at 4:30 PM, P. Pronk <vfio at pronk.nl> wrote:
>> 
>>     Thanks, that's good to know and I will try to specify the rom.
>> 
>>     In the mean time, do you know which bios revision your card has?
>>     The other revision is
>>     https://www.techpowerup.com/vgabios/185395/msi-rx480-8192-160719
>> 
>>     So is it 113-MSITV341MH.151 or 113-MSITV341MH.152 ?
>> 
>>     Pim
>> 
>> 
>> 
>>     On 2017-01-22 20:46, Scott wrote:
>> 
>>     I have that msi rx480 card working with pass through.
>> 
>>         Note I had a much easier time using the uefi bios. I am
>>         currently
>>         specifying a rom file in my XML for my video card but I don't
>>         think
>>         that's entirely necessary.
>> 
>>         scott
>> 
>>         On Jan 22, 2017 12:47 PM, "P. Pronk" <vfio at pronk.nl> wrote:
>> 
>>                 On Sun, 22 Jan 2017 11:55:57 +1100, Luke Yelavich
>>             wrote:
>> 
>>                         Who is the manufacturer of both your AMD
>>                 cards? So far as I
>>                 understand
>>                 things, its up to the manufacturer of the card to
>>                 provide the
>>                 appropriate ROM
>>                 to suit the configuration of the card. Its likely that
>>                 a ROM/BIOS
>>                 update may
>>                 fix your RX 480 card. Do both cards work under a pure
>>                 Windows
>>                 environment?
>> 
>> 
>>             That's a simple question but a difficult answer to get a
>>             pure
>>             Windows environment working again ;)
>> 
>>             Anyway, I got the following results after using GPU-Z
>>             under Windows:
>>             The RX480 is a MSI Gaming X 8G:
>>             https://www.techpowerup.com/vgabios/187387/187387 [1]
>>             and the RX460 is a XFX R460P4TFG5:
>>             https://www.techpowerup.com/vgabios/189230/189230 [2]
>> 
>>             Cheers, Pim
>> 
>>             _______________________________________________
>>             vfio-users mailing list
>>             vfio-users at redhat.com
>>             https://www.redhat.com/mailman/listinfo/vfio-users [3]
>> 
>> 
>>         Links:
>>         ------
>>         [1] https://www.techpowerup.com/vgabios/187387/187387
>>         [2] https://www.techpowerup.com/vgabios/189230/189230
>>         [3] https://www.redhat.com/mailman/listinfo/vfio-users
>> 
>> 
>> 
>> _______________________________________________
>> vfio-users mailing list
>> vfio-users at redhat.com
>> https://www.redhat.com/mailman/listinfo/vfio-users




More information about the vfio-users mailing list