[PATCH v2 17/18] hw/arm/fsl-imx8mp: Add on-chip RAM

2025-02-23 Thread Bernhard Beschow
Reviewed-by: Peter Maydell 
Signed-off-by: Bernhard Beschow 
---
 include/hw/arm/fsl-imx8mp.h |  1 +
 hw/arm/fsl-imx8mp.c | 11 +++
 2 files changed, 12 insertions(+)

diff --git a/include/hw/arm/fsl-imx8mp.h b/include/hw/arm/fsl-imx8mp.h
index 4dbe30f524..03f057c7db 100644
--- a/include/hw/arm/fsl-imx8mp.h
+++ b/include/hw/arm/fsl-imx8mp.h
@@ -69,6 +69,7 @@ struct FslImx8mpState {
 FslImx8mPciePhyState   pcie_phy;
 OrIRQState gpt5_gpt6_irq;
 MemoryRegion   boot_rom;
+MemoryRegion   ocram;
 
 uint32_t   phy_num;
 bool   phy_connected;
diff --git a/hw/arm/fsl-imx8mp.c b/hw/arm/fsl-imx8mp.c
index f26cf5984e..4e6c4d0767 100644
--- a/hw/arm/fsl-imx8mp.c
+++ b/hw/arm/fsl-imx8mp.c
@@ -661,6 +661,16 @@ static void fsl_imx8mp_realize(DeviceState *dev, Error 
**errp)
 fsl_imx8mp_memmap[FSL_IMX8MP_BOOT_ROM].addr,
 &s->boot_rom);
 
+/* On-Chip RAM */
+if (!memory_region_init_ram(&s->ocram, NULL, "imx8mp.ocram",
+fsl_imx8mp_memmap[FSL_IMX8MP_OCRAM].size,
+errp)) {
+return;
+}
+memory_region_add_subregion(get_system_memory(),
+fsl_imx8mp_memmap[FSL_IMX8MP_OCRAM].addr,
+&s->ocram);
+
 /* Unimplemented devices */
 for (i = 0; i < ARRAY_SIZE(fsl_imx8mp_memmap); i++) {
 switch (i) {
@@ -673,6 +683,7 @@ static void fsl_imx8mp_realize(DeviceState *dev, Error 
**errp)
 case FSL_IMX8MP_ECSPI1 ... FSL_IMX8MP_ECSPI3:
 case FSL_IMX8MP_ENET1:
 case FSL_IMX8MP_I2C1 ... FSL_IMX8MP_I2C6:
+case FSL_IMX8MP_OCRAM:
 case FSL_IMX8MP_PCIE1:
 case FSL_IMX8MP_PCIE_PHY1:
 case FSL_IMX8MP_RAM:
-- 
2.48.1




Re: [PATCH v2 17/18] hw/arm/fsl-imx8mp: Add on-chip RAM

2025-02-06 Thread Peter Maydell
On Tue, 4 Feb 2025 at 09:21, Bernhard Beschow  wrote:
>
> Signed-off-by: Bernhard Beschow 
> ---
>  include/hw/arm/fsl-imx8mp.h |  1 +
>  hw/arm/fsl-imx8mp.c | 11 +++
>  2 files changed, 12 insertions(+)
>

Reviewed-by: Peter Maydell 

thanks
-- PMM



[PATCH v2 17/18] hw/arm/fsl-imx8mp: Add on-chip RAM

2025-02-04 Thread Bernhard Beschow
Signed-off-by: Bernhard Beschow 
---
 include/hw/arm/fsl-imx8mp.h |  1 +
 hw/arm/fsl-imx8mp.c | 11 +++
 2 files changed, 12 insertions(+)

diff --git a/include/hw/arm/fsl-imx8mp.h b/include/hw/arm/fsl-imx8mp.h
index 4dbe30f524..03f057c7db 100644
--- a/include/hw/arm/fsl-imx8mp.h
+++ b/include/hw/arm/fsl-imx8mp.h
@@ -69,6 +69,7 @@ struct FslImx8mpState {
 FslImx8mPciePhyState   pcie_phy;
 OrIRQState gpt5_gpt6_irq;
 MemoryRegion   boot_rom;
+MemoryRegion   ocram;
 
 uint32_t   phy_num;
 bool   phy_connected;
diff --git a/hw/arm/fsl-imx8mp.c b/hw/arm/fsl-imx8mp.c
index 6439639110..e0dfe06e15 100644
--- a/hw/arm/fsl-imx8mp.c
+++ b/hw/arm/fsl-imx8mp.c
@@ -665,6 +665,16 @@ static void fsl_imx8mp_realize(DeviceState *dev, Error 
**errp)
 fsl_imx8mp_memmap[FSL_IMX8MP_BOOT_ROM].addr,
 &s->boot_rom);
 
+/* On-Chip RAM */
+if (!memory_region_init_ram(&s->ocram, NULL, "imx8mp.ocram",
+fsl_imx8mp_memmap[FSL_IMX8MP_OCRAM].size,
+errp)) {
+return;
+}
+memory_region_add_subregion(get_system_memory(),
+fsl_imx8mp_memmap[FSL_IMX8MP_OCRAM].addr,
+&s->ocram);
+
 /* Unimplemented devices */
 for (i = 0; i < ARRAY_SIZE(fsl_imx8mp_memmap); i++) {
 switch (i) {
@@ -677,6 +687,7 @@ static void fsl_imx8mp_realize(DeviceState *dev, Error 
**errp)
 case FSL_IMX8MP_ECSPI1 ... FSL_IMX8MP_ECSPI3:
 case FSL_IMX8MP_ENET1:
 case FSL_IMX8MP_I2C1 ... FSL_IMX8MP_I2C6:
+case FSL_IMX8MP_OCRAM:
 case FSL_IMX8MP_PCIE1:
 case FSL_IMX8MP_PCIE_PHY1:
 case FSL_IMX8MP_RAM:
-- 
2.48.1