From: Pavel Fedin <p.fedin@samsung.com>
To: 'QEMU Developers' <qemu-devel@nongnu.org>
Cc: 'Peter Maydell' <peter.maydell@linaro.org>,
'Alexander Graf' <agraf@suse.de>,
'Igor Mammedov' <imammedo@redhat.com>
Subject: [Qemu-devel] [PATCH] arm/virt: Add high MMIO PCI region, 2G in size
Date: Thu, 23 Jul 2015 14:42:52 +0300 [thread overview]
Message-ID: <01d301d0c53c$b5f1d9a0$21d58ce0$@samsung.com> (raw)
This large region is necessary for some devices like ivshmem and video cards
Signed-off-by: Pavel Fedin <p.fedin@samsung.com>
---
A small merge conflict in virt.h is possible when applying the patch to current master. It is
caused by change made by my vGICv3 series (VIRT_GIC_V2M changed).
---
hw/arm/virt.c | 13 ++++++++++++-
include/hw/arm/virt.h | 1 +
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index e798f72..a9badec 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -125,6 +125,7 @@ static const MemMapEntry a15memmap[] = {
[VIRT_PCIE_PIO] = { 0x3eff0000, 0x00010000 },
[VIRT_PCIE_ECAM] = { 0x3f000000, 0x01000000 },
[VIRT_MEM] = { 0x40000000, 30ULL * 1024 * 1024 * 1024 },
+ [VIRT_PCIE_MMIO_HIGH] = {0x800000000, 0x80000000 },
};
static const int a15irqmap[] = {
@@ -759,6 +760,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_mmio_high = vbi->memmap[VIRT_PCIE_MMIO_HIGH].base;
+ hwaddr size_mmio_high = vbi->memmap[VIRT_PCIE_MMIO_HIGH].size;
hwaddr base = base_mmio;
int nr_pcie_buses = size_ecam / PCIE_MMCFG_SIZE_MIN;
int irq = vbi->irqmap[VIRT_PCIE];
@@ -794,6 +797,12 @@ static void create_pcie(const VirtBoardInfo *vbi, qemu_irq *pic)
/* Map IO port space */
sysbus_mmio_map(SYS_BUS_DEVICE(dev), 2, base_pio);
+ /* High MMIO space */
+ mmio_alias = g_new0(MemoryRegion, 1);
+ memory_region_init_alias(mmio_alias, OBJECT(dev), "pcie-mmio-high",
+ mmio_reg, base_mmio_high, size_mmio_high);
+ memory_region_add_subregion(get_system_memory(), base_mmio_high, mmio_alias);
+
for (i = 0; i < GPEX_NUM_IRQS; i++) {
sysbus_connect_irq(SYS_BUS_DEVICE(dev), i, pic[irq + i]);
}
@@ -819,7 +828,9 @@ static void create_pcie(const VirtBoardInfo *vbi, qemu_irq *pic)
1, FDT_PCI_RANGE_IOPORT, 2, 0,
2, base_pio, 2, size_pio,
1, FDT_PCI_RANGE_MMIO, 2, base_mmio,
- 2, base_mmio, 2, size_mmio);
+ 2, base_mmio, 2, size_mmio,
+ 1, FDT_PCI_RANGE_MMIO, 2, base_mmio_high,
+ 2, base_mmio_high, 2, size_mmio_high);
qemu_fdt_setprop_cell(vbi->fdt, nodename, "#interrupt-cells", 1);
create_pcie_irq_map(vbi, vbi->gic_phandle, irq, nodename);
diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h
index 852efb9..1d43598 100644
--- a/include/hw/arm/virt.h
+++ b/include/hw/arm/virt.h
@@ -60,6 +60,7 @@ enum {
VIRT_PCIE_PIO,
VIRT_PCIE_ECAM,
VIRT_PLATFORM_BUS,
+ VIRT_PCIE_MMIO_HIGH,
};
typedef struct MemMapEntry {
--
1.9.5.msysgit.0
next reply other threads:[~2015-07-23 11:43 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-23 11:42 Pavel Fedin [this message]
2015-07-23 11:57 ` [Qemu-devel] [PATCH] arm/virt: Add high MMIO PCI region, 2G in size Alexander Graf
2015-07-23 16:56 ` Paolo Bonzini
2015-07-26 13:13 ` Pavel Fedin
2015-07-24 7:16 ` Pavel Fedin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='01d301d0c53c$b5f1d9a0$21d58ce0$@samsung.com' \
--to=p.fedin@samsung.com \
--cc=agraf@suse.de \
--cc=imammedo@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).