MTD子系统提供了一个称为MTDblock的块驱动程序,它在闪存上模拟一块磁盘。可以将任何文件系统放在模拟的闪存磁盘上。
mtdblock建立的设备节点
dev/mtdblock/x 其中X是分区号
字符设备模拟
mtdchar建立的设备节点
/dev/mtd/x
jffs2:
journaling flash file sysytem 日志结构闪存文件系统
YAFFS2
yet another flash file system 闪存文件系统
www.linux-mtd.infradead.org
drivers/mtd/maps/ 映射
drivers/mtd/chips/ 芯片
drivers/mtd/nand nand驱动程序
数据结构
mtd_partiton include/linux/mtd/partions.h 标识闪存芯片的分区情况
map_info include/linux/mtd/map.h 由映射驱动程序实现的底层访问例程通过这个结构体传递给芯片驱动程
mtd_info include/linux/mtd/mtd.h 一般设备相关信息
cfi_private include/linux/mtd/cfi.h NOR芯片驱动程序维护的设备信息
erase_info include/linux/mtd/mtd.h 用于闪存擦除管理的结构
内核编程
simple_map_init() drivers/mtd/maps/map_funcs.c 用一般闪存访问方法初始花园一个map_info
do-map-probe() drivers/mtd/chips/chipreg.c 通过芯片驱动程序探测NOR闪存
add_mtd_partitions( drivers/mtd/mtdpart.c 向MTD核心注册一个MTD_partition结构