+ -
当前位置:首页 → 问答吧 → nandflash坏块标记?

nandflash坏块标记?

时间:2010-05-26

来源:互联网

三星的K9F2G08,在测试nand时,按照datasheet上说的页内地址写成2048(第一页),看NFDATA的值是不是0xff就可以知道此块是不是坏块,
可是写程序验证时检查结果,没有坏块,当用u-boot的nand bad检查时有两个坏块,这事这么回事呢?难道坏块标记不是第一页的spare area 的第一个字节?对于2G08的 spare area 区域的结构是什么样的(见有的资料上说是64B分成4份,每一份对应512B)?
  1. static u_size8 is_bad_block(u_size32 addr)
  2. {
  3.       u_size32 i;
  4.       u_size8 tmp;
  5.       EN_NANDFLASH;
  6.       WCMD(READ1);
  7.         rNFADDR = 2048 & 0xff;
  8.         rNFADDR = (2048 >> 8) & 0xf;
  9.         rNFADDR = (addr >> 12) & 0xff;
  10.         rNFADDR = (addr >> 20) & 0xff;
  11.         rNFADDR = (addr >> 28) & 0x1;
  12.       WCMD(READ2);
  13.       delay(10);
  14.       noBUSY;
  15.       tmp = rNFDATA;
  16.         if(tmp != 0xff){
  17.           DIS_NANDFLASH;      
  18.           return 1;
  19.     }
  20.       DIS_NANDFLASH;      
  21.       return 0;
  22. }
复制代码

作者: yang23   发布时间: 2010-05-26

自己顶一下!

作者: yang23   发布时间: 2010-05-26

坏块的分类
  总体上,坏块可以分为两大类
  (1) 固有坏块
    这是生产过程中产生的坏块,一般芯片原厂都会在出厂时都会将坏块第一个page的spare area的第6个byte标记为不等于0xff的值。
  (2) 使用坏块
    这是在NAND Flash使用过程中,如果Block Erase或者Page Program错误,就可以简单地将这个块作为坏块来处理,这个时候需要把坏块标记起来。为了和固有坏块信息保持一致,将新发现的坏块的第一个page的spare area的第6个Byte标记为非0xff的值。

作者: aaaaa5aa   发布时间: 2010-05-26

已经解决,是地址弄错了!呵呵!

作者: yang23   发布时间: 2010-05-26



QUOTE:
已经解决,是地址弄错了!呵呵!
yang23 发表于 2010-05-26 20:01




   请问能否贴出您的 判断坏块的代码吗?
我想参考下,
我怎么总是判断为坏块啊。

作者: yourtse   发布时间: 2010-10-30

热门下载

更多