发现UBL1.50的4-bit ECC校验功能是失败的,虽然自己调试成功了
请问Ti有没有官发的新版本UBL代码,修复了ECC校验功能?还是想用官发的版本
谢谢
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.
Chris,
恩,在DM368 DM365上均验证过,UBL1.50版本,4bit ECC校验失效 RBL的4bit ECC是OK的
当有bit error时,ECC被激活,但是从
corrState = (AEMIF->NANDFSR & DEVICE_EMIF_NANDFSR_ECC_STATE_MASK) >> DEVICE_EMIF_NANDFSR_ECC_STATE_SHIFT;
if ((corrState == 1) || (corrState > 3))
{
temp = AEMIF->NANDERRADD1;
return E_FAIL;
}
退出,返回值0x5, 导致correction没有被执行。
代码中似乎缺少文档中提到的Step.9 Clear any previous address calculation by doing a dummy read of an error address register
通过增加deley能使其起OK
不过还有些代码似乎和SPRUF11C文档P28的描述不一致,不敢乱改
不知是否有新版本的UBL
Frey,
最新的ubl是在DM36x IPNC v5.1软件包里面。
对于ECC部分的代码修正,你还可以DM36x参考勘误表里面的Bootloader: RBL Code 4bit ECC Mode Limitation相关信息。
Frey.Xia 说:再请教一个问题:通过串口想让UBL在IRAM中运行,而不是烧写到Nandflash中(破坏现场)
是否是使用slh命令 (目前是用过sfh来烧录)
slh_<DEVICENAME>.exe -load2IRAM <UBL binary file>运行后RBL会自动跳转到UBL吗
从下面文档里面对该命令的解释,应该是可以完成你说的功能。
http://processors.wiki.ti.com/index.php/Serial_Boot_and_Flash_Loading_Utility