首页 > 范文大全 > 正文

图解DM800 se机器NAND FLASH芯片坏块检测和处理方法

开篇:润墨网以专业的文秘视角,为您筛选了一篇图解DM800 se机器NAND FLASH芯片坏块检测和处理方法范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

NAND FLASH坏块处理机制

大家都知道,机械硬盘会产生坏道,FLASH芯片也会这样,一般我们称此为“坏块(Bad Block)”。在NAND FLASH中,一个块中含有1个或多个位是坏的,就称其为坏块。

产生坏块的原因有两种:

(1)出厂时就有的坏块,称作Factory masked bad block(厂屏蔽坏块)或Initial bad/invalid block(初始坏/无效块),NAND FLASH器件中的坏块是随机分布的。以前做过消除坏块的努力,但发现成品率太低,代价太高,成本不划算。

(2)使用过程中产生的坏块,称作Worn-out bad block(破旧的坏块)。由于使用过程时间长了,在擦除块时出错,说明此块坏了,在程序运行过程中发现,并且标记成坏块。

正常的块写入读出都是正常的,而坏块的读写是无法保证的。在Linux系统中,对于NAND FLASH有坏块管理(BBM,Bad Block Managment)机制,通过一个对应的坏块表(BBT,Bad Block Table)来记录好块,坏块的信息,以及坏块是出厂就有的,还是后来使用产生的。

在L i n u x内核M T D(M e m o r y Technology Device,内存技术设备)架构和Uboot中的NAND FLASH驱动,在加载完驱动后,都会主动扫描坏块,建立必要的BBT,以备后面坏块管理所使用。下面是dm800 se机器在系统启动过程中,通过超级终端获取的一段进程信息,可以看出执行BBT和ECC管理。

[4294669.853000] Brcmnand mfg ad 76 Hynix HY27US08121A (dream) 64MB

[4294669.854000]

[4294669.854000] Found NAND: A C C = 1 7 f f 1 0 1 0 , c f g = 0 4 0 4 2 3 0 0 , flashId=ad76ad76, tim16

[4294669.855000] BrcmNAND version= 0x0302 64MB @00000000

[ 4 2 9 4 6 6 9 . 8 5 6 0 0 0 ] B 4 : N a n d S e l e c t = 4 0 0 0 0 0 0 2 , nandConfig=04042300, chipSelect=-1

[4294669.856000] brcmnand_probe: CS-1: dev_id=ad76ad76

[ 4 2 9 4 6 6 9 . 8 5 7 0 0 0 ] A f t e r : N a n d S e l e c t = 4 0 0 0 0 0 0 2 , nandConfig=04042300

[4294669.858000] Found NAND chip on Chip Select -1, chipSize=64MB, usable size=x

[4294669.859000] brcmnand_scan: B4 nand_select = 40000002

[4294669.859000] brcmnand_scan: After nand_select = 40000002

[4294669.860000] page_shift=9, bbt_ erase_shift=14, chip_shift=26, phys_erase_ sh4

[4294669.861000] Brcm NAND controller version = 3.2 NAND flash size 64MB @1c0000

[4294669.862000] mtd->oobsize=16, mtd->eccOobSize=16

[4294669.862000] brcmnand_scan: mtd->oobsize=16

[4294669.863000] brcmnand_scan: oobavail=12, eccsize=512, writesize=512

[4294669.864000] brcmnand_scan, eccsize=512, writesize=512, eccsteps=1, eccleve3

[4294669.865000] brcmnand_default_ bbt: bbt_td = bbt_main_descr

[4294669.867000] brcmnandCET: Status -> Deferred

DM800 se NAND FLASH芯片分区

D M 8 0 0 s e机器(包括S R 4机器)N A N D F L A S H芯片型号为HY27U518S2CTR(2011年前期采用HY27US08121B)(U703),如图1所示。这是韩国Hynix(海力士)公司的NAND FLASH芯片,采用64M×8bit结构,容量为64MB,用于存储接收机的系统软件。

HY27U518S2CTR芯片划分为三个分区:第1分区(partition 1)为引导装载程序(loader)、第2分区(partition 2)为内核启动系统(boot)、第3分区(partition 3)为根文件系统(root),分配容量分别为:0.25MB、3.75MB、60MB。FLASH分区地址信息可以在系统启动过程中通过超级终端获取: