From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53448) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XNJAs-0002sd-1U for qemu-devel@nongnu.org; Fri, 29 Aug 2014 06:13:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XNJAd-0001jg-3w for qemu-devel@nongnu.org; Fri, 29 Aug 2014 06:12:53 -0400 Received: from e23smtp09.au.ibm.com ([202.81.31.142]:37296) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XNJAc-0001hU-G2 for qemu-devel@nongnu.org; Fri, 29 Aug 2014 06:12:39 -0400 Received: from /spool/local by e23smtp09.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 29 Aug 2014 20:12:36 +1000 From: Alexey Kardashevskiy Date: Fri, 29 Aug 2014 20:12:15 +1000 Message-Id: <1409307142-2600-12-git-send-email-aik@ozlabs.ru> In-Reply-To: <1409307142-2600-1-git-send-email-aik@ozlabs.ru> References: <1409307142-2600-1-git-send-email-aik@ozlabs.ru> Subject: [Qemu-devel] [RFC PATCH v3 11/18] spapr_pci: Add windows counter List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Alexey Kardashevskiy , Alex Williamson , qemu-ppc@nongnu.org, Alexander Graf , David Gibson We are goint to have more than one DMA window and this is going to be dynamic. This adds a counter which will be used to get a new DMA window LIOBN. It is set to 1 by default as window #0 is there by default. Signed-off-by: Alexey Kardashevskiy --- hw/ppc/spapr_pci.c | 5 ++++- hw/ppc/spapr_pci_vfio.c | 2 ++ include/hw/pci-host/spapr.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index ea4b1bb..2968b39 100644 --- a/hw/ppc/spapr_pci.c +++ b/hw/ppc/spapr_pci.c @@ -651,6 +651,8 @@ static void spapr_phb_finish_realize(sPAPRPHBState *sphb, Error **errp) spapr_tce_get_iommu(tcet)); object_unref(OBJECT(tcet)); + + sphb->windows_num = 1; } static int spapr_phb_children_reset(Object *child, void *opaque) @@ -754,7 +756,7 @@ static int spapr_pci_post_load(void *opaque, int version_id) static const VMStateDescription vmstate_spapr_pci = { .name = "spapr_pci", - .version_id = 2, + .version_id = 3, .minimum_version_id = 2, .pre_save = spapr_pci_pre_save, .post_load = spapr_pci_post_load, @@ -770,6 +772,7 @@ static const VMStateDescription vmstate_spapr_pci = { VMSTATE_INT32(msi_devs_num, sPAPRPHBState), VMSTATE_STRUCT_VARRAY_ALLOC(msi_devs, sPAPRPHBState, msi_devs_num, 0, vmstate_spapr_pci_msi, spapr_pci_msi_mig), + VMSTATE_UINT32_V(windows_num, sPAPRPHBState, 3), VMSTATE_END_OF_LIST() }, }; diff --git a/hw/ppc/spapr_pci_vfio.c b/hw/ppc/spapr_pci_vfio.c index 51b4314..efed23f 100644 --- a/hw/ppc/spapr_pci_vfio.c +++ b/hw/ppc/spapr_pci_vfio.c @@ -71,6 +71,8 @@ static void spapr_phb_vfio_finish_realize(sPAPRPHBState *sphb, Error **errp) spapr_tce_get_iommu(tcet)); object_unref(OBJECT(tcet)); + + sphb->windows_num = 1; } static void spapr_phb_vfio_reset(DeviceState *qdev) diff --git a/include/hw/pci-host/spapr.h b/include/hw/pci-host/spapr.h index 6658b9c..07b60c3 100644 --- a/include/hw/pci-host/spapr.h +++ b/include/hw/pci-host/spapr.h @@ -91,6 +91,7 @@ struct sPAPRPHBState { MemoryRegion memwindow, iowindow, msiwindow; uint32_t dma_liobn; + uint32_t windows_num; AddressSpace iommu_as; MemoryRegion iommu_root; -- 2.0.0