[PATCH v2 17/18] hw/arm/fsl-imx8mp: Add on-chip RAM
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
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
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
