[Intel-gfx] [IGDVFIO] [PATCH 0/8] RFC and help completing: Intel IGD Direct Assignment with VFIO

Andrew Barnes umbramalison at gmail.com
Wed Sep 24 15:20:15 CEST 2014


https://github.com/UmbraMalison/qemu-igdvfio

Hi all,

I am publishing my work on IGD Direct Assignment in a semi-working state as
I need some help from the community to finish these. It may also be a good
time to take in comments from the community.

There has been an increased interest in IGD DA of recent, and as such there
has been many patches in both QEMU and XEN.

What makes these patches different is that they address some areas of
concern (whilst probably adding a few new ones).

IGDVFIO:
1) uses Q35 chipset and does not duplicate LPC controllers
2) uses VFIO, extending it to support IGD and does not use legacy
passthrough or XEN passthrough.
3) attempts to mimic host bios PCI configuration.

IGDVFIO does have some hacks, these are mostly temporary as they require
some effort to resolve and I plan to only do this once full IGD support in
guest is realised.

Hacks:
1) use of /dev/mem for memory mapping - this might be done by VFIO kernel
driver
2) use of hardcoded LPC ID's in seabios and ich9_lpc.c - this might be
solved by relaxing seabios, or providing another method for chipset
identification.
3) IGD detection in the chipset - simply need to devise a function to
detect IGD
n) ...

Current functionality:
i915 loads and DRM debug info matches host output in all respects except
for the base addresses of DSM and opregion (as these are relocated in guest
memory).
Intel frame buffer also appears to work.

Xorg drivers (in the guest) do not work, IGD falls into a loop of resetting
and failing to find anything on the blitter ring. in the logs it can be
seen that the ring buffer is working, but the blitter ring is full of
zeros. Which means that the GPU is probably reading from the wrong location.

As this is a little complex, and I suspect that I have missed some
important information, I will be updating github and wiki with detailed
instructions on how to use these patches. Currently the wiki is out of
date, so check for updates v.soon.
https://github.com/UmbraMalison/qemu-igdvfio

patches are based on qemu 2.1 and seabios 1.7.5 respectively.

Attached are the patches, incase this is a more usable format. They do also
include Alex Williamsons e820 patch, this is not mentioned in the following
patch emails.

Kind Regards,

Andrew Barnes
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20140924/5ab1aaa7/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: qemu-stable-2.1-igdvfio.patch
Type: text/x-patch
Size: 51477 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20140924/5ab1aaa7/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: seabios-1.7.5-stable-igdvfio.patch
Type: text/x-patch
Size: 9495 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20140924/5ab1aaa7/attachment-0001.bin>


More information about the Intel-gfx mailing list