Hi Jaehoon, > On 10/23/2012 06:50 PM, Marek Vasut wrote: > > Dear Huang Changming-R66093, > > > >> Best Regards > >> Jerry Huang > >> > >>> -----Original Message----- > >>> From: Marek Vasut [mailto:ma...@denx.de] > >>> Sent: Tuesday, October 23, 2012 3:24 PM > >>> To: Huang Changming-R66093 > >>> Cc: u-boot@lists.denx.de; Andy Fleming > >>> Subject: Re: [PATCH] powerpc/esdhc: force the bus width to 4bit > >>> > >>> Dear chang-ming.hu...@freescale.com, > >>> > >>>> From: Jerry Huang <chang-ming.hu...@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);
Hmm... looks like it is code done by me :-) So little explanation shall be given. This code is necessary for some targets (like Samsung's Goni) which can only support 4 bit MMC mode. > >> 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. > This problem is MMC subsystem's bug. > I think good that will modify the code in mmc.c. > If caps is set to MMC_MODE_4BIT | MMC_MODE_8BIT, > we can see the 12bit support with using "mmcinfo" command > The mmc_set_bus_width(mmc, 4 * width) in conjunction to above code causes the problem. I agree, that this code shall be refactored. Lei, what do you think? > Best Regards, > Jaehoon Chung > > >> > >> 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 > > _______________________________________________ > > U-Boot mailing list > > U-Boot@lists.denx.de > > http://lists.denx.de/mailman/listinfo/u-boot > > > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot -- Best regards, Lukasz Majewski Samsung Poland R&D Center | Linux Platform Group _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot