[U-Boot] [PATCH] fsl_esdhc: Add no-snoop config for default init

Stefano Babic
2012-08-11T17:25:26Z

On 11/08/2012 16:39, Beno?t Th?baudeau wrote:
> Hi Stefano,
>

Hi,

> fsl_esdhc_mmc_init() exists, so it should give access to all features.

This was left for compatibility with PowerPC SOCs.

> Moreover,
> it's shorter to #define a config option than to create custom fsl_esdhc_mmc init
> functions when only a single eSDHC instance is needed.

However, the number of CONFIG_ continues to increase, often not well
documented.

>
> Besides that, the cache snooping feature is not available on i.MX, which means
> that without CONFIG_SYS_FSL_ESDHC_NO_SNOOP or an equivalent, boards using
> fsl_esdhc_mmc_init() will make esdhc_init() access a reserved bit of a reserved
> register, which is not really recommended.

It should be masked by the i.MX code. You add
CONFIG_SYS_FSL_ESDHC_NO_SNOOP and this is set inside the board
configuration file. But this is not a board configuration option, rather
a SOC option. Then it should the initialization code of i.MX that should
hide this bit to the board itself.

Instead of this, I think it is better to change cpu_mmc_init() in
arch/arm/cpu/armv7/imx-common/cpu.c, setting the structure and fixing
the soop bit to 1, because i.MX has not this feature. Then all i.MX
boards using ESDHC have the no_snoop bit set.

> On i.MX, the patch could also be improved by not making this option available,
> but behaving as if it were set.

Right. It should not be configurable. We know that the i.MXs have no
snoop cabability.

Best regards,
Stefano

--
=====================================================================
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
=====================================================================