在配置一款新Flash H27U4G8_6F2D ,配置文件中如下修改,OOB Size明明写的是64是,但系统打印出来的OOB Size却是128,可能是这个原因导致Uboot无法从Nand Flash启动,一直打印CCCCCCCCC
试着修改CONFIG_SYS_NAND_OOBSIZE 为任意值,都显示为128b,好像自己根据什么值算出来的 。在nand_flash_detect_onfi函数中mtd->oobsize = le16_to_cpu(p->spare_bytes_per_page);强制设置为64,值更改了但还是无法从Flash启动,可能还有些地方没改到。
nand info显示如下:
Device 0: nand0, sector size 128 KiB
Page size 2048 b
OOB size 128 b
Erase size 131072 b
subpagesize 512 b
options 0x4000400c
bbt options 0x00008000
配置文件修改如下:
Shine:
请检查一下sysboot管脚上的电平值是否正确?用示波器抓一下Rom Bootloader读nand flash的时序是否正确。
user5887809:
回复 Shine:
感谢您的回复,sysboot管脚电平值是正确的,用另外一款三星8G的Flash是正常的,Flash的时序有一些偏差,但数据的读写测试也都正常,用nand read 和nand write写入后再读出来是一致的。是否还有其它可疑的地方? H27U4G8_6F2D这顆Flash AM3354是否支持(规格书如下附件)? 另外Flash时序的配置,有没有指导文档,看了这些宏定义和Flash规格书的对应不上来,调起来有点矇~
H27U4G_datasheet.pdf
感谢! #define _CSROFF 4 /* 44ns */ #define _CSWOFF 4 /* 44ns */ #define _ADON 0 /* 6ns */ #define _ADROFF 4 /* 34ns */ #define _ADWOFF 4 /* 44ns */ #define _OEON 1 /* 0ns */ #define _OEOFF 3 /* 54ns */ #define _WEON 1 /* 0ns */ #define _WEOFF 3 /* 40ns */ #define _RDCY 6 /* 82ns */ #define _WRCY 6 /* 82ns */ #define _RDACC 3 /* 64ns */ #define _CSHIGH 10 /* 0ns */ /* 100ns tADL! 60ns tWHR! */ #define _WBURST 0 /* 0ns */ #define _WRACC 2 /* 40ns */ #define _BTURN 10 /* ??? */ /* 100ns tRHW */
user5887809:
回复 Shine:
今天再换了另外一颗S34ML04G1 的Flash,结果也是一样。难道S34ML04G1、H27U4G8_6F2D这两颗Flash都不支持,还是我哪里配置有问题?请帮忙再确认指导下,感谢!