TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320C6748: 从FLASH启动失败,ECC错误寄存器置位.

Part Number:TMS320C6748

硬件环境:

1.DSP6748+FPGA;晶振24Mhz

2.FPGA控制复位(复位信号有抓到);

3.应用程序存储在NANDFLASH中,型号是参考的LCDK开发板,电路设计一致;

4.启动方式为FLASH启动,DSP与FLASH通过EMIF总线连接;

5.应用程序通过CCS5.5编译生成.out,将.out使用AIS生成工具合成AIS文件烧入FLASH

故障发生时机:

1.之前调试阶段没有出现过,板子调试完成入库的时候还好好的,放在库里几个月就出现这种故障了

故障现象:

1.DSP无法启动,但是能连接仿真器,连上仿真器可以看到ECC校验出错,此时将DDR中.text的内容save下来,与正常板子save的内容比较,可以看到.text有很多内容不一致

2.查看了AIS中配置的EMF参数,是默认的0x3ffffffD(最保守参数),EMIF配置的时钟是57Mhz 

2.示波器抓EMIF的CS线可以发现:正常板子的CS信号相对故障板子要多很多;

3.连上仿真器后能加载应用程序到DDR中,估计AIS头已经读出,且将PLL正确初始化了,且从仿真器连上后查看的寄存器看,EMIF和PLL相关寄存器配置值与预期一致

4.硬件修改启动方式为UART启动,使用官方的上位机,使用相同的应用程序,能启动成功

5.连上仿真器后,加载了一个demo程序,运行在DDR中,该程序将烧录在FLASH中的应用程序回读回来,ECC没出错,且与烧录进去的应用程序进行比较完全一致;

6.仿真器加载烧录程序,运行在DDR中,重新烧录应用程序,板卡能正常启动了,几千次压力启动测试后故障也不复现。

请教下TI的大佬:

1.是否TI官方的LCDK开发板也有这种现象,是不是FLASH本身的问题;

2.目前没有其他的思路了,能否请教下还有没有啥排故的思路。

Shine:

请问每块板子都有这个问题么?板子是怎么存放的?有没有受潮?

,

Lin Gang:

10块里面有一块是这样 不会受潮 做了三防 存放在库中

,

Lin Gang:

https://e2echina.ti.com/support/processors/f/processors-forum/48597/6748-nand-bootload/193256#193256

这个链接说是官方ibl的问题,不知是否成立

另外请教一下6748的IBL源码可以在拿找到

,

Shine:

请到bootloader下载并安装在aisgen工具,在C:\ti\AISgen_d800k008_Install_v1.13\AISgen for D800K008\Patch_binaries目录下。具体的workaround,可以看下面的errata勘误表。Advisory 2.3.24 Boot: ECC Data Error in Spare Area Causes NAND Boot Failurehttps://www.ti.com/lit/er/sprz303h/sprz303h.pdf

,

Lin Gang:

好的,还想请教一个问题。SPRAAT2F文档中的9.6章节有如下描述:

我想请问下,如boot5和boot6都配置为0,即不配置PLL.那么RBL运行的时候会默认去配置PLL吗,相关分频参数是多少,或者说它直接旁通PLL使用一个比较低的时钟主频吗?

另外,有详细介绍6748启动过程的文档吗?从RBL运行开始

,

Shine:

boot5和boot6都配置为0,即不配置PLL,那么RBL加载完nand flash后回去执行ROM functions函数,包括PLL配置。 ROM functions函数介绍在上面的bootloader文档Appendix D。

没有单独提供RBL源码,可以接上仿真器通过反汇编窗口去研究一下源码。

,

Lin Gang:

默认情况下RBL遇到位翻转,即使成功纠错也会停止boot,需按照Shine回复的方法打上补丁,感谢解答

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6748: 从FLASH启动失败,ECC错误寄存器置位.
分享到: 更多 (0)