最近尝试自己编一个SPL代码给F133用,遇到一个奇怪的问题,就是SPL从SD卡加载TOC镜像的时候校验出错。
当我尝试修改代码忽略掉校验之后,其能够正常进入OPENSBI和U-BOOT里。
所以不知道这个校验出错的影响是什么。
然后我用dd命令读取SD卡和TOC镜像对比,没有差异,说明SD卡写入数据时正确的。
最后我在SPL里将从SD卡加载的数据全部打印出来,通过与TOC镜像对比,
发现SPL加载的数据出错在TOC的起始扇区32800往后偏移17个扇区,也就是第8.5K的位置,此扇区512字节就是错的。
而且整个TOC镜像加载中,只错了这一个扇区512字节的数据。
很奇怪为什么会出现这个问题,希望大佬指点。
离线
另外,这段出错的数据,应该是SBI的部分。因为我的TOC.cfg文件按如下排列的:
[opensbi]
file = fw_dynamic.bin
addr = 0x40000000
[dtb]
file = u-boot.dtb
addr = 0x42000000
[u-boot]
file = u-boot.bin
addr = 0x43000000
离线