[U-Boot] [PATCH] powerpc/esdhc: force the bus width to 4bit
Marek Vasut
marex at denx.de
Tue Oct 23 11:50:49 CEST 2012
Dear Huang Changming-R66093,
> Best Regards
> Jerry Huang
>
> > -----Original Message-----
> > From: Marek Vasut [mailto:marex at denx.de]
> > Sent: Tuesday, October 23, 2012 3:24 PM
> > To: Huang Changming-R66093
> > Cc: u-boot at lists.denx.de; Andy Fleming
> > Subject: Re: [PATCH] powerpc/esdhc: force the bus width to 4bit
> >
> > Dear Chang-Ming.Huang at freescale.com,
> >
> > > From: Jerry Huang <Chang-Ming.Huang at freescale.com>
> > >
> > > For the current u-boot codes, only 4bit/1bit SD/SDHC bus width is
> >
> > support.
> >
> > > So for MMC card, we also support 4bit bus width, otherwiase, we will
> >
> > > get the 12bit bus width, which is not correct:
> > Andy ... can you please explain? I don't quite understand the problem, I
> > thought we had no problem supporting 8bit mmc (esp. if the controller
> > handles that for us mostly).
>
> Yes, the controller support 8bit MMC.
>
> FSL ESDHC driver set the host_caps = MMC_MODE_4BIT | MMC_MODE_8BIT;
> But, the current codes for MMC card has been changed to:
>
> } else {
> width = ((mmc->host_caps & MMC_MODE_MASK_WIDTH_BITS) >>
> MMC_MODE_WIDTH_BITS_SHIFT);
> for (; width >= 0; width--) {
> ....
>
> So for FSL ESDHC, the width = 3, after implement mmc_switch successfully,
> will set the bus to 4 * width. Therefore, I will get the 12bit (4 x 3) bus
> width.
>
> Below is the old codes (width = 2):
> } else {
> for (width = EXT_CSD_BUS_WIDTH_8; width >= 0; width--) {
[...]
Uh, so it's a bug in the MMC subsystem?
Best regards,
Marek Vasut
More information about the U-Boot
mailing list