Message ID | 20211018132609.160008-5-clg@kaod.org |
---|---|
State | New |
Headers | show |
Series | aspeed/smc: Improve support for the alternate boot function | expand |
On 10/18/21 15:26, Cédric Le Goater wrote: > Because AddressSpaces must not be sysbus-mapped, commit e9c568dbc225 > ("hw/arm/aspeed: Do not sysbus-map mmio flash region directly, use > alias") introduced an alias for the flash mmio region. > > Using a container is cleaner. > > Cc: Philippe Mathieu-Daudé <f4bug@amsat.org> > Signed-off-by: Cédric Le Goater <clg@kaod.org> > --- > include/hw/ssi/aspeed_smc.h | 2 +- > hw/ssi/aspeed_smc.c | 11 +++++++---- > 2 files changed, 8 insertions(+), 5 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
On [2021 Oct 18] Mon 15:26:08, Cédric Le Goater wrote: > Because AddressSpaces must not be sysbus-mapped, commit e9c568dbc225 > ("hw/arm/aspeed: Do not sysbus-map mmio flash region directly, use > alias") introduced an alias for the flash mmio region. > > Using a container is cleaner. > > Cc: Philippe Mathieu-Daudé <f4bug@amsat.org> > Signed-off-by: Cédric Le Goater <clg@kaod.org> Reviewed-by: Francisco Iglesias <frasse.iglesias@gmail.com> > --- > include/hw/ssi/aspeed_smc.h | 2 +- > hw/ssi/aspeed_smc.c | 11 +++++++---- > 2 files changed, 8 insertions(+), 5 deletions(-) > > diff --git a/include/hw/ssi/aspeed_smc.h b/include/hw/ssi/aspeed_smc.h > index ad3c80f2d809..61d23ec1f13e 100644 > --- a/include/hw/ssi/aspeed_smc.h > +++ b/include/hw/ssi/aspeed_smc.h > @@ -52,8 +52,8 @@ struct AspeedSMCState { > SysBusDevice parent_obj; > > MemoryRegion mmio; > + MemoryRegion mmio_flash_container; > MemoryRegion mmio_flash; > - MemoryRegion mmio_flash_alias; > > qemu_irq irq; > > diff --git a/hw/ssi/aspeed_smc.c b/hw/ssi/aspeed_smc.c > index 1770985230b0..d4f03881ddf5 100644 > --- a/hw/ssi/aspeed_smc.c > +++ b/hw/ssi/aspeed_smc.c > @@ -1218,14 +1218,17 @@ static void aspeed_smc_realize(DeviceState *dev, Error **errp) > * window in which the flash modules are mapped. The size and > * address depends on the SoC model and controller type. > */ > + memory_region_init(&s->mmio_flash_container, OBJECT(s), > + TYPE_ASPEED_SMC ".container", > + asc->flash_window_size); > + sysbus_init_mmio(sbd, &s->mmio_flash_container); > + > memory_region_init_io(&s->mmio_flash, OBJECT(s), > &aspeed_smc_flash_default_ops, s, > TYPE_ASPEED_SMC ".flash", > asc->flash_window_size); > - memory_region_init_alias(&s->mmio_flash_alias, OBJECT(s), > - TYPE_ASPEED_SMC ".flash", > - &s->mmio_flash, 0, asc->flash_window_size); > - sysbus_init_mmio(sbd, &s->mmio_flash_alias); > + memory_region_add_subregion(&s->mmio_flash_container, 0x0, > + &s->mmio_flash); > > /* > * Let's create a sub memory region for each possible peripheral. All > -- > 2.31.1 > >
diff --git a/include/hw/ssi/aspeed_smc.h b/include/hw/ssi/aspeed_smc.h index ad3c80f2d809..61d23ec1f13e 100644 --- a/include/hw/ssi/aspeed_smc.h +++ b/include/hw/ssi/aspeed_smc.h @@ -52,8 +52,8 @@ struct AspeedSMCState { SysBusDevice parent_obj; MemoryRegion mmio; + MemoryRegion mmio_flash_container; MemoryRegion mmio_flash; - MemoryRegion mmio_flash_alias; qemu_irq irq; diff --git a/hw/ssi/aspeed_smc.c b/hw/ssi/aspeed_smc.c index 1770985230b0..d4f03881ddf5 100644 --- a/hw/ssi/aspeed_smc.c +++ b/hw/ssi/aspeed_smc.c @@ -1218,14 +1218,17 @@ static void aspeed_smc_realize(DeviceState *dev, Error **errp) * window in which the flash modules are mapped. The size and * address depends on the SoC model and controller type. */ + memory_region_init(&s->mmio_flash_container, OBJECT(s), + TYPE_ASPEED_SMC ".container", + asc->flash_window_size); + sysbus_init_mmio(sbd, &s->mmio_flash_container); + memory_region_init_io(&s->mmio_flash, OBJECT(s), &aspeed_smc_flash_default_ops, s, TYPE_ASPEED_SMC ".flash", asc->flash_window_size); - memory_region_init_alias(&s->mmio_flash_alias, OBJECT(s), - TYPE_ASPEED_SMC ".flash", - &s->mmio_flash, 0, asc->flash_window_size); - sysbus_init_mmio(sbd, &s->mmio_flash_alias); + memory_region_add_subregion(&s->mmio_flash_container, 0x0, + &s->mmio_flash); /* * Let's create a sub memory region for each possible peripheral. All
Because AddressSpaces must not be sysbus-mapped, commit e9c568dbc225 ("hw/arm/aspeed: Do not sysbus-map mmio flash region directly, use alias") introduced an alias for the flash mmio region. Using a container is cleaner. Cc: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Cédric Le Goater <clg@kaod.org> --- include/hw/ssi/aspeed_smc.h | 2 +- hw/ssi/aspeed_smc.c | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-)