[PATCH linux dev-5.10 2/2] soc: aspeed: Re-enable XDMA on AST2600

Eddie James eajames at linux.ibm.com
Wed Jun 30 11:29:29 AEST 2021


On Tue, 2021-06-29 at 17:05 +0930, Joel Stanley wrote:
> Recent builds of the vendor u-boot tree disable features of the
> BMC that may allow unwanted access if not correctly configured. This
> includes the PCIe DMA (XDMA) functionality.
> 
> The bit to "un-disable" it is in the SCU. It does not appear to
> matter
> when it is cleared, as long as it is cleared before attempting a
> transfer.

Thanks!

Reviewed-by: Eddie James <eajames at linux.ibm.com>

> 
> Signed-off-by: Joel Stanley <joel at jms.id.au>
> ---
>  drivers/soc/aspeed/aspeed-xdma.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/soc/aspeed/aspeed-xdma.c
> b/drivers/soc/aspeed/aspeed-xdma.c
> index e6b4744bda64..48cfe30c90ad 100644
> --- a/drivers/soc/aspeed/aspeed-xdma.c
> +++ b/drivers/soc/aspeed/aspeed-xdma.c
> @@ -34,6 +34,9 @@
>  #define SCU_AST2600_MISC_CTRL			0x0c0
>  #define  SCU_AST2600_MISC_CTRL_XDMA_BMC		 BIT(8)
>  
> +#define SCU_AST2600_DEBUG_CTRL			0x0c8
> +#define  DEBUG_CTRL_XDMA_DISABLE	 	 BIT(2)
> +
>  #define SCU_AST2500_PCIE_CONF			0x180
>  #define SCU_AST2600_PCIE_CONF			0xc20
>  #define  SCU_PCIE_CONF_VGA_EN			 BIT(0)
> @@ -831,10 +834,15 @@ static int aspeed_xdma_init_scu(struct
> aspeed_xdma *ctx, struct device *dev)
>  		regmap_update_bits(scu, ctx->chip->scu_pcie_conf, bmc |
> vga,
>  				   selection);
>  
> -		if (ctx->chip->scu_misc_ctrl)
> +		if (ctx->chip->scu_misc_ctrl) {
>  			regmap_update_bits(scu, ctx->chip-
> >scu_misc_ctrl,
>  					   SCU_AST2600_MISC_CTRL_XDMA_B
> MC,
>  					   SCU_AST2600_MISC_CTRL_XDMA_B
> MC);
> +
> +			/* Allow XDMA to be used on AST2600 */
> +			regmap_update_bits(scu, SCU_AST2600_DEBUG_CTRL,
> +					   DEBUG_CTRL_XDMA_DISABLE, 0);
> +		}
>  	} else {
>  		dev_warn(dev, "Unable to configure PCIe: %ld;
> continuing.\n",
>  			 PTR_ERR(scu));



More information about the openbmc mailing list