From patchwork Wed Jan 27 13:51:54 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Auger Eric X-Patchwork-Id: 60622 Delivered-To: patch@linaro.org Received: by 10.112.130.2 with SMTP id oa2csp2594303lbb; Wed, 27 Jan 2016 05:53:10 -0800 (PST) X-Received: by 10.140.28.69 with SMTP id 63mr35465099qgy.66.1453902790594; Wed, 27 Jan 2016 05:53:10 -0800 (PST) Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id f185si4163318qkb.71.2016.01.27.05.53.10 for (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 27 Jan 2016 05:53:10 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dkim=fail header.i=@linaro.org Received: from localhost ([::1]:50635 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aOQX0-0003zk-6E for patch@linaro.org; Wed, 27 Jan 2016 08:53:10 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38557) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aOQWC-00033V-Us for qemu-devel@nongnu.org; Wed, 27 Jan 2016 08:52:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aOQWB-0002By-Qn for qemu-devel@nongnu.org; Wed, 27 Jan 2016 08:52:20 -0500 Received: from mail-wm0-x229.google.com ([2a00:1450:400c:c09::229]:35234) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aOQWB-0002Bs-KF for qemu-devel@nongnu.org; Wed, 27 Jan 2016 08:52:19 -0500 Received: by mail-wm0-x229.google.com with SMTP id r129so145878870wmr.0 for ; Wed, 27 Jan 2016 05:52:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gME1jvM1eGCKe8gKexG1kYsgedrsR9kIY4HQ9sG1b5E=; b=bwIpgkURwwToCfW3HYD0Clk+D3+rKbX2+8Q/Oz7NlNZWkKOLI6D73kJyeK8ANopwUa eFtucHOPQppzHhRJihoI9GhlR1WinHEIGcp7hNsAoC3iJyQ24qE4JNwVQ9hU1366kjoB UTvRdmTwuTUulkt0GQ9mfYOI24brxKi2OOYHo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=gME1jvM1eGCKe8gKexG1kYsgedrsR9kIY4HQ9sG1b5E=; b=LOF2a/8MouTx1decICB5iPdQZP9AhTZbSF0NQDU9wydmBAyxD7vr33Mtc9OgFCrutn TwnnI1HGXRB9Z3I9hKo491JjKV/wRnojkDR89AZspeY4H1AiPvV5EEbHKWBlSmHvObKX gNjZhneuQnwOYRkhG8QIDoalvfbZ7O/sX7ZhVfQOI90xySw74VLrBz7HldZN4LfFZvqh OTzitKSuuUDp+foHFmbKFAIHw1rMQZsshJ2qzRLqIjGe9Z2pblBJmC4bYnjNTUtxcXj9 PyK8p6F5v4dhYnmaVYb0ErFDAQNmssJlaYhjG0IQ9h2tpLszxkaqVA+3JGKRuPO63h+v hrSw== X-Gm-Message-State: AG10YOT65pW8Tiql3/w3yUs4nDs3RBG+lGAJy1gqMA6xVDhcwyH7nu/PMlAHmxSpdw3ISbRC X-Received: by 10.194.113.102 with SMTP id ix6mr33045460wjb.143.1453902738998; Wed, 27 Jan 2016 05:52:18 -0800 (PST) Received: from new-host-8.home (LMontsouris-657-1-37-90.w80-11.abo.wanadoo.fr. [80.11.198.90]) by smtp.gmail.com with ESMTPSA id t9sm6345866wjf.33.2016.01.27.05.52.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 27 Jan 2016 05:52:16 -0800 (PST) From: Eric Auger To: eric.auger@st.com, eric.auger@linaro.org, qemu-devel@nongnu.org, qemu-arm@nongnu.org, peter.maydell@linaro.org, alex.williamson@redhat.com, pranav.sawargaonkar@gmail.com, p.fedin@samsung.com, pbonzini@redhat.com, agraf@suse.de Date: Wed, 27 Jan 2016 13:51:54 +0000 Message-Id: <1453902715-25304-7-git-send-email-eric.auger@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1453902715-25304-1-git-send-email-eric.auger@linaro.org> References: <1453902715-25304-1-git-send-email-eric.auger@linaro.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:400c:c09::229 Cc: Bharat.Bhushan@freescale.com, suravee.suthikulpanit@amd.com, christoffer.dall@linaro.org Subject: [Qemu-devel] [RFC 6/7] hw: arm: virt: register reserved IOVA region X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Registers a 16x64kB reserved iova region. Currently this iova region is used by the kernel to map host MSI controller frames (GICv2m, GITS_TRANSLATER). Signed-off-by: Eric Auger --- hw/arm/virt.c | 10 ++++++++++ include/hw/arm/virt.h | 1 + 2 files changed, 11 insertions(+) -- 1.9.1 diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 3839c68..7eaf8be 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -125,6 +125,7 @@ static const MemMapEntry a15memmap[] = { [VIRT_GPIO] = { 0x09030000, 0x00001000 }, [VIRT_SECURE_UART] = { 0x09040000, 0x00001000 }, [VIRT_MMIO] = { 0x0a000000, 0x00000200 }, + [VIRT_RESERVED] = { 0x0be00000, 0x00100000 }, /* ...repeating for a total of NUM_VIRTIO_TRANSPORTS, each of that size */ [VIRT_PLATFORM_BUS] = { 0x0c000000, 0x02000000 }, [VIRT_PCIE_MMIO] = { 0x10000000, 0x2eff0000 }, @@ -815,6 +816,8 @@ static void create_pcie(const VirtBoardInfo *vbi, qemu_irq *pic, hwaddr size_pio = vbi->memmap[VIRT_PCIE_PIO].size; hwaddr base_ecam = vbi->memmap[VIRT_PCIE_ECAM].base; hwaddr size_ecam = vbi->memmap[VIRT_PCIE_ECAM].size; + hwaddr base_reserved = vbi->memmap[VIRT_RESERVED].base; + hwaddr size_reserved = vbi->memmap[VIRT_RESERVED].size; hwaddr base = base_mmio; int nr_pcie_buses = size_ecam / PCIE_MMCFG_SIZE_MIN; int irq = vbi->irqmap[VIRT_PCIE]; @@ -822,6 +825,7 @@ static void create_pcie(const VirtBoardInfo *vbi, qemu_irq *pic, MemoryRegion *mmio_reg; MemoryRegion *ecam_alias; MemoryRegion *ecam_reg; + MemoryRegion *reserved_reg; DeviceState *dev; char *nodename; int i; @@ -838,6 +842,12 @@ static void create_pcie(const VirtBoardInfo *vbi, qemu_irq *pic, ecam_reg, 0, size_ecam); memory_region_add_subregion(get_system_memory(), base_ecam, ecam_alias); + reserved_reg = g_new0(MemoryRegion, 1); + memory_region_init_reserved_iova(reserved_reg, OBJECT(dev), "reserved-iova", + size_reserved, &error_fatal); + memory_region_add_subregion(get_system_memory(), base_reserved, + reserved_reg); + /* Map the MMIO window into system address space so as to expose * the section of PCI MMIO space which starts at the same base address * (ie 1:1 mapping for that part of PCI MMIO space visible through diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h index 1ce7847..194871b 100644 --- a/include/hw/arm/virt.h +++ b/include/hw/arm/virt.h @@ -61,6 +61,7 @@ enum { VIRT_PCIE_MMIO_HIGH, VIRT_GPIO, VIRT_SECURE_UART, + VIRT_RESERVED, }; typedef struct MemMapEntry {