From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57259) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YAhql-0003IR-Pa for qemu-devel@nongnu.org; Mon, 12 Jan 2015 11:28:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YAhqh-000411-Pl for qemu-devel@nongnu.org; Mon, 12 Jan 2015 11:28:19 -0500 Received: from lhrrgout.huawei.com ([194.213.3.17]:20516) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YAhqh-00040q-I6 for qemu-devel@nongnu.org; Mon, 12 Jan 2015 11:28:15 -0500 Message-ID: <54B3F614.4010406@huawei.com> Date: Mon, 12 Jan 2015 17:28:04 +0100 From: Claudio Fontana MIME-Version: 1.0 References: <1420560191-48029-1-git-send-email-agraf@suse.de> <1420560191-48029-2-git-send-email-agraf@suse.de> In-Reply-To: <1420560191-48029-2-git-send-email-agraf@suse.de> Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH 1/4] pci: Split pcie_host_mmcfg_map() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf , qemu-devel@nongnu.org Cc: Peter Maydell , ard.biesheuvel@linaro.org, mst@redhat.com, rob.herring@linaro.org, stuart.yoder@freescale.com, a.rigo@virtualopensystems.com On 06.01.2015 17:03, Alexander Graf wrote: > The mmcfg space is a memory region that allows access to PCI config space > in the PCIe world. To maintain abstraction layers, I would like to expose > the mmcfg space as a sysbus mmio region rather than have it mapped straight > into the system's memory address space though. > > So this patch splits the initialization of the mmcfg space from the actual > mapping, allowing us to only have an mmfg memory region without the map. > > Signed-off-by: Alexander Graf > --- > hw/pci/pcie_host.c | 9 +++++++-- > include/hw/pci/pcie_host.h | 1 + > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/hw/pci/pcie_host.c b/hw/pci/pcie_host.c > index 3db038f..dfb4a2b 100644 > --- a/hw/pci/pcie_host.c > +++ b/hw/pci/pcie_host.c > @@ -98,8 +98,7 @@ void pcie_host_mmcfg_unmap(PCIExpressHost *e) > } > } > > -void pcie_host_mmcfg_map(PCIExpressHost *e, hwaddr addr, > - uint32_t size) > +void pcie_host_mmcfg_init(PCIExpressHost *e, uint32_t size) > { > assert(!(size & (size - 1))); /* power of 2 */ > assert(size >= PCIE_MMCFG_SIZE_MIN); > @@ -107,6 +106,12 @@ void pcie_host_mmcfg_map(PCIExpressHost *e, hwaddr addr, > e->size = size; > memory_region_init_io(&e->mmio, OBJECT(e), &pcie_mmcfg_ops, e, > "pcie-mmcfg", e->size); > +} > + > +void pcie_host_mmcfg_map(PCIExpressHost *e, hwaddr addr, > + uint32_t size) > +{ > + pcie_host_mmcfg_init(e, size); > e->base_addr = addr; > memory_region_add_subregion(get_system_memory(), e->base_addr, &e->mmio); > } > diff --git a/include/hw/pci/pcie_host.h b/include/hw/pci/pcie_host.h > index ff44ef6..4d23c80 100644 > --- a/include/hw/pci/pcie_host.h > +++ b/include/hw/pci/pcie_host.h > @@ -50,6 +50,7 @@ struct PCIExpressHost { > }; > > void pcie_host_mmcfg_unmap(PCIExpressHost *e); > +void pcie_host_mmcfg_init(PCIExpressHost *e, uint32_t size); > void pcie_host_mmcfg_map(PCIExpressHost *e, hwaddr addr, uint32_t size); > void pcie_host_mmcfg_update(PCIExpressHost *e, > int enable, > Fine for me. Reviewed-by: Claudio Fontana -- Claudio Fontana Server Virtualization Architect Huawei Technologies Duesseldorf GmbH Riesstraße 25 - 80992 München office: +49 89 158834 4135 mobile: +49 15253060158