Allen 您好:
我们在开发6657 nand boot 存在以下问题:
附件是在TI外文论坛下载的.dat文件,将此文件烧写到NAND中,上电,按复位键后可以成功boot
但是问题是我们现在不太清楚这个.dat文件时如何生成的,麻烦您看一下这个文件,提供以下生成的方法
(目前实验结果boottable烧写到nand中boot不成功)
e2e.ti.com/.../240145.aspx 此链接为先前实验参考的帖子
多谢~
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Allen 您好:
我们在开发6657 nand boot 存在以下问题:
附件是在TI外文论坛下载的.dat文件,将此文件烧写到NAND中,上电,按复位键后可以成功boot
但是问题是我们现在不太清楚这个.dat文件时如何生成的,麻烦您看一下这个文件,提供以下生成的方法
(目前实验结果boottable烧写到nand中boot不成功)
e2e.ti.com/.../240145.aspx 此链接为先前实验参考的帖子
多谢~
这个文件只是save出来的DDR memory,实际上你做的时候是把这段数据load到DDR里,然后把里面的boot table拷贝到nand里面
boot tale是由hex6x生成的,需要注意的是你需要转换字节序
以这个文件举例,有效的字段只有
1651 1 80000000 0 21000 <---CCS里把数据load到DDR3的头,跟boot没什么关系
0x00000081 <---boot入口地址,0x00810000注意字节序
0x00400000 <---第一段的长度0x40
0x00000081 <---第一段的地址0x00810000
0xA2280099 <---第一段的数据
0x91680088
0x00A80101
0x40E80100
0x02260108
0x08280181
0x40E80180
0x3626018C
0x0226020C
0xA1200001
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00010000 <---第二段的长度0x1
0x02010081 <---第二段的地址0x00810102
0x00120000 <---第二段的数据0x12
0x00020000 <---第三段的长度0x2
0x02100081 <---第三段的地址
0x34120000 <---第三段的数据
0x00000000 <---boot table 结束
后面的都是无效的填充数据
你可以连上JTAG看一看boot 不起来的时候boot table是否从NAND里拷贝到了对应的地方,是否拷贝了正确的值,与正确boot的情况对比看看
我不认为填充的部分会有影响,你说的这个现象我无法理解,只能先从boot table的部分找答案
肯定没有boot configuration table
不过我看了一下数据是528word,那么应该是带有OOB信息,我觉得原因应该是你改了数据之后,nand的校验就不对了,导致RBL认为nand读取数据有问题
对ECC校验这一块我不太熟悉,MCSDK里是给IBL写的NandWriter,可能和6657不同;
这个可以看看nand ecc的资料验证一下看看