[vfio-users] amd rx480 invalid rom contents

P. Pronk vfio at pronk.nl
Tue Jan 24 13:14:55 UTC 2017


Thanks for checking.

After adding nohz_full, rcu_nocbs, isolcpus parameters to my grub 
cmdline and switching to the Ubuntu lowlatency kernel it seems the sound 
is quite good when playing youtube video's or vlc. No crackles or noise 
anymore.
Not sure if there is really causation with using the lowlatency kernel, 
but when using the generic kernel I still had a lot of noise and some 
crackles.


On 24/01/17 05:29, Scott wrote:
> I removed the rom file and my VM still functions the same.
>
> On Mon, Jan 23, 2017 at 8:54 PM, Scott <shewless at unleashed-web.org 
> <mailto:shewless at unleashed-web.org>> wrote:
>
>     Hmm. No I pass through my usb headset for sound and microphone.
>     Once I adjusted the sample rate in was good to go.
>
>     I pass through the hdmi audio PCIe device and set the msi
>     interrupt for good measure though I don't actually make use of it.
>
>
>
>
>     scott
>
>
>     On Jan 23, 2017 7:04 PM, "P. Pronk" <vfio at pronk.nl
>     <mailto:vfio at pronk.nl>> wrote:
>
>
>         Also for a ich6 sound device? Thought the msi interrupts was a
>         'pass through' setting when you use the hdmi audio device?
>         Anyway, it's not listed in regedit in the PCI tree as the amd
>         & virtio devices are so not sure what to do.
>
>         I have to set it to CD quality, any better or worse and the
>         crackles get really bad
>
>
>
>         On 24/01/17 00:40, Scott wrote:
>>         Change the sample rate in Windows to DVD quality.. that made
>>         my sound crackles go away.
>>
>>         Also ensure msi Interrupts enabled.
>>
>>         scott
>>
>>         On Jan 23, 2017 6:24 PM, "P. Pronk" <vfio at pronk.nl
>>         <mailto:vfio at pronk.nl>> wrote:
>>
>>
>>             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/5676c346/attachment.htm>


More information about the vfio-users mailing list