From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44954) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z3Pp5-0000qL-Ub for qemu-devel@nongnu.org; Fri, 12 Jun 2015 10:20:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z3Pp1-00010c-9g for qemu-devel@nongnu.org; Fri, 12 Jun 2015 10:20:43 -0400 Received: from mail-wi0-f171.google.com ([209.85.212.171]:34176) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z3Pp1-00010G-1b for qemu-devel@nongnu.org; Fri, 12 Jun 2015 10:20:39 -0400 Received: by wibut5 with SMTP id ut5so20259479wib.1 for ; Fri, 12 Jun 2015 07:20:38 -0700 (PDT) From: Baptiste Reynal Date: Fri, 12 Jun 2015 16:20:07 +0200 Message-Id: <1434118810-28219-4-git-send-email-b.reynal@virtualopensystems.com> In-Reply-To: <1434118810-28219-1-git-send-email-b.reynal@virtualopensystems.com> References: <1434118810-28219-1-git-send-email-b.reynal@virtualopensystems.com> Subject: [Qemu-devel] [RFC 3/6] hw/core/platform-bus: add base_address field List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: iommu@lists.linux-foundation.org, qemu-devel@nongnu.org Cc: Baptiste Reynal , tech@virtualopensystems.com, will.deacon@arm.com, Peter Maydell Add base_address field to platform_bus structure and initialize it. As the platform devices addresses are relative to the platform bus, we need it to get the absolute address of a device. Signed-off-by: Baptiste Reynal --- hw/arm/virt.c | 4 ++++ include/hw/platform-bus.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 1b1cc71..33361c5 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -740,6 +740,7 @@ static void create_platform_bus(VirtBoardInfo *vbi, qemu_irq *pic) { DeviceState *dev; SysBusDevice *s; + PlatformBusDevice *pbus; int i; ARMPlatformBusFDTParams *fdt_params = g_new(ARMPlatformBusFDTParams, 1); MemoryRegion *sysmem = get_system_memory(); @@ -766,6 +767,9 @@ static void create_platform_bus(VirtBoardInfo *vbi, qemu_irq *pic) platform_bus_params.platform_bus_size); qdev_init_nofail(dev); s = SYS_BUS_DEVICE(dev); + pbus = PLATFORM_BUS_DEVICE(dev); + + pbus->base_address = vbi->memmap[VIRT_PLATFORM_BUS].base; for (i = 0; i < platform_bus_params.platform_bus_num_irqs; i++) { int irqn = platform_bus_params.platform_bus_first_irq + i; diff --git a/include/hw/platform-bus.h b/include/hw/platform-bus.h index 3c3f96b..13efc82 100644 --- a/include/hw/platform-bus.h +++ b/include/hw/platform-bus.h @@ -41,6 +41,8 @@ struct PlatformBusDevice { bool done_gathering; /*< public >*/ + hwaddr base_address; + uint32_t mmio_size; MemoryRegion mmio; -- 2.4.3