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

Benoît Thébaudeau benoit.thebaudeau at advansee.com
Mon Aug 13 16:39:28 CEST 2012


Hi Stefano,

On 08/13/2012 16:24, Stefano Babic wrote:
> 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 at advansee.com>
> > Cc: Andy Fleming <afleming at gmail.com>
> > Cc: Stefano Babic <sbabic at denx.de>
> > Cc: Kim Phillips <kim.phillips at 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.

Because I didn't know if disabling cache snooping could be a useful option or
not for architectures other than i.MX, so I preferred to leave it just in case,
even if it seems to be unused.

But if you are certain that disabling cache snooping can not be useful for
architectures other than i.MX (now or in the future, for boards in or out of
tree), I can completely remove no_snoop. Just tell me.

Perhaps you have a rule such as "remove any stuff that is unused in mainstream".

Best regards,
Benoît


More information about the U-Boot mailing list