转载地址:http://www.ibm.com/developerworks/cn/linux/1309_gaozp_nand/
目前,NAND 坏块管理方法可分为如下几类:
- 基于 FTL 芯片的坏块管理
它使用一个额外的 FTL (Flash Translation Layer)芯片对 NAND 进行管理,对外部屏蔽了坏块信息,U 盘、SD 卡、MMC 卡以及固态硬盘都使用这种管理方法。这种方式简化了 NAND 操作,但也使坏块信息对外部而言不可见,如果系统中出现了可能和坏块相关的问题,定位和调试变得困难,另外,FTL 芯片也需要额外的硬件成本。
- 基于NAND 文件系统的坏块管理
JFFS2、 YAFFS2、 FlashFx 这些专门针对 NAND 的文件系统可以对坏块进行管理。
- NAND 管理中间件
有一些中间件(Middleware)专门用于 NAND 管理,比如 UBI。
- 轻量级 NAND 坏块管理(如bbt)
对 NAND 进行管理的硬件或软件模块,不仅提供坏块管理,同时也支持对 NAND 的擦写操作进行负载平均。而轻量级的坏块管理只专注于坏块,并不提供擦写负载平均的支持,而且,它也不依赖于任何第三方的库。因此,轻量级的坏块管理方式降低了系统的复杂度,而且免去了加载文件系统或初始化中间件的时间,在嵌入式系统中有着广泛的应用。
uboot 下 nand flash坏块管理都是基于坏块表(BBT)的,通过这张表来标识系统中的所有坏块。具体事例见http://blog.chinaunix.net/uid-20564848-id-73088.html