u-boot mmc read_block限制

时间:2016-05-25 07:30:48

标签: embedded u-boot

我正在尝试从U-Boot SPL的全局变量(struct)中复制MMC / SD卡中的文件,该文件位于OCRAM中。到目前为止,我正在尝试使用

mmc->block_dev.block_read(0, file_sector, 4, &my_struct);

由于复制到DRAM(DDR3 / DDR4)有效(如果我用RAM中的地址替换&my_struct,调用成功,我可以正确地从RAM中读取文件),我确信我的文件是位于行业file_sector的开头。

但是,使用此代码,我得到:

ERROR: v7_dcache_inval_range - start address is not aligned - 0x100082f4
ERROR: v7_dcache_inval_range - start address is not aligned - 0x10008af4

是否有一些要求/限制我应该注意block_read目的地的位置?

1 个答案:

答案 0 :(得分:1)

因此,部分答案就是它在错误消息中所说的内容。在哪里' mystruct'是,不是缓存对齐所以我们所做的刷新是不有效的。您应该使用ALLOC_CACHE_ALIGN_BUFFER宏并将其作为@LP复制到字符缓冲区中。