加密芯片C6748 NAND FLASH下载完程序,无法自启动

加密芯片C6748 NAND FLASH下载完程序,无法自启动

此问题已被解答
All Replies
  • 举人1350分

    首先芯片是加密型的C6748

    先不考虑对程序进行KEK加密,只让它充当普通芯片能用就行

    我利用NANDWriter工程将led.bin的程序写进NAND FLASH后,让启动模式设置成从NAND启动,boot mode[7:0]为0001 0000

     

    说明:1、我并没有每写512bytes就做一次CRC校验,也即每页只写了前2048bytes,剩下的64个sparebytes没有写东西,我想只要在.ini文件同样设置成不进行CRC校验就应该没问题

                2、没有对使用到的block1进行坏块检测。

                3、不过我确定,led.bin成功无误写进了NAND FLASH,因为我每写一页,都会重新从该页回读验证一下,以保证写入的跟读出的一致,这里验证是正确的

                4、下载程序时用到了DDR读写数据,之前也做过DDR2的压力测试,好像DDR2也都没啥问题

    那么NAND FLASH无法自启动到底是哪里出问题了,我想有可能跟.ini的设置有关(key_hdr_sha256_enc.bin这个会影响么?),或者是cmd文件有问题,或者其他问题,还请大神们给给意见,究竟问题问在哪里了?1222.OMAP-L138_generic_secure.ini

     

     

  • 举人1350分

    led.bin文件从UART2烧写进入DSP内部RAM或者DDR2倒是可以正常运行的!      (当时和led.bin相关的cmd是没有红色区域这段语句的,估计加进去也不会影响)

  • 状元51076分

    难道你把TI提供的 NANDwriter修改了?

    是ECC,不是CRC,一定要加ECC的,bootloader要读出ECC与计算得出的ECC做比较才知道boot时读的NAND的数据对不对。

     注释掉key_hdr_sha256_enc.bin

    红色区域这段话的存在,是因为代码里用到了变量_NANDStart和_EXTERNAL_RAM_START.


    http://processors.wiki.ti.com/index.php/Main_Page

    Think Over Before Asking.

    http://www.catb.org/~esr/faqs/smart-questions.html#goal

  • 举人1350分

    我没有官方提供的标准NANDwriter的CCS工程,我的NANDwriter是自己在OMAP-L138_FlashAndBootUtils_2_40文件夹中,利用.c和.h文件自己做的一个工程,你们有没有标准的NANDwriter的CCS  V6工程?如果自己写ECC,好写么?还请发个NANDwriter的CCS  V6工程链接

  • 状元51076分

    OMAP-L138_FlashAndBootUtils_2_40文件夹中就有CCS的NANDwriter工程:

    OMAP-L138_FlashAndBootUtils_2_40\OMAP-L138\CCS\NANDWriter


    http://processors.wiki.ti.com/index.php/Main_Page

    Think Over Before Asking.

    http://www.catb.org/~esr/faqs/smart-questions.html#goal

  • 举人1350分

    是的,我用的就是这个OMAP-L138_FlashAndBootUtils_2_40文件夹中的NANDwriter工程,关键是这个文件夹下面的nand.c文件中,所有关于ECC的函数,都是依靠函数指针在调用ECC的相关函数,而函数指针指向的函数定义并没有给出,我找了好多文件,都没有给出这些指针所指向的函数的定义,程序走到这里就无法前进,所以只能将其屏蔽掉,那么这个该怎么办,我自己写么?还是在哪个地方我没看到?

  • 举人1350分

    我用的是CCS V6,这个NANDWriter不能直接导入,所以重新做了个工程,但如前所述,无法找到ECC相关的函数定义,不过我倒是在OMAP-L138_FlashAndBootUtils_2_40\Common\UtilLib下面找到了用C#写的一个ECC.cs文件,会不会是CCS在下面调用了类似ECC.cs的一些文件或者脚本啥的

  • 状元51076分

    baokun hu
    我用的是CCS V6,这个NANDWriter不能直接导入,

    先把这个不能导入的问题解决,无非是一些文件路径之类的小问题,而不是修改函数,当然除非你对这个非常有信心,那也可以自己写。

    http://processors.wiki.ti.com/index.php/Main_Page

    Think Over Before Asking.

    http://www.catb.org/~esr/faqs/smart-questions.html#goal

  • 举人1350分

    这个NANDWriter工程是NANDWriter_DSP.pjt,这是CCS V6根本无法识别的工程(跟CCS V6工程的后缀不一样),可能这是用低版本的CCS写的工程,我再下个CCSV 5试试行不。

  • 状元51076分

    CCS menu: Project->Import Legacy CCSv3.3 Projects

    http://processors.wiki.ti.com/index.php/Main_Page

    Think Over Before Asking.

    http://www.catb.org/~esr/faqs/smart-questions.html#goal

  • 举人1350分

    Tony Tang

    现在已经可以从NAND FLASH启动了,谢谢你,官方这个确实比我写那个好用多了,我的还是通过从串口给dsp发指令来控制和显示,这个直接在console下就能实现,我写的应该就是没有考虑ECC校验的问题。非常感谢!

  • 状元51076分

    你将之改成串口的烧写工具很好啊。这样不需要仿真器就可以烧写了。

    不少人也是自己这样改成量产烧写工具的。

    http://processors.wiki.ti.com/index.php/Main_Page

    Think Over Before Asking.

    http://www.catb.org/~esr/faqs/smart-questions.html#goal

  • 秀才32分

    您好,我最近也在学习C6748怎么通过串口烧写至FLASH中启动,和你做的工作很像,但是遇到了问题,读取烧写的程序数据对比也没有问题却boot不起来,想可以参考一下你的代码,谢谢!!