[U-Boot] [PATCH] mmc: seperate block number into small parts for multi-write cmd

Reinhard Meyer u-boot at emk-elektronik.de
Mon Sep 6 13:50:49 CEST 2010


Lei Wen schrieb:
>>>> Where does this limitation supposedly come from?
>>> This limitation comes from the SD/MMC sepc. You could find one and
>>> check the 0x6 offset register(BLOCK COUNT REGISTER).
>> This might refer to certain HOST controllers, but not to Cards!
> 
> You are right, this comes from HOST, not card. But since the host spec
> define so, then is there any host don't follow the sepc? ...

Any that use bit banging, or SPI, and at least: ATMELs MCI.
Probably any number of others that do not copy Intel/PC centered
register structures...

If you had read my first mail on this, there was an example of a 98304
blocks transfer...

> 
>> And you still do not explain why the buffer size shall be limited to 512KB?
> 
> The 512 KB comes from the SDMA boundary, and this value is also adopt by Linux.
> You could refer to drivers/mmc/host/sdhci.c in Linux code.

What hardware, again? sdhci.c? SDMA?

You are trying to change a GENERIC function of U-Boot here to suit a
particular hardware, not a particular hardware driver.

As such, changes should be generic/configurable and not suited to a specific
hardware.

If a specific hardware needs the generic part to obey some limitations, those
limitations should be configurable, like maybe:

#define CONFIG_SYS_MMC_BLOCKLIMIT 65535
#define CONFIG_SYS_MMC_BUFFERLIMIT (512<<10)

Or maybe the splitting/chunking could be resolved in the hardware driver?

Also a clarification of those reasons in the patch comment would be appropriate.

That's my 2 cents for this. Let the community decide if there shall be a general
limitation be put into the generic part...

Best Regards,
Reinhard



More information about the U-Boot mailing list