[U-Boot] [RFC] mmc: Properly determine maximum supported bus width

Stephen Warren swarren at wwwdotorg.org
Wed Nov 28 00:40:17 CET 2012


On 11/26/2012 04:33 PM, Fleming Andy-AFLEMING wrote:
> Yes, I'm processing my queue today.

This patch didn't show up in the pull request you just sent.

> On Nov 26, 2012, at 17:27, "Stephen Warren" <swarren at wwwdotorg.org> wrote:
> 
>> On 10/31/2012 11:02 PM, Andy Fleming wrote:
>>> At some point, a confusion arose about the use of the bit
>>> definitions in host_caps for bus widths, and the value
>>> in ext_csd. By coincidence, a simple shift could convert
>>> between one and the other:
>>>
>>> MMC_MODE_1BIT = 0, EXT_CSD_BUS_WIDTH_1 = 0
>>> MMC_MODE_4BIT = 0x100, EXT_CSD_BUS_WIDTH_4 = 1
>>> MMC_MODE_8BIT = 0x200, EXT_CSD_BUS_WIDTH_8 = 2
>>>
>>> However, as host_caps is a bitmask of supported things,
>>> there is not, in fact, a one-to-one correspondence. host_caps
>>> is capable of containing MODE_4BIT | MODE_8BIT, so nonsensical
>>> things were happening where we would try to set the bus width
>>> to 12.
>>>
>>> The new code clarifies the very different namespaces:
>>>
>>> host_caps/card_caps = bitmask (MMC_MODE_*)
>>> ext CSD fields are just an index (EXT_CSD_BUS_WIDTH_*)
>>> mmc->bus_width integer number of bits (1, 4, 8)
>>>
>>> We create arrays to map between the namespaces, like in Linux.
>>
>> Andy, is this patch likely to get merged soon to u-boot.git branch
>> master? Unfortunately, some Tegra patches that ideally rely on this
>> patch being present have already been applied and merged into
>> u-boot-arm.git branch master.
>>
> 



More information about the U-Boot mailing list