linux/drivers/gpu/drm/i915/gvt
Changbin Du 02d578e5ed drm/i915/gvt: Add support for PCIe extended configuration space
IGD is PCIe device and has extended configuration space. Checking
the binary dump, we can see we have Caps located out of PCI compatible
Configuration Space range.

0x000: 86 80 12 19 17 04 10 00 06 00 00 03 00 00 00 00
0x010: 04 00 00 10 08 00 00 00 0c 00 00 00 08 00 00 00
0x020: 00 00 00 00 00 00 00 00 00 00 00 00 28 10 b9 06
0x030: 00 f8 ff ff 40 00 00 00 00 00 00 00 0b 01 00 00
0x040: 09 70 0c 01 71 26 01 62 c8 00 04 84 00 00 00 00
0x050: c1 00 00 00 39 00 00 00 00 00 00 00 01 00 00 a2
0x060: 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
0x070: 10 ac 92 00 00 80 00 10 00 00 00 00 00 00 00 00
0x080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0a0: 00 00 00 00 00 00 00 00 00 00 00 00 05 d0 01 00
0x0b0: 18 00 e0 fe 00 00 00 00 00 00 00 00 00 00 00 00
0x0c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0d0: 01 00 22 00 00 80 00 00 00 00 00 00 00 00 00 00
0x0e0: 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00
0x0f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x100: 1b 00 01 20 02 14 00 00 00 00 00 00 00 00 00 00
...

Currently, we only emulate the PCI compatible Configuration Space.
This is okay if we attach vGPU to PCI bus. But when we attach to
a PCI Express bus (when Qemu emulates a Intel Q35 chipset which has
PCIe slot), it will not work. Extended Configuration Space is required
for a PCIe device.

This patch extended the virtual configuration space from 256 bytes
to 4KB bytes. So we are to be a *real* PCIe device. And for the
Extended CapList we keep same to physical GPU.

Cc: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Changbin Du <changbin.du@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
2017-09-08 14:21:16 +08:00
..
aperture_gm.c drm/i915: Add interface to reserve fence registers for vGPU 2017-09-04 16:34:59 +01:00
cfg_space.c drm/i915/gvt: Add support for PCIe extended configuration space 2017-09-08 14:21:16 +08:00
cmd_parser.c drm/i915/gvt: Refine error handling for perform_bb_shadow 2017-09-08 14:21:15 +08:00
cmd_parser.h drm/i915/gvt: Factor out scan and shadow from workload dispatch 2017-08-10 10:26:06 +08:00
debug.h drm/i915/gvt: replace the gvt_err with gvt_vgpu_err 2017-03-17 16:46:45 +08:00
display.c Merge tag 'drm-intel-next-2017-08-18' of git://anongit.freedesktop.org/git/drm-intel into drm-next 2017-08-22 10:03:07 +10:00
display.h
edid.c drm/i915/gvt: Fix guest fail to read EDID leading to black guest console issue. 2017-03-21 10:50:02 +08:00
edid.h
execlist.c drm/i915/gvt: Refine error handling for prepare_execlist_workload 2017-09-08 14:21:14 +08:00
execlist.h
firmware.c drm/i915/gvt: Initialize MMIO Block with HW state 2017-08-04 17:39:41 +08:00
gtt.c drm/i915/gvt: Refine error handling for intel_vgpu_pin_mm 2017-09-08 14:21:15 +08:00
gtt.h drm/i915/gvt: Refine the intel_vgpu_reset_gtt reset function 2017-08-10 10:26:10 +08:00
gvt.c drm/i915/gvt: Add support for PCIe extended configuration space 2017-09-08 14:21:16 +08:00
gvt.h drm/i915/gvt: Add support for PCIe extended configuration space 2017-09-08 14:21:16 +08:00
handlers.c Merge tag 'drm-intel-next-2017-08-18' of git://anongit.freedesktop.org/git/drm-intel into drm-next 2017-08-22 10:03:07 +10:00
hypercall.h
interrupt.c drm/i915/gvt: Change flood gvt dmesg into trace 2017-06-08 13:59:16 +08:00
interrupt.h
kvmgt.c drm/i915/gvt: Add support for PCIe extended configuration space 2017-09-08 14:21:16 +08:00
Makefile drm/i915/gvt: remove redundant -Wall 2017-06-08 13:59:18 +08:00
mmio.c drm/i915/gvt: Add emulation for BAR2 (aperture) with normal file RW approach 2017-09-08 14:21:13 +08:00
mmio.h drm/i915/gvt: Refine virtual reset function 2017-06-08 13:59:21 +08:00
mpt.h drm/i915/gvt: Change flood gvt dmesg into trace 2017-06-08 13:59:16 +08:00
opregion.c drm/i915/gvt: replace the gvt_err with gvt_vgpu_err 2017-03-17 16:46:45 +08:00
reg.h
render.c drm/i915/gvt: Optimize ring siwtch 2x faster again by light weight mmio access wrapper 2017-08-10 10:26:06 +08:00
render.h drm/i915/gvt: implement per-vm mmio switching optimization 2017-06-08 13:59:15 +08:00
sched_policy.c Merge tag 'gvt-next-2017-06-08' of https://github.com/01org/gvt-linux into drm-intel-next-queued 2017-06-16 10:03:01 +03:00
sched_policy.h drm/i915/gvt: use hrtimer replace delayed_work in scheduler 2017-03-30 13:32:24 +08:00
scheduler.c drm/i915/gvt: Refine error handling in dispatch_workload 2017-09-08 14:21:15 +08:00
scheduler.h drm/i915/gvt: Add error handling for intel_gvt_scan_and_shadow_workload 2017-09-08 14:21:14 +08:00
trace_points.c
trace.h drm/i915/gvt: Change flood gvt dmesg into trace 2017-06-08 13:59:16 +08:00
vgpu.c Merge tag 'drm-intel-next-2017-08-18' of git://anongit.freedesktop.org/git/drm-intel into drm-next 2017-08-22 10:03:07 +10:00