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.

dm6446 RBL不能启动NAND里UBL的悲催问题



做的DM6446板子死活启动不了UBL,先以为不支持K9F1G08U0B,换了支持ONFI的MT29F1G08还是不行。没办法硬着头皮啃了几天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

我只知道DM6446A和DM6446B,谁知道这些第一行生产批号的含义?