[PATCH qemu 17/38] aspeed/smc: unfold the AspeedSMCController array

Andrew Jeffery andrew at aj.id.au
Fri Nov 25 15:31:42 AEDT 2016


On Fri, 2016-11-18 at 15:21 +0100, Cédric Le Goater wrote:
> This is getting difficult to read. Also add a 'has_dma' field for
> each
> controller type.
> 
> Signed-off-by: Cédric Le Goater <clg at kaod.org>

Reviewed-by: Andrew Jeffery <andrew at aj.id.au>

> ---
>  hw/ssi/aspeed_smc.c         | 91
> ++++++++++++++++++++++++++++++++++++---------
>  include/hw/ssi/aspeed_smc.h |  1 +
>  2 files changed, 74 insertions(+), 18 deletions(-)
> 
> diff --git a/hw/ssi/aspeed_smc.c b/hw/ssi/aspeed_smc.c
> index eec087199a22..8e7e3bd9e335 100644
> --- a/hw/ssi/aspeed_smc.c
> +++ b/hw/ssi/aspeed_smc.c
> @@ -184,24 +184,79 @@ static const AspeedSegments
> aspeed_segments_ast2500_spi2[] = {
>  };
>  
>  static const AspeedSMCController controllers[] = {
> -    { "aspeed.smc.smc", R_CONF, R_CE_CTRL, R_CTRL0, R_TIMINGS,
> -      CONF_ENABLE_W0, 5, aspeed_segments_legacy,
> -      ASPEED_SOC_SMC_FLASH_BASE, 0x6000000 },
> -    { "aspeed.smc.fmc", R_CONF, R_CE_CTRL, R_CTRL0, R_TIMINGS,
> -      CONF_ENABLE_W0, 5, aspeed_segments_fmc,
> -      ASPEED_SOC_FMC_FLASH_BASE, 0x10000000 },
> -    { "aspeed.smc.spi", R_SPI_CONF, 0xff, R_SPI_CTRL0,
> R_SPI_TIMINGS,
> -      SPI_CONF_ENABLE_W0, 1, aspeed_segments_spi,
> -      ASPEED_SOC_SPI_FLASH_BASE, 0x10000000 },
> -    { "aspeed.smc.ast2500-fmc", R_CONF, R_CE_CTRL, R_CTRL0,
> R_TIMINGS,
> -      CONF_ENABLE_W0, 3, aspeed_segments_ast2500_fmc,
> -      ASPEED_SOC_FMC_FLASH_BASE, 0x10000000 },
> -    { "aspeed.smc.ast2500-spi1", R_CONF, R_CE_CTRL, R_CTRL0,
> R_TIMINGS,
> -      CONF_ENABLE_W0, 2, aspeed_segments_ast2500_spi1,
> -      ASPEED_SOC_SPI_FLASH_BASE, 0x8000000 },
> -    { "aspeed.smc.ast2500-spi2", R_CONF, R_CE_CTRL, R_CTRL0,
> R_TIMINGS,
> -      CONF_ENABLE_W0, 2, aspeed_segments_ast2500_spi2,
> -      ASPEED_SOC_SPI2_FLASH_BASE, 0x8000000 },
> +    {
> +        .name              = "aspeed.smc.smc",
> +        .r_conf            = R_CONF,
> +        .r_ce_ctrl         = R_CE_CTRL,
> +        .r_ctrl0           = R_CTRL0,
> +        .r_timings         = R_TIMINGS,
> +        .conf_enable_w0    = CONF_ENABLE_W0,
> +        .max_slaves        = 5,
> +        .segments          = aspeed_segments_legacy,
> +        .flash_window_base = ASPEED_SOC_SMC_FLASH_BASE,
> +        .flash_window_size = 0x6000000,
> +        .has_dma           = false,
> +    }, {
> +        .name              = "aspeed.smc.fmc",
> +        .r_conf            = R_CONF,
> +        .r_ce_ctrl         = R_CE_CTRL,
> +        .r_ctrl0           = R_CTRL0,
> +        .r_timings         = R_TIMINGS,
> +        .conf_enable_w0    = CONF_ENABLE_W0,
> +        .max_slaves        = 5,
> +        .segments          = aspeed_segments_fmc,
> +        .flash_window_base = ASPEED_SOC_FMC_FLASH_BASE,
> +        .flash_window_size = 0x10000000,
> +        .has_dma           = true,
> +    }, {
> +        .name              = "aspeed.smc.spi",
> +        .r_conf            = R_SPI_CONF,
> +        .r_ce_ctrl         = 0xff,
> +        .r_ctrl0           = R_SPI_CTRL0,
> +        .r_timings         = R_SPI_TIMINGS,
> +        .conf_enable_w0    = SPI_CONF_ENABLE_W0,
> +        .max_slaves        = 1,
> +        .segments          = aspeed_segments_spi,
> +        .flash_window_base = ASPEED_SOC_SPI_FLASH_BASE,
> +        .flash_window_size = 0x10000000,
> +        .has_dma           = false,
> +    }, {
> +        .name              = "aspeed.smc.ast2500-fmc",
> +        .r_conf            = R_CONF,
> +        .r_ce_ctrl         = R_CE_CTRL,
> +        .r_ctrl0           = R_CTRL0,
> +        .r_timings         = R_TIMINGS,
> +        .conf_enable_w0    = CONF_ENABLE_W0,
> +        .max_slaves        = 3,
> +        .segments          = aspeed_segments_ast2500_fmc,
> +        .flash_window_base = ASPEED_SOC_FMC_FLASH_BASE,
> +        .flash_window_size = 0x10000000,
> +        .has_dma           = true,
> +    }, {
> +        .name              = "aspeed.smc.ast2500-spi1",
> +        .r_conf            = R_CONF,
> +        .r_ce_ctrl         = R_CE_CTRL,
> +        .r_ctrl0           = R_CTRL0,
> +        .r_timings         = R_TIMINGS,
> +        .conf_enable_w0    = CONF_ENABLE_W0,
> +        .max_slaves        = 2,
> +        .segments          = aspeed_segments_ast2500_spi1,
> +        .flash_window_base = ASPEED_SOC_SPI_FLASH_BASE,
> +        .flash_window_size = 0x8000000,
> +        .has_dma           = false,
> +    }, {
> +        .name              = "aspeed.smc.ast2500-spi2",
> +        .r_conf            = R_CONF,
> +        .r_ce_ctrl         = R_CE_CTRL,
> +        .r_ctrl0           = R_CTRL0,
> +        .r_timings         = R_TIMINGS,
> +        .conf_enable_w0    = CONF_ENABLE_W0,
> +        .max_slaves        = 2,
> +        .segments          = aspeed_segments_ast2500_spi2,
> +        .flash_window_base = ASPEED_SOC_SPI2_FLASH_BASE,
> +        .flash_window_size = 0x8000000,
> +        .has_dma           = false,
> +    },
>  };
>  
>  /*
> diff --git a/include/hw/ssi/aspeed_smc.h
> b/include/hw/ssi/aspeed_smc.h
> index c64954f6103f..39ee601940e8 100644
> --- a/include/hw/ssi/aspeed_smc.h
> +++ b/include/hw/ssi/aspeed_smc.h
> @@ -44,6 +44,7 @@ typedef struct AspeedSMCController {
>      const AspeedSegments *segments;
>      hwaddr flash_window_base;
>      uint32_t flash_window_size;
> +    bool has_dma;
>  } AspeedSMCController;
>  
>  typedef struct AspeedSMCFlash {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: This is a digitally signed message part
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20161125/ae41bbef/attachment.sig>


More information about the openbmc mailing list