[U-Boot] [PATCH] mmc: mxsmmc: Fix operation with DMA

Marek Vasut marek.vasut at gmail.com
Mon Apr 2 19:54:25 CEST 2012


Dear Fabio Estevam,

> Initialize the DMA controller so that the following errors are fixed:
> 
> U-Boot 2012.04-rc1-00001-g037cbfd (Apr 02 2012 - 10:57:48)
> 
> Freescale i.MX28 family at 454 MHz
> DRAM:  128 MiB
> MMC:   MXS MMC: 0
> MMC0: DMA transfer failed
> MMC0: DMA transfer failed
> MMC0: DMA transfer failed
> MMC0: DMA transfer failed
> MMC init failed
> 
> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> ---
>  drivers/mmc/mxsmmc.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/mmc/mxsmmc.c b/drivers/mmc/mxsmmc.c
> index e8bad9d..57f9953 100644
> --- a/drivers/mmc/mxsmmc.c
> +++ b/drivers/mmc/mxsmmc.c
> @@ -303,6 +303,9 @@ int mxsmmc_initialize(bd_t *bis, int id, int
> (*wp)(int)) return -ENOMEM;
>  	}
> 
> +	/* Init the DMA controller. */
> +	mxs_dma_init();
> +
>  	priv->desc = mxs_dma_desc_alloc();
>  	if (!priv->desc) {
>  		free(priv);

AAAAAH!

You don't have NAND over there, that explains it :)

Now, this is a problem on m28evk, because this init happens twice there. Can you 
possibly pull this somewhere into arch_cpu_init() or similar call?


Best regards,
Marek Vasut


More information about the U-Boot mailing list