大家好
我最近在自己的板子做通过IBL方式从NAND上加载程序测试,板子上c6678使用的是PG1.0版本,eeprom和nandflash和DDR3使用和TMDXEVM6678LE开发板相同型号和大小的器件,而且板子电路和开发板基本一样,系统时钟是100Mhz,ddr是66.667Mhz。写了一个uart测试程序,在板子上测试正常。下面是我所进行的步骤:
1.选择noboot模式,使用mcsdk_2_01_02_06\tools\writer给的烧写程序,将i2crom_0x51_c6678_le.bin烧入eeprom 0x51,再配置i2cConfig.gel,再将uart测试程序烧写到nand上。所有操作均成功。
2.选择i2c boot模式,boomode[12:0]=13'b00100 00010 101 ,使用小端模式。上电后串口没有数据出来,程序没有加载成功。进入debug,查看Device Status Register(0x02620020) 始终是0x00000021,BOOTCOMPLETE(0x0262013C) 是 0x00000001,说明已经加载了,不知是什么原因??
相同的操作在TMDXEVM6678LE开发板上就能加载成功,而且Device Status Register是0x0000082b
我的问题是:
1,请问i2crom_0x51_c6678_le.bin是通用的吗,直接把它写入eeprom的0x51地址就行了吗?
2. 还有什么地方需要配置吗?为什么通过i2c boot后Device Status Register的值变了呢?
3. 我觉得有可能是i2cConfig.gel中ddr参数配置不对,我参考C:\ti\mcsdk_2_01_02_06\tools\program_evm\gel\evmc6678l.gel中ddr的参数进行修改,再配置到eeprom中,重新boot还是不行。。。
谢谢
user2000895:
这里有一篇
DM368 NAND Flash启动揭秘 你可以去参考下
http://www.deyisupport.com/blog/b/av_tech/archive/2011/08/08/dm368-nand-flash.aspx
Bruce Yang:
回复 user2000895:
多谢你提供的参考资料!