[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 04/12] hw/misc/allwinner-dramc: Do not use SysBus API to map loca
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH 04/12] hw/misc/allwinner-dramc: Do not use SysBus API to map local MMIO region |
Date: |
Wed, 18 Oct 2023 16:11:42 +0200 |
There is no point in exposing an internal MMIO region via
SysBus and directly mapping it in the very same device.
Just map it without using the SysBus API.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/misc/allwinner-r40-dramc.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/hw/misc/allwinner-r40-dramc.c b/hw/misc/allwinner-r40-dramc.c
index 2cc0254a55..3d81ddb2e1 100644
--- a/hw/misc/allwinner-r40-dramc.c
+++ b/hw/misc/allwinner-r40-dramc.c
@@ -414,7 +414,6 @@ static void allwinner_r40_dramc_reset(DeviceState *dev)
static void allwinner_r40_dramc_realize(DeviceState *dev, Error **errp)
{
AwR40DramCtlState *s = AW_R40_DRAMC(dev);
- SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
if (!get_match_ddr(s->ram_size)) {
error_report("%s: ram-size %u MiB is not supported",
@@ -422,23 +421,23 @@ static void allwinner_r40_dramc_realize(DeviceState *dev,
Error **errp)
exit(1);
}
- /* R40 support max 2G memory but we only support up to 1G now. index 3 */
+ /* R40 support max 2G memory but we only support up to 1G now. */
memory_region_init_io(&s->detect_cells, OBJECT(s),
&allwinner_r40_detect_ops, s,
"DRAMCELLS", 1 * GiB);
- sysbus_init_mmio(sbd, &s->detect_cells);
- sysbus_mmio_map_overlap(sbd, 3, s->ram_addr, 10);
+ memory_region_add_subregion_overlap(get_system_memory(), s->ram_addr,
+ &s->detect_cells, 10);
memory_region_set_enabled(&s->detect_cells, false);
/*
* We only support DRAM size up to 1G now, so prepare a high memory page
- * after 1G for dualrank detect. index = 4
+ * after 1G for dualrank detect.
*/
memory_region_init_io(&s->dram_high, OBJECT(s),
&allwinner_r40_dualrank_detect_ops, s,
"DRAMHIGH", KiB);
- sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->dram_high);
- sysbus_mmio_map(SYS_BUS_DEVICE(s), 4, s->ram_addr + GiB);
+ memory_region_add_subregion(get_system_memory(), s->ram_addr + GiB,
+ &s->dram_high);
}
static void allwinner_r40_dramc_init(Object *obj)
--
2.41.0
- [PATCH 00/12] hw: Strengthen SysBus & QBus API, Philippe Mathieu-Daudé, 2023/10/18
- [PATCH 01/12] hw/i386/amd_iommu: Do not use SysBus API to map local MMIO region, Philippe Mathieu-Daudé, 2023/10/18
- [PATCH 02/12] hw/i386/intel_iommu: Do not use SysBus API to map local MMIO region, Philippe Mathieu-Daudé, 2023/10/18
- [PATCH 03/12] hw/misc/allwinner-dramc: Move sysbus_mmio_map call from init -> realize, Philippe Mathieu-Daudé, 2023/10/18
- [PATCH 04/12] hw/misc/allwinner-dramc: Do not use SysBus API to map local MMIO region,
Philippe Mathieu-Daudé <=
- [PATCH 05/12] hw/pci-host/bonito: Do not use SysBus API to map local MMIO region, Philippe Mathieu-Daudé, 2023/10/18
- [PATCH 06/12] hw/acpi: Realize ACPI_GED sysbus device before accessing it, Philippe Mathieu-Daudé, 2023/10/18
- [PATCH 07/12] hw/arm/virt: Realize ARM_GICV2M sysbus device before accessing it, Philippe Mathieu-Daudé, 2023/10/18
- [PATCH 08/12] hw/isa: Realize ISA BUS sysbus device before accessing it, Philippe Mathieu-Daudé, 2023/10/18