qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-arm] [PATCH 5/6] aspeed: create mapping regions for the maximu


From: Andrew Jeffery
Subject: Re: [Qemu-arm] [PATCH 5/6] aspeed: create mapping regions for the maximum number of slaves
Date: Wed, 05 Oct 2016 10:06:56 +1030

On Tue, 2016-09-27 at 13:57 +0200, Cédric Le Goater wrote:
> The SMC controller on the Aspeed SoC has a set of registers to
> configure the mapping of each flash module in the SoC address
> space. These mapping windows are configurable even though no SPI slave
> is attached to the controller.
> 
> Also rewrite a bit the comments in the code on this topic.
> 
> Signed-off-by: Cédric Le Goater <address@hidden>

Reviewed-by: Andrew Jeffery <address@hidden>

> ---
>  hw/ssi/aspeed_smc.c | 16 +++++++++++++---
>  1 file changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/ssi/aspeed_smc.c b/hw/ssi/aspeed_smc.c
> index 21943f4e5dfa..ecf39ccfde0e 100644
> --- a/hw/ssi/aspeed_smc.c
> +++ b/hw/ssi/aspeed_smc.c
> @@ -417,12 +417,15 @@ static void aspeed_smc_realize(DeviceState *dev, Error 
> **errp)
>  
>      aspeed_smc_reset(dev);
>  
> +    /* The memory region for the controller registers */
>      memory_region_init_io(&s->mmio, OBJECT(s), &aspeed_smc_ops, s,
>                            s->ctrl->name, ASPEED_SMC_R_MAX * 4);
>      sysbus_init_mmio(sbd, &s->mmio);
>  
>      /*
> -     * Memory region where flash modules are remapped
> +     * The container memory region representing the address space
> +     * window in which the flash modules are mapped. The size and
> +     * address depends on the SoC model and controller type.
>       */
>      snprintf(name, sizeof(name), "%s.flash", s->ctrl->name);
>  
> @@ -431,9 +434,16 @@ static void aspeed_smc_realize(DeviceState *dev, Error 
> **errp)
>                            s->ctrl->flash_window_size);
>      sysbus_init_mmio(sbd, &s->mmio_flash);
>  
> -    s->flashes = g_new0(AspeedSMCFlash, s->num_cs);
> +    s->flashes = g_new0(AspeedSMCFlash, s->ctrl->max_slaves);
>  
> -    for (i = 0; i < s->num_cs; ++i) {
> +    /*
> +     * Let's create a sub memory region for each possible slave. All
> +     * have a configurable memory segment in the overall flash mapping
> +     * window of the controller but, there is not necessarily a flash
> +     * module behind to handle the memory accesses. This depends on
> +     * the board configuration.
> +     */
> +    for (i = 0; i < s->ctrl->max_slaves; ++i) {
>          AspeedSMCFlash *fl = &s->flashes[i];
>  
>          snprintf(name, sizeof(name), "%s.%d", s->ctrl->name, i);

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]