我在使用dm8148接8位nand flash时,一直打ccc,无法进入uboot,目前已经尝试以下几种方案:
1、bootmode配置读出来为0x313,优先启动nand,这个没问题,位宽为8bit也没有问题
2、使用SD卡启动uboot之后,可以正常往flash里面读写数据
3、之前使用16位flash时,都已经能正常操作
4、uboot中默认的ecc校验方式为BCH8,从uboot来看是不支持BCH16,不知道是否在向ROM中拷贝uboot_min的时候ecc校验不对?
所以请问8148本身的ecc校验方式需要怎么配置才能通过校验?
另外,如果不是ecc引起的,是否有其他可能性?
Shine:
请先确认一下使用的nand flash是否ROM bootloader支持。4.7.3.2 Initialization and Detectionhttp://www.ti.com/lit/ug/sprugz8g/sprugz8g.pdf
Chris Meng:
回复 Shine:
你好,
ROM code里面使用的ECC取决于你使用的nand的spare area有多大。具体请参考下面的论坛讨论:https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/p/576493/2115429#2115429
peter pai:
回复 Shine:
Hi Shine:
谢谢你的回复。
从文档来看,ROM bootloader是支持改nand的,ID如下:
4 Gb DC x8 2048
nand 的型号为 H27(U_S)4G8_6F2D
以上,谢谢!
peter pai:
回复 Chris Meng:
Hi Chris:
你好。
我从nand的onfi协议读到的oobsize为128,而通过计算和规格书里面写的oobsize都是64.
不知道这种情况rom code是否能正确读取到nand 中的uboot。
附件为nand的规格书。
以上,谢谢!
peter pai:
回复 Chris Meng:
Hi Chris:
你好。
我通过onfi协议从nand中都出来的oobsize为128,但是不管是规格书中描述的还是计算出来的oobsize都应该是64才对。
不知道这种情况下Rom code是否能正常读取nand中的uboot。
以上,谢谢!
Chris Meng:
回复 peter pai:
peter pai我通过onfi协议从nand中都出来的oobsize为128,
nand的手册里面onfi的信息提供的spare空间也是40h=64,你能否查看一下为什么你从onfi协议读出来的是128?
Number of spare bytes per page 40h, 00h