All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
	Igor Mammedov <imammedo@redhat.com>,
	qemu-devel@nongnu.org, Markus Armbruster <armbru@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>
Cc: "Paul Burton" <pburton@wavecomp.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Leif Lindholm" <leif.lindholm@linaro.org>,
	"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	"KONRAD Frederic" <frederic.konrad@adacore.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"Rob Herring" <robh@kernel.org>,
	"Andrey Smirnov" <andrew.smirnov@gmail.com>,
	"Helge Deller" <deller@gmx.de>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Joel Stanley" <joel@jms.id.au>,
	"Aleksandar Rikalo" <aleksandar.rikalo@rt-rk.com>,
	"Richard Henderson" <rth@twiddle.net>,
	"Artyom Tarasenko" <atar4qemu@gmail.com>,
	"Antony Pavlov" <antonynpavlov@gmail.com>,
	"Alistair Francis" <alistair@alistair23.me>,
	"Fabien Chouteau" <chouteau@adacore.com>,
	"Beniamino Galvani" <b.galvani@gmail.com>,
	qemu-arm@nongnu.org, "Peter Chubb" <peter.chubb@nicta.com.au>,
	"Cédric Le Goater" <clg@kaod.org>,
	"David Gibson" <david@gibson.dropbear.id.au>,
	"Radoslaw Biernacki" <radoslaw.biernacki@linaro.org>,
	"Thomas Huth" <huth@tuxfamily.org>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Andrew Baumann" <Andrew.Baumann@microsoft.com>,
	"Jean-Christophe Dubois" <jcd@tribudubois.net>,
	"Andrew Jeffery" <andrew@aj.id.au>,
	"Michael Walle" <michael@walle.cc>,
	qemu-ppc@nongnu.org,
	"Aleksandar Markovic" <amarkovic@wavecomp.com>,
	"Jan Kiszka" <jan.kiszka@web.de>,
	"Aurelien Jarno" <aurelien@aurel32.net>
Subject: [PATCH 05/21] hw/arm/omap1: Create the RAM in the board
Date: Mon, 21 Oct 2019 00:56:34 +0200	[thread overview]
Message-ID: <20191020225650.3671-6-philmd@redhat.com> (raw)
In-Reply-To: <20191020225650.3671-1-philmd@redhat.com>

The SDRAM is incorrectly created in the OMAP310 SoC.
Move its creation in the board code, this will later allow the
board to have the QOM ownership of the RAM.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/arm/omap1.c        | 12 +++++-------
 hw/arm/omap_sx1.c     |  8 ++++++--
 hw/arm/palm.c         |  8 ++++++--
 include/hw/arm/omap.h |  6 ++----
 4 files changed, 19 insertions(+), 15 deletions(-)

diff --git a/hw/arm/omap1.c b/hw/arm/omap1.c
index 0400593805..6ce038a453 100644
--- a/hw/arm/omap1.c
+++ b/hw/arm/omap1.c
@@ -23,6 +23,7 @@
 #include "qapi/error.h"
 #include "qemu-common.h"
 #include "cpu.h"
+#include "exec/address-spaces.h"
 #include "hw/boards.h"
 #include "hw/hw.h"
 #include "hw/irq.h"
@@ -3858,8 +3859,7 @@ static int omap_validate_tipb_mpui_addr(struct omap_mpu_state_s *s,
     return range_covers_byte(0xe1010000, 0xe1020004 - 0xe1010000, addr);
 }
 
-struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,
-                unsigned long sdram_size,
+struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *dram,
                 const char *cpu_type)
 {
     int i;
@@ -3867,11 +3867,12 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,
     qemu_irq dma_irqs[6];
     DriveInfo *dinfo;
     SysBusDevice *busdev;
+    MemoryRegion *system_memory = get_system_memory();
 
     /* Core */
     s->mpu_model = omap310;
     s->cpu = ARM_CPU(cpu_create(cpu_type));
-    s->sdram_size = sdram_size;
+    s->sdram_size = memory_region_size(dram);
     s->sram_size = OMAP15XX_SRAM_SIZE;
 
     s->wakeup = qemu_allocate_irq(omap_mpu_wakeup, s, 0);
@@ -3880,9 +3881,6 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,
     omap_clk_init(s);
 
     /* Memory-mapped stuff */
-    memory_region_allocate_system_memory(&s->emiff_ram, NULL, "omap1.dram",
-                                         s->sdram_size);
-    memory_region_add_subregion(system_memory, OMAP_EMIFF_BASE, &s->emiff_ram);
     memory_region_init_ram(&s->imif_ram, NULL, "omap1.sram", s->sram_size,
                            &error_fatal);
     memory_region_add_subregion(system_memory, OMAP_IMIF_BASE, &s->imif_ram);
@@ -3925,7 +3923,7 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,
     s->port[tipb_mpui].addr_valid = omap_validate_tipb_mpui_addr;
 
     /* Register SDRAM and SRAM DMA ports for fast transfers.  */
-    soc_dma_port_add_mem(s->dma, memory_region_get_ram_ptr(&s->emiff_ram),
+    soc_dma_port_add_mem(s->dma, memory_region_get_ram_ptr(dram),
                          OMAP_EMIFF_BASE, s->sdram_size);
     soc_dma_port_add_mem(s->dma, memory_region_get_ram_ptr(&s->imif_ram),
                          OMAP_IMIF_BASE, s->sram_size);
diff --git a/hw/arm/omap_sx1.c b/hw/arm/omap_sx1.c
index c071197be7..be245714db 100644
--- a/hw/arm/omap_sx1.c
+++ b/hw/arm/omap_sx1.c
@@ -103,6 +103,7 @@ static void sx1_init(MachineState *machine, const int version)
 {
     struct omap_mpu_state_s *mpu;
     MemoryRegion *address_space = get_system_memory();
+    MemoryRegion *dram = g_new(MemoryRegion, 1);
     MemoryRegion *flash = g_new(MemoryRegion, 1);
     MemoryRegion *cs = g_new(MemoryRegion, 4);
     static uint32_t cs0val = 0x00213090;
@@ -118,8 +119,11 @@ static void sx1_init(MachineState *machine, const int version)
         flash_size = flash2_size;
     }
 
-    mpu = omap310_mpu_init(address_space, sx1_binfo.ram_size,
-                           machine->cpu_type);
+    memory_region_allocate_system_memory(dram, NULL, "omap1.dram",
+                                         sx1_binfo.ram_size);
+    memory_region_add_subregion(address_space, OMAP_EMIFF_BASE, dram);
+
+    mpu = omap310_mpu_init(dram, machine->cpu_type);
 
     /* External Flash (EMIFS) */
     memory_region_init_ram(flash, NULL, "omap_sx1.flash0-0", flash_size,
diff --git a/hw/arm/palm.c b/hw/arm/palm.c
index 02a3a82b9b..72eca8cc55 100644
--- a/hw/arm/palm.c
+++ b/hw/arm/palm.c
@@ -190,16 +190,20 @@ static void palmte_init(MachineState *machine)
     MemoryRegion *address_space_mem = get_system_memory();
     struct omap_mpu_state_s *mpu;
     int flash_size = 0x00800000;
-    int sdram_size = palmte_binfo.ram_size;
     static uint32_t cs0val = 0xffffffff;
     static uint32_t cs1val = 0x0000e1a0;
     static uint32_t cs2val = 0x0000e1a0;
     static uint32_t cs3val = 0xe1a0e1a0;
     int rom_size, rom_loaded = 0;
+    MemoryRegion *dram = g_new(MemoryRegion, 1);
     MemoryRegion *flash = g_new(MemoryRegion, 1);
     MemoryRegion *cs = g_new(MemoryRegion, 4);
 
-    mpu = omap310_mpu_init(address_space_mem, sdram_size, machine->cpu_type);
+    memory_region_allocate_system_memory(dram, NULL, "omap1.dram",
+                                         palmte_binfo.ram_size);
+    memory_region_add_subregion(address_space_mem, OMAP_EMIFF_BASE, dram);
+
+    mpu = omap310_mpu_init(dram, machine->cpu_type);
 
     /* External Flash (EMIFS) */
     memory_region_init_ram(flash, NULL, "palmte.flash", flash_size,
diff --git a/include/hw/arm/omap.h b/include/hw/arm/omap.h
index 763d8eab4f..f3aa670036 100644
--- a/include/hw/arm/omap.h
+++ b/include/hw/arm/omap.h
@@ -823,7 +823,6 @@ struct omap_mpu_state_s {
     MemoryRegion mpui_io_iomem;
     MemoryRegion tap_iomem;
     MemoryRegion imif_ram;
-    MemoryRegion emiff_ram;
     MemoryRegion sram;
 
     struct omap_dma_port_if_s {
@@ -835,7 +834,7 @@ struct omap_mpu_state_s {
                         hwaddr addr);
     } port[__omap_dma_port_last];
 
-    unsigned long sdram_size;
+    uint64_t sdram_size;
     unsigned long sram_size;
 
     /* MPUI-TIPB peripherals */
@@ -932,8 +931,7 @@ struct omap_mpu_state_s {
 };
 
 /* omap1.c */
-struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,
-                unsigned long sdram_size,
+struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *sdram,
                 const char *core);
 
 /* omap2.c */
-- 
2.21.0



  parent reply	other threads:[~2019-10-20 23:05 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-20 22:56 [PATCH 00/21] hw: Let the machine be the owner of the system memory Philippe Mathieu-Daudé
2019-10-20 22:56 ` [PATCH 01/21] hw/arm/xilinx_zynq: Use the IEC binary prefix definitions Philippe Mathieu-Daudé
2019-10-21 16:49   ` Richard Henderson
2019-10-21 20:47   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 02/21] hw/arm/mps2: " Philippe Mathieu-Daudé
2019-10-21 16:50   ` Richard Henderson
2019-10-21 20:47   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 03/21] hw/arm/collie: Create the RAM in the board Philippe Mathieu-Daudé
2019-10-21 16:55   ` Richard Henderson
2019-10-21 20:49   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 04/21] hw/arm/omap2: " Philippe Mathieu-Daudé
2019-10-21 16:59   ` Richard Henderson
2019-10-21 17:18     ` Philippe Mathieu-Daudé
2019-10-20 22:56 ` Philippe Mathieu-Daudé [this message]
2019-10-21 17:03   ` [PATCH 05/21] hw/arm/omap1: " Richard Henderson
2019-10-20 22:56 ` [PATCH 06/21] hw/arm/digic4: Inline digic4_board_setup_ram() function Philippe Mathieu-Daudé
2019-10-21 17:04   ` Richard Henderson
2019-10-21 20:51   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 07/21] hw: Drop QOM ownership on memory_region_allocate_system_memory() calls Philippe Mathieu-Daudé
2019-10-21 23:18   ` Alistair Francis
2019-10-22  9:47     ` Artyom Tarasenko
2019-10-20 22:56 ` [PATCH 08/21] hw/alpha/dp264: Create the RAM in the board Philippe Mathieu-Daudé
2019-10-21  8:53   ` Philippe Mathieu-Daudé
2019-10-21 17:27   ` Richard Henderson
2019-10-21 17:34     ` Philippe Mathieu-Daudé
2019-10-20 22:56 ` [PATCH 09/21] hw: Let memory_region_allocate_system_memory take MachineState argument Philippe Mathieu-Daudé
2019-10-21  7:27   ` Thomas Huth
2019-10-21  8:32     ` Philippe Mathieu-Daudé
2019-10-21 23:19   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 10/21] hw/core: Let the machine be the owner of the system memory Philippe Mathieu-Daudé
2019-10-21 23:20   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 11/21] hw/alpha: " Philippe Mathieu-Daudé
2019-10-21 17:14   ` Richard Henderson
2019-10-21 17:19     ` Richard Henderson
2019-10-21 17:26       ` Philippe Mathieu-Daudé
2019-10-20 22:56 ` [PATCH 12/21] hw/arm: " Philippe Mathieu-Daudé
2019-10-21  9:22   ` Peter Maydell
2019-10-21  9:33     ` Philippe Mathieu-Daudé
2019-10-21  9:39       ` Peter Maydell
2019-10-21 10:24         ` Philippe Mathieu-Daudé
2019-10-21 14:57           ` Dr. David Alan Gilbert
2021-02-03 16:05             ` Philippe Mathieu-Daudé
2019-10-20 22:56 ` [PATCH 13/21] hw/cris: " Philippe Mathieu-Daudé
2019-10-21 17:28   ` Richard Henderson
2019-10-21 20:56   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 14/21] hw/hppa: " Philippe Mathieu-Daudé
2019-10-21 17:29   ` Richard Henderson
2019-10-21 20:56   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 15/21] hw/i386: " Philippe Mathieu-Daudé
2019-10-21 17:29   ` Richard Henderson
2019-10-21 20:56   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 16/21] hw/lm32: " Philippe Mathieu-Daudé
2019-10-21 17:30   ` Richard Henderson
2019-10-21 20:57   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 17/21] hw/m68k: " Philippe Mathieu-Daudé
2019-10-21  7:28   ` Thomas Huth
2019-10-21 17:31   ` Richard Henderson
2019-10-21 20:57   ` Alistair Francis
2019-10-20 22:56 ` [PATCH 18/21] hw/mips: " Philippe Mathieu-Daudé
2019-10-21  6:25   ` Aleksandar Markovic
2019-10-21  8:34     ` Philippe Mathieu-Daudé
2019-10-21 10:56       ` Aleksandar Markovic
2019-10-21 11:05         ` Philippe Mathieu-Daudé
2019-10-21 11:10           ` Aleksandar Markovic
2019-10-21 11:28             ` Philippe Mathieu-Daudé
2019-10-21 12:10               ` Aleksandar Markovic
2019-10-21 19:24   ` [EXTERNAL][PATCH " Aleksandar Markovic
2019-10-20 22:56 ` [PATCH 19/21] hw/ppc: " Philippe Mathieu-Daudé
2019-10-21  0:44   ` David Gibson
2019-10-21 17:33   ` Richard Henderson
2019-10-20 22:56 ` [PATCH 20/21] hw/sparc: " Philippe Mathieu-Daudé
2019-10-21 17:33   ` Richard Henderson
2019-10-20 22:56 ` [PATCH 21/21] hw/core: Assert memory_region_allocate_system_memory has machine owner Philippe Mathieu-Daudé
2019-10-21 17:41   ` Richard Henderson
2019-10-21 21:00   ` Alistair Francis
2019-10-21  0:03 ` [PATCH 00/21] hw: Let the machine be the owner of the system memory no-reply
2019-10-21  8:52 ` Philippe Mathieu-Daudé
2019-10-21 14:31   ` Philippe Mathieu-Daudé

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=20191020225650.3671-6-philmd@redhat.com \
    --to=philmd@redhat.com \
    --cc=Andrew.Baumann@microsoft.com \
    --cc=aleksandar.rikalo@rt-rk.com \
    --cc=alistair@alistair23.me \
    --cc=amarkovic@wavecomp.com \
    --cc=andrew.smirnov@gmail.com \
    --cc=andrew@aj.id.au \
    --cc=antonynpavlov@gmail.com \
    --cc=armbru@redhat.com \
    --cc=atar4qemu@gmail.com \
    --cc=aurelien@aurel32.net \
    --cc=b.galvani@gmail.com \
    --cc=chouteau@adacore.com \
    --cc=clg@kaod.org \
    --cc=david@gibson.dropbear.id.au \
    --cc=deller@gmx.de \
    --cc=edgar.iglesias@gmail.com \
    --cc=ehabkost@redhat.com \
    --cc=frederic.konrad@adacore.com \
    --cc=hpoussin@reactos.org \
    --cc=huth@tuxfamily.org \
    --cc=imammedo@redhat.com \
    --cc=jan.kiszka@web.de \
    --cc=jcd@tribudubois.net \
    --cc=joel@jms.id.au \
    --cc=leif.lindholm@linaro.org \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=michael@walle.cc \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=pburton@wavecomp.com \
    --cc=peter.chubb@nicta.com.au \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=radoslaw.biernacki@linaro.org \
    --cc=robh@kernel.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.