[U-Boot] [PATCH 2/2] fsl_esdhc: Remove cache snooping for i.MX

Stefano Babic
2012-08-13T14:24:01Z

On 13/08/2012 16:18, Beno?t Th?baudeau wrote:
> The cache snooping feature of Freescale's eSDHC IP is not available on i.MX, so
> disable it globally for this architecture. This avoids setting no_snoop for all
> i.MX boards, and it prevents setting a reserved bit of a reserved register if
> fsl_esdhc_mmc_init() were used for an i.MX board.
>
> Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> Cc: Andy Fleming <afleming@gmail.com>
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Kim Phillips <kim.phillips@freescale.com>
> ---
> .../board/efikamx/efikamx.c | 4 ++--
> .../board/esg/ima3-mx53/ima3-mx53.c | 2 +-
> .../board/freescale/mx51evk/mx51evk.c | 4 ++--
> .../board/freescale/mx53ard/mx53ard.c | 4 ++--
> .../board/freescale/mx53evk/mx53evk.c | 4 ++--
> .../board/freescale/mx53loco/mx53loco.c | 4 ++--
> .../board/freescale/mx53smd/mx53smd.c | 2 +-
> .../board/freescale/mx6qarm2/mx6qarm2.c | 4 ++--
> .../board/freescale/mx6qsabrelite/mx6qsabrelite.c | 4 ++--
> .../board/ttcontrol/vision2/vision2.c | 2 +-
> .../drivers/mmc/fsl_esdhc.c | 2 ++
> .../include/fsl_esdhc.h | 3 +++
> 12 files changed, 22 insertions(+), 17 deletions(-)
>

Hi Beno?t,

> diff --git u-boot-4d3c95f.orig/drivers/mmc/fsl_esdhc.c u-boot-4d3c95f/drivers/mmc/fsl_esdhc.c
> index b6c969d..efdc6be 100644
> --- u-boot-4d3c95f.orig/drivers/mmc/fsl_esdhc.c
> +++ u-boot-4d3c95f/drivers/mmc/fsl_esdhc.c
> @@ -479,9 +479,11 @@ static int esdhc_init(struct mmc *mmc)
> while ((esdhc_read32(&regs->sysctl) & SYSCTL_RSTA) && --timeout)
> udelay(1000);
>
> +#ifndef ARCH_IMX
> /* Enable cache snooping */
> if (cfg && !cfg->no_snoop)
> esdhc_write32(&regs->scr, 0x00000040);
> +#endif
>
> esdhc_write32(&regs->sysctl, SYSCTL_HCKEN | SYSCTL_IPGEN);
>
> diff --git u-boot-4d3c95f.orig/include/fsl_esdhc.h u-boot-4d3c95f/include/fsl_esdhc.h
> index 0e26558..44f9f06 100644
> --- u-boot-4d3c95f.orig/include/fsl_esdhc.h
> +++ u-boot-4d3c95f/include/fsl_esdhc.h
> @@ -26,6 +26,7 @@
> #ifndef __FSL_ESDHC_H__
> #define __FSL_ESDHC_H__
>
> +#include <config.h>
> #include <asm/errno.h>
> #include <asm/byteorder.h>
>
> @@ -167,7 +168,9 @@
>
> struct fsl_esdhc_cfg {
> u32 esdhc_base;
> +#ifndef ARCH_IMX
> u32 no_snoop;
> +#endif
> };

Why don't you get rid of no_snoop at all ? Using ARCH_IMX is not needed
anymore.

Best regards,
Stefano Babic

--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================