MTD :内存技术设备
Flash 设备驱动层次:设备节点 ==》MTD设备层,包括MTD字符设备和MTD块设备==》MTD原始设备层==》Flash硬件驱动层
描述MTD原始设备的数据结构是mtd_info 。每一个分区被认为是一个mtd_info, 例如,如果有两个mtd原始设备,而每个上有3个分区,在系统中将有6个mtd_info结构体,这些mtd_info的指针被存放在名为mtd_table的数组里。
mtd_part 用以表示分区, mtd_info 用以描述分区信息,mtd_partition 用以表示分区链表节点
OOB out of bank 带外数据
ECC
Error Checking and Correcting 错误检查和校验
BBT:bad block table,即坏块表
NAND FLASH的管理方式:以三星FLASH为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 (Block) = xxxx (Pages),1(Page) =528 (Bytes) = 数据块大小(512Bytes) + OOB 块大小(16Bytes,除OOB第六字节外,通常至少把OOB的前3个字节存放Nand Flash硬件ECC码)。
关于OOB区,是每个Page都有的。Page大小是512字节的NAND每页分配16字节的OOB;如果NAND物理上是2K的Page,则每个Page分配64字节的OOB。
需要注意的是:OOB是每个页都有的数据,里面存的有ECC(当然不仅仅);而BBT是一个FLASH才有一个;针对每个BLOCK的坏块识别则是该块第一页spare area的第六个字节。