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