各位专家好,
我们现在有相当数量的单板(基于OMAP-L138)在客户那里运行一段时间,重启的时候发现内核CRC失败,不得不返厂进行UART下载重新烧写。我搜集了相当多的证据,如下,请结合证据进行分析。
1. 我们基于OMAP-L138的产品有很多型号,最小系统电路也不大相同,有一个产品型号相当稳定,没出现过内核丢失,这个产品的EMIFA总线有两个负载,一个是NAND,一个是并行口液晶屏,当时为了防止EMI干扰,在EMIFA总线和液晶屏之间有EMI滤波器。其他基于OMAP-L138的产品EMIFA总线都是直接和NAND对接。
2.经常出现内核丢失的产品,用示波器测试NAND信号波形,EMIFA_D0~D7都发现有半高电平(1V),从单板上电启动一直到内核搬移到DDR完毕,一旦内核搬移完毕,信号波形立马变正常;从来没有出现内核丢失的单板,测试NAND信号波形,发现上电启动到内核搬移整个过程,由于EMI滤波器存在,NAND信号波形虽有半高毛刺,但是幅度较低(20mv)。
3.我们使用的NAND型号为MT29C2G24MAA,是个NAND + mDDR组成的MCP。
4.我试图在UBL阶段对NAND时序进行修改,代码如下,通过测试观察,一运行我增加的代码,半高电平立马消失,说明在OMAP-L138内部ROM里面支持NAND启动的配置可能和我们选的NAND型号配合不好??半高电平是消失了,但是UBL也启动不了了,在nand_open时候出错。
5.我参照TI论坛介绍,在UBOOT里面增加一些校验相关的代码。至少对半高电平的问题没有任何影响。考虑到我们内核丢失的单板数量较大,已经排除是NAND位翻转固有特性造成的。
6. 发现内核丢失现象之后,我们马上在内核里面对UBL,UBOOT,kernel,rootfs 等都做了备份,通过这段时间观察来看,作用不大。仍然有很多单板出现这个问题。
附件为半高电平的波形和小系统原理图,请帮忙分析一下原因。