From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39412) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YBi8h-0002pg-FB for qemu-devel@nongnu.org; Thu, 15 Jan 2015 05:59:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YBi8d-0000If-AJ for qemu-devel@nongnu.org; Thu, 15 Jan 2015 05:58:59 -0500 Received: from lhrrgout.huawei.com ([194.213.3.17]:23742) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YBi8d-0000ID-1a for qemu-devel@nongnu.org; Thu, 15 Jan 2015 05:58:55 -0500 Message-ID: <54B79D64.4050703@huawei.com> Date: Thu, 15 Jan 2015 11:58:44 +0100 From: Claudio Fontana MIME-Version: 1.0 References: <1421230611-12481-1-git-send-email-a.rigo@virtualopensystems.com> In-Reply-To: <1421230611-12481-1-git-send-email-a.rigo@virtualopensystems.com> Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC v3 0/2] Add Generic PCI host device update List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alvise Rigo , qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, tech@virtualopensystems.com, agraf@suse.de, rob.herring@linaro.org On 14.01.2015 11:16, Alvise Rigo wrote: > This is just an update to address the comments received on v2. > > This patch series is based on the previous work [1] and [2] by Rob Herring. > This is a stand alone work, but I will not hesitate to split the patches in a > more accurate way if needed. > > Changes from [1] and [2]: > - memory topology definition has been revisited > - memory addresses and sizes are now defined as qdev properties > - four system interrupts are swizzled between all the PCI devices and their > pins > - other minor changes > - removed implicit creation of lsi and pci-ohci devices > > Changes from v2: > - Some comments from Peter Maydell have been addressed: the device tree node > generation is moved back to the mach-virt platform as in the original work. > For this reason, mach-virt is the only supported machine model at the moment. > Moreover, the device tree node is statically created at the device init, > while in the previous versions it was generated according to the PCI devices > attached to the bus. > - The creation of the device memory regions has been postponed in the realize > function (thanks to Alexander Graf). > - Various comments from Claudio Fontana have been addressed to better explain > some crucial points of the adopted PCI specifications (see below). > > There are two specifications used by these patches. The first one regards > mainly how to describe a PCI regions inside the dt node "ranges" property. Look > at "PCI Bus binding: IEEE Std 1275-1994" for more details. The second instead > regards mainly the properties "interrupt-map-mask" and "interrupt-map" that are > described in "Open Firmware Recommended Practice: Interrupt Mapping". This > document propose a way to route PCI interrupts to system interrupts. All these > specifications have been firstly implemented, in kernel side, by the > host-generic-pci driver. > > This work has been tested attaching several PCI devices to the mach-virt > platform using an ARMv7 CPU. The tested devices are: virtio-blk-pci, > virtio-net-pci, lsi53c895a and pci-ohci (all attached at the same time). > > TODO: > - Add MSI, MSI-X support > - PCI-E support. For this, you would probably look at Alexander Graf work [3] > > Thank you, alvise > > [1] > "[Qemu-devel] [RFC PATCH 1/2] hw/pci-host: add a generic PCI host" > http://lists.gnu.org/archive/html/qemu-devel/2014-06/msg03482.html > [2] > "[Qemu-devel] [RFC PATCH 2/2] hw/arm/virt: Add generic PCI host device" > http://lists.gnu.org/archive/html/qemu-devel/2014-06/msg03483.html > [3] > "[Qemu-devel] [PATCH 0/4] ARM: Add support for a generic PCI Express host bridge" > https://www.mail-archive.com/qemu-devel@nongnu.org/msg272648.html > > > > Alvise Rigo (2): > pci/pci-host: Add generic-pci PCI host controller device > hw/arm/virt: add generic-pci PCI host controller > > hw/arm/virt.c | 112 +++++++++++++++++++++++++++++- > hw/pci-host/Makefile.objs | 2 +- > hw/pci-host/generic-pci.c | 140 ++++++++++++++++++++++++++++++++++++++ > include/hw/pci-host/generic-pci.h | 45 ++++++++++++ > 4 files changed, 297 insertions(+), 2 deletions(-) > create mode 100644 hw/pci-host/generic-pci.c > create mode 100644 include/hw/pci-host/generic-pci.h > Tested-by: Claudio Fontana Reviewed-by: Claudio Fontana