[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