All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, blauwirbel@gmail.com,
	aliguori@amazon.com, pcrost@xilinx.com, pbonzini@redhat.com,
	afaerber@suse.de, aurelien@aurel32.net, rth@twiddle.net
Subject: [Qemu-devel] [PATCH v4 22/22] petalogix-ml605: Make the LMB visible only to the CPU
Date: Mon,  3 Feb 2014 19:44:50 +1000	[thread overview]
Message-ID: <1391420690-23745-23-git-send-email-edgar.iglesias@gmail.com> (raw)
In-Reply-To: <1391420690-23745-1-git-send-email-edgar.iglesias@gmail.com>

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 37cbbfd..d1acbff 100644
--- a/hw/microblaze/petalogix_ml605_mmu.c
+++ b/hw/microblaze/petalogix_ml605_mmu.c
@@ -86,16 +86,31 @@ petalogix_ml605_init(QEMUMachineInitArgs *args)
     MemoryRegion *phys_lmb_bram = g_new(MemoryRegion, 1);
     MemoryRegion *phys_ram = g_new(MemoryRegion, 1);
     qemu_irq irq[32];
+    MemoryRegion *sysmem_alias = g_new(MemoryRegion, 1);
+    MemoryRegion *mr_cpu_root = g_new(MemoryRegion, 1);
+    AddressSpace *as_cpu = g_malloc0(sizeof(*as_cpu));
+
+    /* 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", &error_abort);
 
+    /* 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));
+    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.8.1.2

  parent reply	other threads:[~2014-02-03  9:58 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-03  9:44 [Qemu-devel] [PATCH v4 00/22] Steps towards per CPU address-spaces Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 01/22] exec: Make tb_invalidate_phys_addr input an AS Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 02/22] exec: Make iotlb_to_region " Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 03/22] exec: Always initialize MemorySection address spaces Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 04/22] exec: Make memory_region_section_get_iotlb use section AS Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 05/22] memory: Add MemoryListener to typedefs.h Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 06/22] cpu: Add per-cpu address space Edgar E. Iglesias
2014-02-11 19:52   ` Andreas Färber
2014-02-14  5:36     ` Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 07/22] exec: On AS changes, only flush affected CPU TLBs Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 08/22] exec: Make ldl_*_phys input an AddressSpace Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 09/22] exec: Make ldq/ldub_*_phys " Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 10/22] exec: Make lduw_*_phys " Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 11/22] exec: Make stq_*_phys " Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 12/22] exec: Make stl_*_phys " Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 13/22] exec: Make stl_phys_notdirty " Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 14/22] exec: Make stw_*_phys " Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 15/22] exec: Make stb_phys " Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 16/22] exec: Make cpu_physical_memory_write_rom input an AS Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 17/22] exec: Make cpu_memory_rw_debug use the CPUs AS Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 18/22] memory: Add address_space_find_by_name() Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 19/22] qdev: Add qdev property type for AddressSpaces Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 20/22] cpu: Add address-space property Edgar E. Iglesias
2014-02-03  9:44 ` [Qemu-devel] [PATCH v4 21/22] petalogix-ml605: Create the CPU with object_new() Edgar E. Iglesias
2014-02-03  9:44 ` Edgar E. Iglesias [this message]
2014-02-05 18:44 ` [Qemu-devel] [PATCH v4 00/22] Steps towards per CPU address-spaces Peter Maydell
2014-02-06  1:40   ` Edgar E. Iglesias
2014-02-09 13:31 ` Andreas Färber
2014-02-09 14:21   ` Peter Maydell
2014-02-09 22:15     ` Paolo Bonzini
2014-02-10  9:23       ` Peter Maydell
2014-02-10 17:04         ` Paolo Bonzini
2014-02-10 23:10     ` Edgar E. Iglesias
2014-02-10 23:42       ` Peter Maydell
2014-02-10 23:53         ` Edgar E. Iglesias
2014-02-11 21:40           ` Paolo Bonzini

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=1391420690-23745-23-git-send-email-edgar.iglesias@gmail.com \
    --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.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.