终于找到DM6446 RBL里的bug!

[复制链接]
 楼主| wowow 发表于 2013-6-17 19:33 | 显示全部楼层 |阅读模式
做的DM6446板子死活启动不了UBL,啃了几天RBL反汇编,最后终于找到原因。由于UBL必须小于14k,读到UBL信息后有个比较:
    5a4c:    e0000a9c     mul    r0, ip, sl
    5a50:    e3500b0e     cmp    r0, #14336    ; 0x3800
    5a54:    2a000031     bcs    0x5b20;
就这个跳转指令错了,怎么会用bcs?!bcs这是根据进位来判断是否跳转啊,刚好这个时候C=1,直接跳出来了。

比较了一下开发板上的DM6446里的RBL,相差非常大。找到相关指令:
    52f4:    e0000c96     mul    r0, r6, ip
    52f8:    e3500b0e     cmp    r0, #14336    ; 0x3800
    52fc:    8a000080     bhi    0x5504
这里用的bhi就是对的了。

这种问题真要搞死人啊!
有问题的批号是:
$7C-ICA06HW
TM320DM6446BZWT8
189
没问题的是:
$NA-06A15FW
TMS320DM6446AZWTA

谁知道这些批号第一行的含义?

评分

参与人数 1威望 +8 收起 理由
zhangmangui + 8 很好 感谢分享

查看全部评分

i1mcu 发表于 2013-6-17 19:41 | 显示全部楼层
i1mcu 发表于 2013-6-17 19:41 | 显示全部楼层
看看这个是不是有用的
 楼主| wowow 发表于 2013-6-17 19:49 | 显示全部楼层
我说的是第一行:$7C-ICA06HW 、 $NA-06A15FW 的生产批号,不是芯片型号TDS320DM6446xxxx
zhangmangui 发表于 2013-6-18 13:55 | 显示全部楼层
TM320DM6446BZWT8和TMS320DM6446AZWTA  
这两个型号的后5位不同  肯定芯片是有区别的  今天我进不去TI的官网这页
你可以去对比看看
http://www.ti.com/lsds/ti/dsp/video_processors/dm64x/products.page?
charmless 发表于 2013-6-19 22:51 | 显示全部楼层
我今天问了TI的技术支持,他们说TM320DM6446BZWT8和TMS320DM6446AZWTA  
有区别,但是没跟我说明白区别在哪儿。我看了一下这两款芯片对于NAND支持有不同,其中
TM320DM6446BZWT8是V2.3的,后者是V2.1版的。附件不知对你有用没。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

参与人数 1威望 +8 收起 理由
zhangmangui + 8 感谢你的分享!

查看全部评分

zhangmangui 发表于 2013-6-20 00:18 | 显示全部楼层
charmless 发表于 2013-6-19 22:51
我今天问了TI的技术支持,他们说TM320DM6446BZWT8和TMS320DM6446AZWTA  
有区别,但是没跟我说明白区别在哪 ...

看来真的有区别
 楼主| wowow 发表于 2013-6-20 06:13 | 显示全部楼层
本帖最后由 wowow 于 2013-6-20 06:17 编辑

型号区别我清楚,我问的是生产批号。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| wowow 发表于 2013-6-21 20:22 | 显示全部楼层


新买了批号为$NA-34AQJW的TMS320DM6446AZWT启动正常。读RBL与$NA-06A15FW的TMS320DM6446AZWTA相同。
谁手头上有DM6446的板子,读一下0x4000开始的2048words(8192字节),保存为bin,传上来比较一下?
附件:
rbl-1.bin  $NA-34AQJW TMS320DM6446AZWT, $NA-06A15FW TMS320DM6446AZWTA
rbl-2.bin $7C-ICA06HW TM320DM6446BZWT8



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
charmless 发表于 2013-6-23 16:36 | 显示全部楼层
周一去读一下看看
u880 发表于 2013-6-23 23:40 | 显示全部楼层
强人!
huigoushang 发表于 2013-6-24 00:06 | 显示全部楼层
楼主威武
G21372 发表于 2013-6-24 00:09 | 显示全部楼层
了解了
yangguangaisha 发表于 2013-6-24 00:48 | 显示全部楼层
厉害厉害
putron09 发表于 2014-2-13 11:36 | 显示全部楼层
zhangmangui 发表于 2015-3-16 22:46 | 显示全部楼层
看到这方面的问题很多人遇到过   楼主的分享很好
 楼主| wowow 发表于 2015-3-18 10:47 | 显示全部楼层
本帖最后由 wowow 于 2015-3-18 10:50 编辑

我看到还有人回这个贴子,附上后来找到的问题和解决方法:

2013-11-29 更新:

再次跟踪代码,发现:
R0 = R10(扇区大小2048) * R12(扇区数6)= 0x3000
旧的是比较R0>0x3800
新的是比较R0>=0x3800
所以对于2048字节的nand,ubl最大12k=12288(包含header)
原来的是12612不行,新编译的12244可以


zhangmangui 发表于 2015-3-18 23:21 | 显示全部楼层
楼主好样的
comeon201208 发表于 2015-3-19 21:35 | 显示全部楼层
找着问题的是非常好的,,解决还需要一定的能力的。
opensrc 发表于 2016-6-2 18:07 | 显示全部楼层
wowow 发表于 2015-3-18 10:47
我看到还有人回这个贴子,附上后来找到的问题和解决方法:

2013-11-29 更新:

朋友,看到你的帖子,我现在也碰到问题,ubl大小为12244,可以用
slh_DM644x.exe -load2IRAM ubl.bin 引导启动,但是,如果写到nand,就不能启动了。
请问还有什么细节问题吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:skywolf.github.io

59

主题

649

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部