If you've been keeping up with this blog then you understand a bit about IOMMU groups and device isolation. In my howto series I describe the limitations of the Xeon E3 processor that I use in my example system and recommend Xeon E5 or higher processors to provide the best case device isolation for those looking to build a system. Well, thanks to the vfio-users mailing list, it has come to my attention that there are in fact Core i7 processors with PCIe Access Control Services (ACS) support on the processor root ports.
Intel lists these processors as High End Desktop Processors, they include Socket 2011-v3 Haswell E processors, Socket 2011 Ivy Bridge E processors, and Socket 2011 Sandy Bridge E processors. The linked datasheets for each family clearly lists ACS register capabilities. Current listings for these processors include:
Haswell-E (LGA2011-v3)
i7-5960X (8-core, 3/3.5GHz)
i7-5930K (6-core, 3.2/3.8GHz)
i7-5820K (6-core, 3.3/3.6GHz)
Ivy Bridge-E (LGA2011)
i7-4960X (6-core, 3.6/4GHz)
i7-4930K (6-core, 3.4/3.6GHz)
i7-4820K (4-core, 3.7/3.9GHz)
Sandy Bridge-E (LGA2011)
i7-3960X (6-core, 3.3/3.9GHz)
i7-3970X (6-core, 3.5/4GHz)
i7-3930K (6-core, 3.2/3.8GHz)
i7-3820 (4-core, 3.6/3.8GHz)
These also appear to be the only Intel Core processors compatible with Socket 2011 and 2011-v3 found on X79 and X99 motherboards, so basing your platform around these chipsets will hopefully lead to success. My recommendation is based only on published specs, not first hand experience though, so your mileage may vary.
Unfortunately there are not yet any Skylake based "High End Desktop Processors" and from what we've seen on the mailing list, Skylake does not implement ACS on processor root ports, nor do we have quirks to enable isolation on the Z170 PCH root ports (which include a read-only ACS capability, effectively confirming lack of isolation), and integrated I/O devices on the motherboard exhibit poor grouping with system management components (aside from the onboard I219 LOM, which we do have quirked). This makes the currently available Skylake platforms a really bad choice for doing device assignment.
Based on this new data, I'll revise my recommendation for Intel platforms to include Xeon E5 and higher processors or Core i7 High End Desktop Processors (as listed by Intel). Of course there are combinations where regular Core i5, i7 and Xeon E3 processors will work well, we simply need to be aware of their limitations and factor that into our system design.
EDIT (Oct 30 04:18 UTC 2015): A more subtle feature also found in these E series processors is support for IOMMU super pages. The datasheets for the E5 Xeons and these High End Desktop Processors indicate support for 2MB and 1GB IOMMU pages while the standard Core i5 and i7 only support 4KB pages. This means less space wasted for the IOMMU page tables, more efficient table walks by the hardware, and less thrashing of the I/O TLB under I/O load resulting in I/O stalls. Will you notice it? Maybe. VFIO will take advantage of IOMMU super pages any time we find a sufficiently sized range of contiguous pages. To help insure this happens, make use of hugepages in the VM.
EDIT (Oct 15 18:20 UTC 2016): Intel Broadwell-E processors have been out for some time and as we'd expect, the datasheets do indicate that ACS is supported. So add to the list above:
Broadwell-E (LGA2011-v3)
i7-6950X (10-core, 3.0/3.5GHz)
i7-6900K (8-core, 3.2/3.7GHz)
i7-6850K (6-core, 3.6/3.8GHz)
i7-6800K (6-core, 3.4/3.6GHz)
Further interesting comments on the mailing list: https://www.redhat.com/archives/vfio-users/2015-October/msg00209.html
ReplyDeleteI'd like to build a virtualized HTPC - with Linux host optimized for running a single guest at a time that would have passthrough access to media hardware (GPU, sound, possibly optical drive and USB storage devices). As size, noise and thermal performance are all major considerations, the server CPUs appear to be a bad fit. I was able to find a single X99 based mini-ITX board but cooling it and the 140W hog of an i7-5820K look like a steep challenge. Is building such a system on a consumer processor architecture (counting on the ACS patch) an entirely unwise proposition, or is it par for the course for non-critical uses? Are there CPU/chipset/m-b combinations that are already known to work well? I am starting from complete blank slate and budget is not [yet] a major issue.
ReplyDeleteLet's go back to why should you care about ACS on processor root ports. The processor root ports generally provide the x16 graphics slots. On typical consumer grade Core i5/i7 processors these slots are not isolated from each other meaning that unintended peer-to-peer DMA between slots can occur causing problems with your VMs. However, if you do not intend to run more than one VM at a time or split processor root ports between host and guest, you can get by just fine with a lesser processor. If you're looking at mini-ITX systems there's generally only one slot anyway, so as long as the onboard I/O isn't using processor root ports, you're generally fine. Look at the example system I use in the howto guides, it works for me because I'm not attempting to install anything other than a single GPU in the processor root ports. ACS is only a requirement if you want/need ultimate flexibility for using every slot in the system independently.
DeleteHello. Can you explain what is exectly bad with skylake? I have now skylake 6600k and asus z170k, and looks like i have problems with passthrough. I tried different patches and kernels, and have no success at all. Here is my dmesg:
ReplyDeletehttp://pastebin.com/5453evRH
loki@loki:~/src$ cat /proc/iomem
00000000-00000fff : reserved
00001000-0009c7ff : System RAM
0009c800-0009ffff : reserved
000a0000-000bffff : PCI Bus 0000:00
000c0000-000cf9ff : Video ROM
000e0000-000fffff : reserved
000f0000-000fffff : System ROM
00100000-67968fff : System RAM
01000000-01951c66 : Kernel code
01951c67-01f23fff : Kernel data
02029000-020fbfff : Kernel bss
67969000-67969fff : ACPI Non-volatile Storage
6796a000-67993fff : reserved
67994000-679d0fff : System RAM
679d1000-67ef1fff : reserved
67ef2000-6c8a0fff : System RAM
6c8a1000-6dd77fff : reserved
6dd78000-6ddaffff : ACPI Tables
6ddb0000-6e706fff : ACPI Non-volatile Storage
6e707000-6f3fefff : reserved
6f3ff000-6f3fffff : System RAM
6f400000-6fffffff : RAM buffer
70000000-8fffffff : reserved
90000000-dfffffff : PCI Bus 0000:00
90000000-901fffff : PCI Bus 0000:07
90200000-903fffff : PCI Bus 0000:07
c0000000-cfffffff : 0000:00:02.0
c0000000-c07e8fff : BOOTFB
d0000000-db0fffff : PCI Bus 0000:01
d0000000-d7ffffff : 0000:01:00.0
d8000000-d9ffffff : 0000:01:00.0
da000000-daffffff : 0000:01:00.0
db000000-db07ffff : 0000:01:00.0
db080000-db083fff : 0000:01:00.1
dc000000-dcffffff : 0000:00:02.0
dd000000-dd0fffff : PCI Bus 0000:06
dd000000-dd003fff : 0000:06:00.0
dd000000-dd003fff : r8169
dd004000-dd004fff : 0000:06:00.0
dd004000-dd004fff : r8169
dd100000-dd1fffff : PCI Bus 0000:03
dd100000-dd107fff : 0000:03:00.0
dd100000-dd107fff : xhci-hcd
dd200000-dd20ffff : 0000:00:1f.3
dd200000-dd20ffff : ICH HD audio
dd210000-dd21ffff : 0000:00:14.0
dd210000-dd21ffff : xhci-hcd
dd220000-dd223fff : 0000:00:1f.3
dd220000-dd223fff : ICH HD audio
dd224000-dd227fff : 0000:00:1f.2
dd228000-dd229fff : 0000:00:17.0
dd228000-dd229fff : ahci
dd22a000-dd22a0ff : 0000:00:1f.4
dd22b000-dd22b7ff : 0000:00:17.0
dd22b000-dd22b7ff : ahci
dd22c000-dd22c0ff : 0000:00:17.0
dd22c000-dd22c0ff : ahci
dd22d000-dd22dfff : 0000:00:16.0
dffc0000-dffdffff : pnp 00:07
e0000000-efffffff : PCI MMCONFIG 0000 [bus 00-ff]
e0000000-efffffff : reserved
e0000000-efffffff : pnp 00:07
fd000000-fe7fffff : PCI Bus 0000:00
fd000000-fdabffff : pnp 00:08
fdac0000-fdacffff : pnp 00:09
fdad0000-fdadffff : pnp 00:08
fdae0000-fdaeffff : pnp 00:09
fdaf0000-fdafffff : pnp 00:09
fdb00000-fdffffff : pnp 00:08
fe000000-fe010fff : reserved
fe036000-fe03bfff : pnp 00:08
fe03d000-fe3fffff : pnp 00:08
fe410000-fe7fffff : pnp 00:08
fec00000-fec00fff : reserved
fec00000-fec003ff : IOAPIC 0
fed00000-fed003ff : HPET 0
fed00000-fed003ff : PNP0103:00
fed10000-fed17fff : pnp 00:07
fed18000-fed18fff : pnp 00:07
fed19000-fed19fff : pnp 00:07
fed20000-fed3ffff : pnp 00:07
fed45000-fed8ffff : pnp 00:07
fed90000-fed90fff : dmar0
fed91000-fed91fff : dmar1
fee00000-fee00fff : Local APIC
fee00000-fee00fff : reserved
ff000000-ffffffff : reserved
ff000000-ffffffff : INT0800:00
ff000000-ffffffff : pnp 00:07
100000000-46effffff : System RAM
46f000000-46fffffff : RAM buffer
lspci and /sys/kernel/iommu_groups/ is far more interesting than /proc/iomem. Here's what we can see from your dmesg though:
Deleteiommu: Adding device 0000:00:00.0 to group 0
This is your root bridge, groups is a don't care
iommu: Adding device 0000:00:01.0 to group 1
iommu: Adding device 0000:00:02.0 to group 2
These are your processor root ports. It is good that they're separate PCI slots addresses, that means that even if they allow redirection, the physical slots are isolated from one another.
iommu: Adding device 0000:00:14.0 to group 3
iommu: Adding device 0000:00:16.0 to group 4
iommu: Adding device 0000:00:17.0 to group 5
iommu: Adding device 0000:00:1b.0 to group 6
iommu: Adding device 0000:00:1d.0 to group 8
If these are anything worth assigning, you're lucky they're showing up at separate PCI slot addresses, typically Skylake uses multifunction devices where the function are not isolated, so assigning any separate function requires unbinding motherboard controllers from their host drivers.
iommu: Adding device 0000:00:1c.0 to group 7
iommu: Adding device 0000:00:1c.2 to group 7
iommu: Adding device 0000:00:1c.3 to group 7
iommu: Adding device 0000:03:00.0 to group 7
iommu: Adding device 0000:04:00.0 to group 7
iommu: Adding device 0000:06:00.0 to group 7
This is a problem. It's unfortunately typical for the PCH root ports to lack ACS, but we've been lucky that Intel has provided quirks for other chipsets to enable isolation, allowing these devices to be separated. On Z170, the PCH root ports do include ACS, but the control register is read-only, implying that exactly the kind of peer-to-peer that we're trying to prevent is indeed possible. There is no ETA whatsoever or guarantee that we can ever split these devices.
iommu: Adding device 0000:00:1f.0 to group 9
iommu: Adding device 0000:00:1f.2 to group 9
iommu: Adding device 0000:00:1f.3 to group 9
iommu: Adding device 0000:00:1f.4 to group 9
Here's one of those sets of multifunction devices that might have something you like to assigned co-mingled with motherboard components that you best not unbind from their host driver.
iommu: Adding device 0000:01:00.0 to group 10
iommu: Adding device 0000:01:00.1 to group 10
This is surprising, I assume this is your GPU. Are you using the ACS override patch or otherwise hacking in fake ACS? I would expect to see these grouped with either 01.0 or 02.0 above since you don't have one of the recommended processors known to support ACS.
Hello, i read carefully vfio-users. maybe it is better to create topic there?
DeleteMy find /sys/kernel/iommu_groups/ http://pastebin.com/rmnFtVGP
ReplyDeletelspci
http://pastebin.com/Prkn2YpY
How i try to start my virtual machine:
qemu-system-x86_64 \
-enable-kvm \
-m 2048 \
-cpu host,kvm=off \
-vga none \
-device vfio-pci,host=01:00.0 \
-device vfio-pci,host=01:00.1 \
-drive if=pflash,format=raw,readonly,file=./usr/share/edk2.git/ovmf-x64/OVMF-pure-efi.fd \
-drive if=pflash,format=raw,file=./usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd
It launches fine, but no any output on vga of my nvdia 660gtx. Also i tried with i915 VGA arbitration and seabios. I have patched with override_for_missing_acs_capabilities.patch too.
Maybe it is cost something... i found pretty old radeon 3870 and tried same with it, when i start my virtual machine with seabios, cooler on radeon getting laud, like when i use it as primary video adapter. Is this mean something?
Your GPU is now grouped with the processor root port as I'd expect and I see you say you are/were using the override, so that makes sense. You should not need the i915 patch using OVMF, but you do need a GPU ROM that supports UEFI. I'd suggest follow-up to the vfio-users list.
DeleteMy 660 have uefi support it is not enough? And can you explain my chances to getting passthrough working?
DeleteTake it to the mailing list please.
DeleteIt is working! Yeah!!! Thank you very much! Follow up you mean i need create my own topic? I am not good at maillists.
DeleteYes, on mailing lists you generally want to start a new thread with a new subject rather than continue an existing one for a new issue. If everything is working now though, maybe there's nothing left to followup with on the mailing list.
DeleteThe Intel Xeon E3-1200 v3 series of processors support superpages of 2MB and 1GB sizes according to the Intel datasheet (http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xeon-e3-1200v3-vol-1-datasheet.pdf page 43) while the "v1" and v2 series do not.
ReplyDeleteHere are the datasheets for the v1 and v2 series.
http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xeon-e3-1200-family-vol-1-datasheet.pdf
http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xeon-e3-1200v2-vol-1-datasheet.pdf
Look at page 39 for both of the above.
You should update the article accordingly.
Also regarding Skylake device assignment, Wendell from TekSyndicate has managed to get it working on Arch Linux and he also explains how in a video and also a forum link.
ReplyDeleteHere is the video
https://www.youtube.com/watch?v=16dbAUrtMX4
At first it seemed to be a tough story. But it came light to the end.
ReplyDeleteHmm. I have the Intel i5-4570S CPU and my x16 (3.0) graphics slot is completely isolated so my CPU root ports must have ACS?
ReplyDeleteOn the contrary, my second x16 (2.0) (with x4 lanes) graphics slot is grouped with the two x1 pci-e slots and the bridge to PCI too.
Also, ALL of my CPU related devices are isolated (integrated graphics, audio, etc) it's almost like the CPU is the only part of the system which DOES have ACS.
Sorry for the huge post but unless I mis-understood your post, I thought you'd find it interesting.
Oh btw, AsRock Z97 Pro 4 - they seem pretty good for IOMMU - just a shame that I can't separate the second gfx card from the x1 slots as I run an ethernet card there for my pfSense firewall :(
Here's my IOMMU groups and PCI id's
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.1
/sys/kernel/iommu_groups/2/devices/0000:00:02.0
/sys/kernel/iommu_groups/3/devices/0000:00:03.0
/sys/kernel/iommu_groups/4/devices/0000:00:14.0
/sys/kernel/iommu_groups/5/devices/0000:00:16.0
/sys/kernel/iommu_groups/6/devices/0000:00:19.0
/sys/kernel/iommu_groups/7/devices/0000:00:1a.0
/sys/kernel/iommu_groups/8/devices/0000:00:1b.0
/sys/kernel/iommu_groups/9/devices/0000:00:1c.0
/sys/kernel/iommu_groups/9/devices/0000:00:1c.2
/sys/kernel/iommu_groups/9/devices/0000:00:1c.4
/sys/kernel/iommu_groups/9/devices/0000:00:1c.6
/sys/kernel/iommu_groups/9/devices/0000:03:00.0
/sys/kernel/iommu_groups/9/devices/0000:05:00.0
/sys/kernel/iommu_groups/9/devices/0000:05:00.1
/sys/kernel/iommu_groups/9/devices/0000:06:00.0
/sys/kernel/iommu_groups/10/devices/0000:00:1d.0
/sys/kernel/iommu_groups/11/devices/0000:00:1f.0
/sys/kernel/iommu_groups/11/devices/0000:00:1f.2
/sys/kernel/iommu_groups/11/devices/0000:00:1f.3
00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:14.0 USB controller: Intel Corporation 9 Series Chipset Family USB xHCI Controller
00:16.0 Communication controller: Intel Corporation 9 Series Chipset Family ME Interface #1
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (2) I218-V
00:1a.0 USB controller: Intel Corporation 9 Series Chipset Family USB EHCI Controller #2
00:1b.0 Audio device: Intel Corporation 9 Series Chipset Family HD Audio Controller
00:1c.0 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 1 (rev d0)
00:1c.2 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d0)
00:1c.4 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 5 (rev d0)
00:1c.6 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 7 (rev d0)
00:1d.0 USB controller: Intel Corporation 9 Series Chipset Family USB EHCI Controller #1
00:1f.0 ISA bridge: Intel Corporation 9 Series Chipset Family Z97 LPC Controller
00:1f.2 SATA controller: Intel Corporation 9 Series Chipset Family SATA Controller [AHCI Mode]
00:1f.3 SMBus: Intel Corporation 9 Series Chipset Family SMBus Controller
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Bonaire XTX [Radeon R7 260X]
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device aac0
03:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 03)
05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cedar [Radeon HD 5000/6000/7350/8350 Series]
05:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Cedar HDMI Audio [Radeon HD 5400/6300 Series]
06:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
Oh - I actually removed the x1 Ethernet card to see if that impacted the groupings at all - just incase anyone spotted that it was missing. It would have been something like:
Delete/sys/kernel/iommu_groups/9/devices/0000:07:00.0
and
07:00.0 Ethernet controller: Intel Gigabit Ethernet
Just for clarification :)
Also I thought it would be worth noting that my manual explains if there is a PCI-e device connected to either of the x1 ports, it will reduce the PCI-e 2.0 x16 (secondary) graphics from x4 mode to x2 mode - that probably explains why they are all grouped together.
It's nice when everything comes together and shows the whole picture.
Thanks for your time writing the post.
Harry
Your system is 100% typical. The processor does not support ACS on the root port, as evidenced by the fact that the root port at 00:01.0 is grouped with the graphics card at 01:00.[01]. The integrated graphics and audio are at independent PCI slot addresses and therefore not grouped together. If you were running a v4.2 or newer kernel, the PCH root ports would expose ACS equivalent isolation since we have quirks for the 9-series chipset starting with that kernel.
ReplyDeleteYou are completely right. I upgraded the kernel to 4.3 and look at these lovely groups!!
ReplyDeleteThe x16 GPU is still grouped with the CPU root port though - is that a problem?
Thanks for the info, very helpful
harry@debian:~$ find /sys/kernel/iommu_groups/ -type l
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.1
/sys/kernel/iommu_groups/2/devices/0000:00:02.0
/sys/kernel/iommu_groups/3/devices/0000:00:03.0
/sys/kernel/iommu_groups/4/devices/0000:00:14.0
/sys/kernel/iommu_groups/5/devices/0000:00:16.0
/sys/kernel/iommu_groups/6/devices/0000:00:19.0
/sys/kernel/iommu_groups/7/devices/0000:00:1a.0
/sys/kernel/iommu_groups/8/devices/0000:00:1b.0
/sys/kernel/iommu_groups/9/devices/0000:00:1c.0
/sys/kernel/iommu_groups/10/devices/0000:00:1c.2
/sys/kernel/iommu_groups/10/devices/0000:03:00.0
/sys/kernel/iommu_groups/11/devices/0000:00:1c.4
/sys/kernel/iommu_groups/12/devices/0000:00:1c.6
/sys/kernel/iommu_groups/13/devices/0000:00:1d.0
/sys/kernel/iommu_groups/14/devices/0000:00:1f.0
/sys/kernel/iommu_groups/14/devices/0000:00:1f.2
/sys/kernel/iommu_groups/14/devices/0000:00:1f.3
/sys/kernel/iommu_groups/15/devices/0000:05:00.0
/sys/kernel/iommu_groups/15/devices/0000:05:00.1
/sys/kernel/iommu_groups/16/devices/0000:06:00.0
harry@debian:~$ lspci
00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:14.0 USB controller: Intel Corporation 9 Series Chipset Family USB xHCI Controller
00:16.0 Communication controller: Intel Corporation 9 Series Chipset Family ME Interface #1
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (2) I218-V
00:1a.0 USB controller: Intel Corporation 9 Series Chipset Family USB EHCI Controller #2
00:1b.0 Audio device: Intel Corporation 9 Series Chipset Family HD Audio Controller
00:1c.0 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 1 (rev d0)
00:1c.2 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d0)
00:1c.4 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 5 (rev d0)
00:1c.6 PCI bridge: Intel Corporation 9 Series Chipset Family PCI Express Root Port 7 (rev d0)
00:1d.0 USB controller: Intel Corporation 9 Series Chipset Family USB EHCI Controller #1
00:1f.0 ISA bridge: Intel Corporation 9 Series Chipset Family Z97 LPC Controller
00:1f.2 SATA controller: Intel Corporation 9 Series Chipset Family SATA Controller [AHCI Mode]
00:1f.3 SMBus: Intel Corporation 9 Series Chipset Family SMBus Controller
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Bonaire XTX [Radeon R7 260X]
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device aac0
03:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 03)
05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cedar [Radeon HD 5000/6000/7350/8350 Series]
05:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Cedar HDMI Audio [Radeon HD 5400/6300 Series]
06:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)