From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40457) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDxzh-0004bQ-BQ for qemu-devel@nongnu.org; Wed, 21 Jan 2015 11:19:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YDxzZ-0004dB-5x for qemu-devel@nongnu.org; Wed, 21 Jan 2015 11:19:01 -0500 Received: from cantor2.suse.de ([195.135.220.15]:48355 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDxzZ-0004cj-0J for qemu-devel@nongnu.org; Wed, 21 Jan 2015 11:18:53 -0500 From: Alexander Graf Date: Wed, 21 Jan 2015 17:18:47 +0100 Message-Id: <1421857131-18539-1-git-send-email-agraf@suse.de> Subject: [Qemu-devel] [PATCH v2 0/4] ARM: Add support for a generic PCI Express host bridge List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , ard.biesheuvel@linaro.org, rob.herring@linaro.org, mst@redhat.com, claudio.fontana@huawei.com, stuart.yoder@freescale.com, a.rigo@virtualopensystems.com Linux implements a nice binding to describe a "generic" PCI Express host bridge using only device tree. This patch set adds enough emulation logic to expose the parts that are "generic" as a simple sysbus device and maps it into ARM's virt machine. With this patch set, we can finally spawn PCI devices on ARM VMs. I was able to have a fully DRM enabled virtual machine with VGA, e1000 and XHCI (for keyboard and mouse) up and working. It's only a small step for QEMU, but a big step for ARM VM's usability. v1 -> v2: - Add documentation links - Remove mmio_window_size - Add define for pci range types - Use 4 PCI INTX IRQ lines Alexander Graf (4): pci: Split pcie_host_mmcfg_map() pci: Add generic PCIe host bridge arm: Add PCIe host bridge in virt machine pci: Move PCI VGA to pci.mak default-configs/alpha-softmmu.mak | 2 - default-configs/arm-softmmu.mak | 2 + default-configs/i386-softmmu.mak | 2 - default-configs/mips-softmmu.mak | 2 - default-configs/mips64-softmmu.mak | 2 - default-configs/mips64el-softmmu.mak | 2 - default-configs/mipsel-softmmu.mak | 2 - default-configs/pci.mak | 2 + default-configs/ppc-softmmu.mak | 2 - default-configs/ppc64-softmmu.mak | 2 - default-configs/ppcemb-softmmu.mak | 2 - default-configs/sparc64-softmmu.mak | 2 - default-configs/x86_64-softmmu.mak | 2 - hw/arm/virt.c | 112 +++++++++++++++++++++++-- hw/pci-host/Makefile.objs | 1 + hw/pci-host/gpex.c | 153 +++++++++++++++++++++++++++++++++++ hw/pci/pcie_host.c | 9 ++- include/hw/pci-host/gpex.h | 54 +++++++++++++ include/hw/pci/pcie_host.h | 1 + include/sysemu/device_tree.h | 9 +++ 20 files changed, 336 insertions(+), 29 deletions(-) create mode 100644 hw/pci-host/gpex.c create mode 100644 include/hw/pci-host/gpex.h -- 1.7.12.4