From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"qemu-devel@nongnu.org Developers" <qemu-devel@nongnu.org>,
"Blue Swirl" <blauwirbel@gmail.com>,
"Anthony Liguori" <aliguori@amazon.com>,
"Peter Crosthwaite" <pcrost@xilinx.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Andreas Färber" <afaerber@suse.de>,
"Aurelien Jarno" <aurelien@aurel32.net>,
"Richard Henderson" <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH v2 22/22] petalogix-ml605: Make the LMB visible only to the CPU
Date: Thu, 19 Dec 2013 17:10:06 +1000 [thread overview]
Message-ID: <20131219071006.GB26842@edvb> (raw)
In-Reply-To: <CAEgOgz5n6wUEXEr6OLkfusS8OAUbWf6jgHyQr8bwsarcRbP4aQ@mail.gmail.com>
On Thu, Dec 19, 2013 at 04:37:22PM +1000, Peter Crosthwaite wrote:
> On Thu, Dec 19, 2013 at 3:51 PM, <edgar.iglesias@gmail.com> wrote:
> > From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
> >
> > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
> > ---
> > hw/microblaze/petalogix_ml605_mmu.c | 17 ++++++++++++++++-
> > 1 file changed, 16 insertions(+), 1 deletion(-)
> >
> > diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_ml605_mmu.c
> > index 4009ff5..0a13b0e 100644
> > --- a/hw/microblaze/petalogix_ml605_mmu.c
> > +++ b/hw/microblaze/petalogix_ml605_mmu.c
> > @@ -88,10 +88,18 @@ petalogix_ml605_init(QEMUMachineInitArgs *args)
> > hwaddr ddr_base = MEMORY_BASEADDR;
> > MemoryRegion *phys_lmb_bram = g_new(MemoryRegion, 1);
> > MemoryRegion *phys_ram = g_new(MemoryRegion, 1);
> > + MemoryRegion *sysmem_alias = g_new(MemoryRegion, 1);
> > + MemoryRegion *mr_cpu_root = g_new(MemoryRegion, 1);
> > + AddressSpace *as_cpu = g_malloc0(sizeof(*as_cpu));
> > qemu_irq irq[32], *cpu_irq;
> >
> > + /* Setup the CPU specific address-space. */
> > + memory_region_init(mr_cpu_root, NULL, "as-cpu-root", INT64_MAX);
> > + address_space_init(as_cpu, mr_cpu_root, "as/cpu");
> > +
> > /* init CPUs */
> > cpu = MICROBLAZE_CPU(object_new(TYPE_MICROBLAZE_CPU));
> > + qdev_prop_set_address_space(DEVICE(cpu), "address-space", as_cpu);
> > object_property_set_bool(OBJECT(cpu), true, "realized", &err);
> > if (err) {
> > error_report("%s", error_get_pretty(err));
> > @@ -100,11 +108,18 @@ petalogix_ml605_init(QEMUMachineInitArgs *args)
> >
> > env = &cpu->env;
> >
> > + /* Populate the CPU AS with the LMB only visible to the CPU. */
> > + memory_region_init_alias(sysmem_alias, NULL, "sysmem_alias",
> > + address_space_mem, 0,
> > + memory_region_size(address_space_mem));
>
> Can we patch sysbus MMIO APIs to accept an AS to remove the machine's
> reliance on the global address_space_mem completely?
Yes good point, thats part of the future work that needs to be done. I've split
the stuff into multiple rounds as the patch series will be easily become
unmanageable with stuff that touches big parts of the tree.
Thanks,
Edgar
>
> Regards,
> Peter
>
> > + memory_region_add_subregion(mr_cpu_root, 0x00000000, sysmem_alias);
> > +
> > /* Attach emulated BRAM through the LMB. */
> > memory_region_init_ram(phys_lmb_bram, NULL, "petalogix_ml605.lmb_bram",
> > LMB_BRAM_SIZE);
> > vmstate_register_ram_global(phys_lmb_bram);
> > - memory_region_add_subregion(address_space_mem, 0x00000000, phys_lmb_bram);
> > + memory_region_add_subregion_overlap(mr_cpu_root, 0x00000000,
> > + phys_lmb_bram, 2);
> >
> > memory_region_init_ram(phys_ram, NULL, "petalogix_ml605.ram", ram_size);
> > vmstate_register_ram_global(phys_ram);
> > --
> > 1.7.10.4
> >
> >
next prev parent reply other threads:[~2013-12-19 7:10 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-19 5:51 [Qemu-devel] [PATCH v2 00/22] Steps towards per CPU address-spaces edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 01/22] exec: Make tb_invalidate_phys_addr input an AS edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 02/22] exec: Make iotlb_to_region " edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 03/22] exec: Always initialize MemorySection address spaces edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 04/22] exec: Make memory_region_section_get_iotlb use section AS edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 05/22] memory: Add MemoryListener to typedefs.h edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 06/22] cpu: Add per-cpu address space edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 07/22] exec: On AS changes, only flush affected CPU TLBs edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 08/22] exec: Make ldl_*_phys input an AddressSpace edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 09/22] exec: Make ldq/ldub_*_phys " edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 10/22] exec: Make lduw_*_phys " edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 11/22] exec: Make stq_*_phys " edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 12/22] exec: Make stl_*_phys " edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 13/22] exec: Make stl_phys_notdirty " edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 14/22] exec: Make stw_*_phys " edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 15/22] exec: Make stb_phys " edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 16/22] exec: Make cpu_physical_memory_write_rom input an AS edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 17/22] exec: Make cpu_memory_rw_debug use the CPUs AS edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 18/22] memory: Add address_space_find_by_name() edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 19/22] qdev: Add qdev property type for AddressSpaces edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 20/22] target-microblaze: Add address-space property edgar.iglesias
2013-12-19 6:22 ` Peter Crosthwaite
2013-12-19 7:05 ` Edgar E. Iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 21/22] petalogix-ml605: Create the CPU with object_new() edgar.iglesias
2013-12-19 5:51 ` [Qemu-devel] [PATCH v2 22/22] petalogix-ml605: Make the LMB visible only to the CPU edgar.iglesias
2013-12-19 6:37 ` Peter Crosthwaite
2013-12-19 7:10 ` Edgar E. Iglesias [this message]
2013-12-19 12:46 ` Peter Crosthwaite
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=20131219071006.GB26842@edvb \
--to=edgar.iglesias@gmail.com \
--cc=afaerber@suse.de \
--cc=aliguori@amazon.com \
--cc=aurelien@aurel32.net \
--cc=blauwirbel@gmail.com \
--cc=pbonzini@redhat.com \
--cc=pcrost@xilinx.com \
--cc=peter.crosthwaite@xilinx.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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).