From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47228) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFMix-0000yE-96 for qemu-devel@nongnu.org; Wed, 15 Jul 2015 09:27:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZFMit-0004op-QK for qemu-devel@nongnu.org; Wed, 15 Jul 2015 09:27:47 -0400 Received: from mga02.intel.com ([134.134.136.20]:54947) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFMit-0004oj-FA for qemu-devel@nongnu.org; Wed, 15 Jul 2015 09:27:43 -0400 Message-ID: <55A65FCB.2050401@intel.com> Date: Wed, 15 Jul 2015 21:27:39 +0800 From: "Chen, Tiejun" MIME-Version: 1.0 References: <1436938670-7677-1-git-send-email-tiejun.chen@intel.com> <20150715150129-mutt-send-email-mst@redhat.com> In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [v10][PATCH 00/10] xen: add Intel IGD passthrough List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefano Stabellini , "Michael S. Tsirkin" Cc: qemu-devel@nongnu.org, pbonzini@redhat.com, ehabkost@redhat.com, rth@twiddle.net On 2015/7/15 20:38, Stefano Stabellini wrote: > On Wed, 15 Jul 2015, Michael S. Tsirkin wrote: >> On Wed, Jul 15, 2015 at 12:46:29PM +0100, Stefano Stabellini wrote: >>> Thanks Tiejun, the patch series looks OK to me now. >>> >>> It looks like it has all the required acks. >>> Michael, are you OK with it? If so, should I add it to my queue, or do >>> you want to add it to yours? >> >> I'm OK with the PC bits. Please merge it through your tree. > > OK. Added to my queue. I'll send it out after 2.4. Really thanks both you guys. Thanks Tiejun > > >>> On Wed, 15 Jul 2015, Tiejun Chen wrote: >>>> v10: >>>> >>>> * Don't extern igd_passthrough_isa_bridge_create() in the >>>> include/hw/xen/xen.h file. Instead, move inside the >>>> include/hw/i386/pc.h file in patch #7 >>>> >>>> v9: >>>> >>>> * Rebase on the latest >>>> * Inside patch #8, move is_igd_vga_passthrough(dev)) from >>>> xen_igd_passthrough_isa_bridge_create() into xen_pt_initfn(). >>>> * Inside patch #9, simplify pc_xen_hvm_init_pci() >>>> * Michael acked them on pc side >>>> * Stefano ackes then on xen side >>>> >>>> v8: >>>> >>>> * Rebase on the latest qemu tree >>>> * Cleanup one xen leftover in patch #3 >>>> >>>> v7: >>>> >>>> * Instead of "-gfx_passthru" we'd like to make that a machine >>>> option, "-machine xxx,igd-passthru=on"" >>>> * try to make something as common shared by others like KvmGT in >>>> the future >>>> * Just read those real value from host bridge pci >>>> configuration space when create host bridge then put in dev->config. >>>> >>>> v6: >>>> >>>> * Drop introducing a new machine specific to IGD passthrough >>>> * Try to share some codes from KVM stuff in qemu to retrive VGA BIOS >>>> * Currently IGD drivers always need to access PCH by 1f.0. But we >>>> don't want to poke that directly to get ID, and although in real >>>> world different GPU should have different PCH. But actually the >>>> different PCH DIDs likely map to different PCH SKUs. We do the >>>> same thing for the GPU. For PCH, the different SKUs are going to >>>> be all the same silicon design and implementation, just different >>>> features turn on and off with fuses. The SW interfaces should be >>>> consistent across all SKUs in a given family (eg LPT). But just >>>> same features may not be supported. >>>> >>>> Most of these different PCH features probably don't matter to the >>>> Gfx driver, but obviously any difference in display port connections >>>> will so it should be fine with any PCH in case of passthrough. >>>> >>>> So currently use one PCH version, 0x8c4e, to cover all HSW(Haswell) >>>> scenarios, 0x9cc3 for BDW(Broadwell). >>>> * Drop igd write ops since its fine to emulate that, and we also shrink >>>> those igd read ops as necessary. >>>> * Rebase and cleanup all patches. >>>> >>>> v5: >>>> >>>> * Simplify to make sure its really inherited from the standard one in patch #3 >>>> * Then drop the original patch #3 >>>> >>>> v4: >>>> >>>> * Rebase on latest tree >>>> * Drop patch #2 >>>> * Regenerate patches after Michael introduce patch #1 >>>> * We need to use this pci_type as a index to reuse I440FX_PCI_DEVICE() >>>> * Test: boot with a preinstalled winxp >>>> ./i386-softmmu/qemu-system-i386 -hda winxp-32.img -m 2560 -boot c -machine pc >>>> >>>> v3: >>>> >>>> * Drop patch #4 >>>> * Add one patch #1 from Michael >>>> * Rebase >>>> * In./i386-softmmu/qemu-system-i386 -hda test.img -m 2560 -boot c -machine pc >>>> >>>> v2: >>>> >>>> * Fix some coding style >>>> * New patch to separate i440fx_init >>>> * Just add prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough >>>> * Based on patch #2 to regenerate >>>> * Unify prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough like patch #3 >>>> * Test: boot with a preinstalled ubuntu 14.04 >>>> ./i386-softmmu/qemu-system-i386 -hda test.img -m 2560 -boot c -machine pc >>>> >>>> As we discussed we need to create a separate machine to support current >>>> IGD passthrough. >>>> >>>> ---------------------------------------------------------------- >>>> Michael S. Tsirkin (1): >>>> i440fx: make types configurable at run-time >>>> >>>> Tiejun Chen (9): >>>> pc_init1: pass parameters just with types >>>> piix: create host bridge to passthrough >>>> hw/pci-assign: split pci-assign.c >>>> xen, gfx passthrough: basic graphics passthrough support >>>> xen, gfx passthrough: retrieve VGA BIOS to work >>>> igd gfx passthrough: create a isa bridge >>>> xen, gfx passthrough: register a isa bridge >>>> xen, gfx passthrough: register host bridge specific to passthrough >>>> xen, gfx passthrough: add opregion mapping >>>> >>>> hw/core/machine.c | 20 +++ >>>> hw/i386/Makefile.objs | 1 + >>>> hw/i386/kvm/pci-assign.c | 82 +--------- >>>> hw/i386/pc_piix.c | 139 ++++++++++++++++- >>>> hw/i386/pci-assign-load-rom.c | 93 ++++++++++++ >>>> hw/pci-host/piix.c | 91 +++++++++++- >>>> hw/xen/Makefile.objs | 1 + >>>> hw/xen/xen-host-pci-device.c | 5 + >>>> hw/xen/xen-host-pci-device.h | 1 + >>>> hw/xen/xen_pt.c | 36 +++++ >>>> hw/xen/xen_pt.h | 21 ++- >>>> hw/xen/xen_pt_config_init.c | 51 ++++++- >>>> hw/xen/xen_pt_graphics.c | 272 ++++++++++++++++++++++++++++++++++ >>>> include/hw/boards.h | 1 + >>>> include/hw/i386/pc.h | 9 +- >>>> include/hw/pci/pci-assign.h | 27 ++++ >>>> qemu-options.hx | 3 + >>>> vl.c | 10 ++ >>>> 19 files changed, 773 insertions(+), 92 deletions(-) >>>> create mode 100644 hw/i386/pci-assign-load-rom.c >>>> create mode 100644 hw/xen/xen_pt_graphics.c >>>> create mode 100644 include/hw/pci/pci-assign.h >>>> >>>> Thanks >>>> Tiejun >>>> >> >