[vfio-users] amd rx480 invalid rom contents

P. Pronk vfio at pronk.nl
Mon Jan 23 23:24:50 UTC 2017


That would be interesting to see indeed. Actually I bought the RX460 
because first I wanted to use my old HD7850, but then my pc didnt even 
want to boot (linux, didnt try windows). It just hanged seconds after 
grub loading with a lot of those PCIe Bus Error's. Then I tried a couple 
Nvidia NVS295's I had but I couldnt get them to work properly (driver 
issues which caused mismatching colours).

Probably there is just something wrong with that MSI RX480, as it gave 
those PCI-E Bus Error's also when it was the only GPU in my system 
(while I was waiting for the RX460). But then again, it's strange that 
the rom could be extracted correctly with GPU-Z under Windows.

I did a Unique Heaven test and the results where not bad, ~1350 points 
and 53fps. But during some scenes it seemed the camera movement slowed 
down and then sped up significantly a couple of times. It didnt look 
like that was intentionaly but that said there was no drop in fps. Will 
do some more tests tomorrow as I am also not yet really happy with the 
sound quality (too much noise sometimes).

Yes, I extracted the uefi bios from 
edk2.git-ovmf-x64-0-20170120.b2426.gaa961de.noarch.rpm. See xml below.

Cheers, Pim
--------------------------
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
   <name>win8</name>
   <uuid>8a96e6b2-6396-4e84-ba3b-dedcb1e3d997</uuid>
   <memory unit='KiB'>8388608</memory>
   <currentMemory unit='KiB'>8388608</currentMemory>
   <memoryBacking>
     <hugepages/>
   </memoryBacking>
   <vcpu placement='static'>4</vcpu>
   <cputune>
     <vcpupin vcpu='0' cpuset='2'/>
     <vcpupin vcpu='1' cpuset='3'/>
     <vcpupin vcpu='2' cpuset='6'/>
     <vcpupin vcpu='3' cpuset='7'/>
   </cputune>
   <numatune>
     <memory mode='preferred' nodeset='0'/>
   </numatune>
   <os>
     <type arch='x86_64' machine='pc-i440fx-xenial'>hvm</type>
     <loader readonly='yes' 
type='pflash'>/usr/share/ovmf/OVMF-win8.fd</loader>
<nvram>/var/lib/libvirt/qemu/nvram/win8_VARS.fd</nvram>
     <bootmenu enable='no'/>
   </os>
   <features>
     <acpi/>
     <apic/>
     <hyperv>
       <relaxed state='on'/>
       <vapic state='on'/>
       <spinlocks state='on' retries='8191'/>
     </hyperv>
   </features>
   <cpu mode='host-model'>
     <model fallback='allow'/>
     <topology sockets='1' cores='2' threads='2'/>
   </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='block' device='disk'>
       <driver name='qemu' type='raw' cache='none' io='native'/>
       <source 
dev='/dev/disk/by-path/ip-192.168.1.2:3260-iscsi-iqn.2017-01.nl.serv:zpool.virtual-lun-0'/>
       <target dev='sda' bus='scsi'/>
       <boot order='1'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <controller type='pci' index='0' model='pci-root'/>
     <controller type='usb' index='0'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' 
function='0x2'/>
     </controller>
     <controller type='scsi' index='0' model='virtio-scsi'>
       <driver queues='4'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x02' 
function='0x0'/>
     </controller>
     <interface type='bridge'>
       <mac address='52:54:00:f4:37:6f'/>
       <source bridge='br0'/>
       <model type='virtio'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x03' 
function='0x0'/>
     </interface>
     <sound model='ich6'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x04' 
function='0x0'/>
     </sound>
     <hostdev mode='subsystem' type='pci' managed='yes'>
       <source>
         <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
       </source>
       <rom file='/var/lib/libvirt/roms/113-MSITV341MH.152.rom'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' 
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='0x0a' 
function='0x0'/>
     </hostdev>
     <hostdev mode='subsystem' type='usb' managed='yes'>
       <source>
         <vendor id='0x0141'/>
         <product id='0x2d55'/>
       </source>
     </hostdev>
     <hostdev mode='subsystem' type='usb' managed='yes'>
       <source>
         <vendor id='0x0168'/>
         <product id='0xc11d'/>
       </source>
     </hostdev>
     <memballoon model='virtio'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x08' 
function='0x0'/>
     </memballoon>
   </devices>
   <qemu:commandline>
     <qemu:env name='QEMU_PA_SAMPLES' value='4096'/>
     <qemu:env name='QEMU_AUDIO_DRV' value='pa'/>
     <qemu:env name='QEMU_PA_SERVER' value='/run/user/1000/pulse/native'/>
   </qemu:commandline>
</domain>


On 23/01/17 22:51, Scott wrote:
> Hi
>
> I downloaded a rom from the Internets.  There is a common site that 
> has a library of them.  I have been meaning to try without the rom 
> file too. Not sure it's necessary.
>
> I think you have a tougher time because you have two AMD cards.  I am 
> able to blacklist the AMD driver completely because my "other card" is 
> Intel.
>
> Are you using the uefi bios for your virtual machine?
>
> scott
>
> On Jan 23, 2017 9:37 AM, "P. Pronk" <vfio at pronk.nl 
> <mailto:vfio at pronk.nl>> wrote:
>
>     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
>             <mailto: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
>             <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 <mailto: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
>             <https://www.techpowerup.com/vgabios/187387/187387> [1]
>                         and the RX460 is a XFX R460P4TFG5:
>             https://www.techpowerup.com/vgabios/189230/189230
>             <https://www.techpowerup.com/vgabios/189230/189230> [2]
>
>                         Cheers, Pim
>
>                         _______________________________________________
>                         vfio-users mailing list
>             vfio-users at redhat.com <mailto:vfio-users at redhat.com>
>             https://www.redhat.com/mailman/listinfo/vfio-users
>             <https://www.redhat.com/mailman/listinfo/vfio-users> [3]
>
>
>                     Links:
>                     ------
>                     [1]
>             https://www.techpowerup.com/vgabios/187387/187387
>             <https://www.techpowerup.com/vgabios/187387/187387>
>                     [2]
>             https://www.techpowerup.com/vgabios/189230/189230
>             <https://www.techpowerup.com/vgabios/189230/189230>
>                     [3]
>             https://www.redhat.com/mailman/listinfo/vfio-users
>             <https://www.redhat.com/mailman/listinfo/vfio-users>
>
>
>
>             _______________________________________________
>             vfio-users mailing list
>             vfio-users at redhat.com <mailto:vfio-users at redhat.com>
>             https://www.redhat.com/mailman/listinfo/vfio-users
>             <https://www.redhat.com/mailman/listinfo/vfio-users>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20170124/a86c8008/attachment.htm>


More information about the vfio-users mailing list