[U-Boot] [PATCH v4 01/18] mmc: show hardware partition sizes in mmcinfo output

Pantelis Antoniou panto at antoniou-consulting.com
Thu Jan 22 21:48:43 CET 2015


Hi Stephen,

> On Jan 22, 2015, at 21:59 , Stephen Warren <swarren at wwwdotorg.org> wrote:
> 
> On 01/22/2015 12:45 PM, Pantelis Antoniou wrote:
>> Hi Stephen,
>> 
>>> On Jan 22, 2015, at 20:42 , Stephen Warren <swarren at wwwdotorg.org> wrote:
>>> 
>>> On 12/23/2014 02:50 AM, Diego Santa Cruz wrote:
>>>> There is currently no command that will provide an overview of the hardware
>>>> partitions present on an eMMC device, one has to switch to every partition
>>>> via "mmc dev" and run mmcinfo for each to get the partition's capacity.
>>>> This commit adds a few lines of output to mmcinfo with the sizes of the
>>>> present partitions, like this:
>>>> 
>>>> Device: OMAP SD/MMC
>>>> Manufacturer ID: fe
>>>> OEM: 14e
>>>> Name: MMC16
>>>> Tran Speed: 52000000
>>>> Rd Block Len: 512
>>>> MMC version 4.41
>>>> High Capacity: Yes
>>>> Capacity: 13.8 GiB
>>>> Bus Width: 4-bit
>>>> User Capacity: 13.8 GiB
>>>> Boot Capacity: 16 MiB
>>>> RPMB Capacity: 128 KiB
>>>> GP1 Capacity: 64 MiB
>>>> GP2 Capacity: 64 MiB
>>> 
>>> I have an MMC device which has at least boot HW partitions, yet with the very latest code in u-boot.git, I don't see the additional lines mentioned above. My HW partitions are still working fine, since I can select a boot partition and mmcinfo shows the correct "Capacity" for it:
>>> 
>>> Any ideas why?
>>> 
>>> Tegra124 (Jetson TK1) # mmc dev 0
>>> switch to partitions #0, OK
>>> mmc0(part 0) is current device
>>> Tegra124 (Jetson TK1) # mmcinfo
>>> Device: Tegra SD/MMC
>>> Manufacturer ID: 45
>>> OEM: 100
>>> Name: SEM16
>>> Tran Speed: 52000000
>>> Rd Block Len: 512
>>> MMC version 4.5
>>> High Capacity: Yes
>>> Capacity: 14.7 GiB <<<< Sounds right for a 16GB device with partitions
>>> Bus Width: 8-bit
>>> Erase Group Size: 512 KiB
>>> <<<< No HW partition information is printed here
>>> 
>>> Tegra124 (Jetson TK1) # mmc dev 0 1 <<<< select "boot0" HW partition
>>> switch to partitions #1, OK
>>> mmc0(part 1) is current device
>>> Tegra124 (Jetson TK1) # mmcinfo
>>> Device: Tegra SD/MMC
>>> Manufacturer ID: 45
>>> OEM: 100
>>> Name: SEM16
>>> Tran Speed: 52000000
>>> Rd Block Len: 512
>>> MMC version 4.5
>>> High Capacity: Yes
>>> Capacity: 4 MiB <<<< "boot0" partition size correctly reported
>>> Bus Width: 8-bit
>>> Erase Group Size: 512 KiB
>> 
>> That is really weird; are you sure you got the latest version of u-boot
>> containing those patches?
>> 
>>>       if (!IS_SD(mmc) && mmc->version >= MMC_VERSION_4_41) {
> 
> Ah, my device is MMC 4.5, and the version numbers aren't monotonic:
> 
> #define MMC_VERSION_4_41	(MMC_VERSION_MMC | 0x429)
> #define MMC_VERSION_4_5		(MMC_VERSION_MMC | 0x405)
> 

Gah. That’s bad. I believe that’s a bug.

> Should that be 0x450, or do we need some more complex version comparison logic?
> 

Frankly I hope not. 0x450 should be used. But that would require changing all the
others version definitions cause for instance MMC_VERSION_4_1 = 0x401.

> FWIW, if I hack the test you quoted to always pass, then the data that's printed looks plausible. At the very least, the boot capacity agrees with Linux.

Thanks for the report; I’ll get it fixed.

Regards

— Pantelis



More information about the U-Boot mailing list