[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 05/24] hw/arm/aspeed: Do not sysbus-map mmio flash region directl
From: |
Cédric Le Goater |
Subject: |
[PATCH 05/24] hw/arm/aspeed: Do not sysbus-map mmio flash region directly, use alias |
Date: |
Wed, 7 Apr 2021 19:16:18 +0200 |
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
The flash mmio region is exposed as an AddressSpace.
AddressSpaces must not be sysbus-mapped, therefore map
the region using an alias.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
[ clg : Fix DMA_FLASH_ADDR() ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20210312182851.1922972-3-f4bug@amsat.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
include/hw/ssi/aspeed_smc.h | 1 +
hw/ssi/aspeed_smc.c | 7 ++++---
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/include/hw/ssi/aspeed_smc.h b/include/hw/ssi/aspeed_smc.h
index ccd71d9b534e..6ea2871cd899 100644
--- a/include/hw/ssi/aspeed_smc.h
+++ b/include/hw/ssi/aspeed_smc.h
@@ -84,6 +84,7 @@ struct AspeedSMCState {
MemoryRegion mmio;
MemoryRegion mmio_flash;
+ MemoryRegion mmio_flash_alias;
qemu_irq irq;
int irqline;
diff --git a/hw/ssi/aspeed_smc.c b/hw/ssi/aspeed_smc.c
index 884e08aca4e2..50ea907aef74 100644
--- a/hw/ssi/aspeed_smc.c
+++ b/hw/ssi/aspeed_smc.c
@@ -179,8 +179,7 @@
* 0x7FFFFF: 32M bytes
*/
#define DMA_DRAM_ADDR(s, val) ((val) & (s)->ctrl->dma_dram_mask)
-#define DMA_FLASH_ADDR(s, val) ((s)->ctrl->flash_window_base | \
- ((val) & (s)->ctrl->dma_flash_mask))
+#define DMA_FLASH_ADDR(s, val) ((val) & (s)->ctrl->dma_flash_mask)
#define DMA_LENGTH(val) ((val) & 0x01FFFFFC)
/* Flash opcodes. */
@@ -1385,7 +1384,9 @@ static void aspeed_smc_realize(DeviceState *dev, Error
**errp)
memory_region_init_io(&s->mmio_flash, OBJECT(s),
&aspeed_smc_flash_default_ops, s, name,
s->ctrl->flash_window_size);
- sysbus_init_mmio(sbd, &s->mmio_flash);
+ memory_region_init_alias(&s->mmio_flash_alias, OBJECT(s), name,
+ &s->mmio_flash, 0, s->ctrl->flash_window_size);
+ sysbus_init_mmio(sbd, &s->mmio_flash_alias);
s->flashes = g_new0(AspeedSMCFlash, s->ctrl->max_peripherals);
--
2.26.3
- [PATCH 00/24] aspeed: fixes and extensions, Cédric Le Goater, 2021/04/07
- [PATCH 22/24] hw/misc: Add Infineon DPS310 sensor model, Cédric Le Goater, 2021/04/07
- [PATCH 08/24] tests/qtest: Add test for Aspeed HACE, Cédric Le Goater, 2021/04/07
- [PATCH 09/24] aspeed: Add Scater-Gather support for HACE Hash, Cédric Le Goater, 2021/04/07
- [PATCH 07/24] aspeed: Integrate HACE, Cédric Le Goater, 2021/04/07
- [PATCH 05/24] hw/arm/aspeed: Do not sysbus-map mmio flash region directly, use alias,
Cédric Le Goater <=
- [PATCH 10/24] tests: Aspeed HACE Scatter-Gather tests, Cédric Le Goater, 2021/04/07
- [PATCH 20/24] aspeed: Emulate the AST2600A3, Cédric Le Goater, 2021/04/07
- [PATCH 03/24] aspeed/i2c: Fix DMA address mask, Cédric Le Goater, 2021/04/07
- [PATCH 12/24] tests/acceptance: Test ast2600 machine, Cédric Le Goater, 2021/04/07
- [PATCH 01/24] aspeed/smc: Use the RAM memory region for DMAs, Cédric Le Goater, 2021/04/07
- [PATCH 13/24] hw/misc/aspeed_xdma: Add AST2600 support, Cédric Le Goater, 2021/04/07