Other Parts Discussed in Thread:AM3354, AMIC110
一 问题描述
CPU :AM3354BZCZ
NandFlash: MT29F2G08ABAGA
Uboot: u-boot 2017.01 (TI 官网下载)
AM3354使用NandFlash启动模式,NandFlash的0~2M存储区域作为MLO分区。
现在有一块板子上的NandFlash MLO存储区域中出现了BitFlip现象,给板子上电后,调试串口不输出任何信息,怀疑MLO程序跑飞。
二、问题分析
使用uboot (ti 官网 uboot 2017.01)中nand read命令读取MLO分区数据,发现在NandFlash的第18个Page的(512+359)字节处出现一个Bit位的反转情况,可以使用ECC BCH8矫正。如下图所示(实际读写过程记录在uboot-nand-read.log文件中,uboot-nand-read.log在帖子下方):
三、BootRom启动测试
从AM335x and AMIC110 Sitara™ Processors Technical Reference Manual手册上我们可以看到,BootRom通过SYSBOOT[9]引脚状态来控制ECC的配置。
现在我们是电路设计将SYSBOOT[9]引脚拉高,禁止了BootRom的ECC纠错功能,BootRom从NandFlash中读取到错误的MLO,所以板子启动后MLO跑飞,调试串口没有输出任何信息。
但是,我们发现这个问题后,将SYSBOOT[9]引脚拉低,使能了BootRom的ECC纠错功能,但是板子仍不能启动,调试串口一直打印CCCCCCCC。
同时,我们将一块能正常启动的板子的SYSBOOT[9]引脚拉低,板子仍可正常启动。
7028.uboot-nand-read.log.log
Nancy Wang:
测试的两块板子都是一样的吗?
1、可以利用ccs调试一下MLO看看能不能定位到在哪里跑飞的。
www.ti.com.cn/…/zhca539.pdf
2、看一下以下链接中nand部分需要注意的问题。
NAND – you may have software related issues. Ensure that you are using the correct ECC scheme when programming the NAND. Also ensure that the initial boot header is correct (check the Initialization chapter of the TRM for specific header information). The AM335x CCS Flashing Tools Guide wiki has information on how to use a CCS tool to program the NAND on the EVM.
processors.wiki.ti.com/…/AM335x_board_bringup_tips