[U-Boot] mmc erase fails from U-Boot command line

Michael Trimarchi
2015-12-04T17:06:23Z

Hi

On Dec 4, 2015 5:50 PM, "Eric Nelson" <eric@nelint.com> wrote:
>
> Hi all,
>
> On 12/04/2015 09:08 AM, Eric Nelson wrote:
> ...
> >
> > I think you're onto something.
> >
> > According to the i.MX35 reference manual, which I think was the origin
> > of this patch, the low four bits of the SYSCTL register of the SDHC5
> > 3 - SDCLKEN
> > 2 - PEREN
> > 1 - HCKEN
> > 0 - IPGEN
> >
> > See page 603 of
> > http://cache.freescale.com/files/dsp/doc/ref_manual/IMX35RM.pdf
> >
> > But in the i.MX6 reference manual, the low four bits are reserved and
> > say "Always write as 1".
> >
> > See pages 5679-5680 of
> > http://cache.freescale.com/files/32bit/doc/ref_manual/IMX6DQRM.pdf
> >
> > It appears that when this patch was ported from the Freescale version,
> > the test for "is_usdhc" was lost.
> >
> >
http://git.denx.de/?p=u-boot.git;a=commitdiff;h=7a5b80297bc6cef0c10e5f57ac0450678dc7bc5e
> >
> >
>

Happy if you fix down your problem

Michael

> Following up, this code is bugged on i.MX6:
>
>
http://git.denx.de/?p=u-boot.git;a=blob;f=drivers/mmc/fsl_esdhc.c;h=c5054d66bdcda029f0485958c87bd5154ccee591;hb=HEAD#l505
>
> As are a couple of other things in the driver, as seen by
> trying to compile without the constants for the low 4 bits:
>
> diff --git a/include/fsl_esdhc.h b/include/fsl_esdhc.h
> index aa1b4cf..a4b87ce 100644
> --- a/include/fsl_esdhc.h
> +++ b/include/fsl_esdhc.h
> @@ -25,10 +25,12 @@
> #define SYSCTL_INITA 0x08000000
> #define SYSCTL_TIMEOUT_MASK 0x000f0000
> #define SYSCTL_CLOCK_MASK 0x0000fff0
> +#if !defined(CONFIG_MX6)
> #define SYSCTL_CKEN 0x00000008
> #define SYSCTL_PEREN 0x00000004
> #define SYSCTL_HCKEN 0x00000002
> #define SYSCTL_IPGEN 0x00000001
> +#endif
> #define SYSCTL_RSTA 0x01000000
> #define SYSCTL_RSTC 0x02000000
> #define SYSCTL_RSTD 0x04000000
>