页次: 1
另外,这段出错的数据,应该是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
最近尝试自己编一个SPL代码给F133用,遇到一个奇怪的问题,就是SPL从SD卡加载TOC镜像的时候校验出错。
当我尝试修改代码忽略掉校验之后,其能够正常进入OPENSBI和U-BOOT里。
所以不知道这个校验出错的影响是什么。
然后我用dd命令读取SD卡和TOC镜像对比,没有差异,说明SD卡写入数据时正确的。
最后我在SPL里将从SD卡加载的数据全部打印出来,通过与TOC镜像对比,
发现SPL加载的数据出错在TOC的起始扇区32800往后偏移17个扇区,也就是第8.5K的位置,此扇区512字节就是错的。
而且整个TOC镜像加载中,只错了这一个扇区512字节的数据。
很奇怪为什么会出现这个问题,希望大佬指点。
想编一个F133的SPL出来,代码基于github上的: https://github.com/smaeul/sun20i_d1_spl
但是找到的是基于D1的SPL,目前发现是死在了初始化DRAM的过程中。运行日志如下:
[158]HELLO! BOOT0 is starting!
[160]BOOT0 commit : 771192d
[163]set pll start
[165]periph0 has been enabled
[168]set pll end
[169]board init ok
[171]DRAM only have internal ZQ!!
[174]get_pmu_exist() = -1
[177]ddr_efuse_type: 0xa
[180]ZQ calibration error,check external 240 ohm resistor.
[185][ERROR DEBUG] auto scan dram rank&width fail !
发现代码中有一段初始化DRAM的参数,这里不知道F133应该对应什么参数。
希望大佬告知一下。
D1的初始化DRAM的参数如下:
{
0x00000318,
0x00000003,
0x007b7bfb,
0x00000001,
0x000010d2,
0x00000000,
0x00001c70,
0x00000042,
0x00000018,
0x00000000,
0x004a2195,
0x02423190,
0x0008b061,
0xb4787896,
0x00000000,
0x48484848,
0x00000048,
0x1620121e,
0x00000000,
0x00000000,
0x00000000,
0x00870000,
0x00000024,
0x34050100,
},
页次: 1