
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