[U-Boot] MMC and buffer alignment question

Markus Niebel
2014-03-19T14:16:29Z

Hello Pantelis,

short question to the usage of the mmc command (and also the mmc driver API): is it intended that mmc read / write may fail when the supplied address in RAM is not aligned?

ARMV7 will give output like this:

U-Boot > mmc read 12000002 44 44

MMC read: dev # 0, block # 68, count 68 ... INFO: 24994 of 25000 loops left to DAT0 timeout
ERROR: v7_dcache_inval_range - start address is not aligned - 0x12000002
ERROR: v7_dcache_inval_range - stop address is not aligned - 0x12008802
68 blocks read: OK

On my platform (i.MX6 / Cortex A9) the alignment needed is 32 Byte.

Special commands inside the mmc drivers and in env_mmc implement the alignment magic. Shouldn't the mmc do the magic (and if neccesarry provide help using temp buffers if needed) so that all users outside can read / write without caring for special cases?

Markus