【详解】如何编写Linux下Nand Flash驱动

版本:v2.2.1

Crifan Li

摘要

本文先解释了Nand Flash相关的一些名词,再从Flash硬件机制开始,介绍到Nand Flash的常见的物理特性,且深入介绍了Nand Flash的一些高级功能,然后开始介绍Linux下面和Nand Flash相关的软件架构MTD的相关知识,最后介绍了在Linux的MTD驱动框架下,如何实现Nand Flash的驱动。

[提示]本文提供多种格式供:

HTML版本的在线地址为:

http://www.crifan.com/files/doc/docbook/linux_nand_driver/release/html/linux_nand_driver.html

有任何意见,建议,提交bug等,都欢迎去讨论组发帖讨论:

http://www.crifan.com/bbs/categories/linux_nand_driver/

2015-05-24

修订历史
修订 1.02009-07-21crl
  1. 简介如何在Linux下实现Nand Flash驱动
修订 1.22011-03-15crl
  1. 整理了排版
  2. 添加了很多内容
修订 1.32011-06-12crl
  1. 修正了Nand Flash行列地址的计算方法
修订 1.72011-07-02crl
  1. 添加了ONFI,LBA规范的介绍
  2. 添加了Unique ID介绍
  3. 添加了对应的MTD中检测不同类型芯片的代码
  4. 增加了关于Nand Flash的软件和硬件的ECC算法的简介
修订 1.82011-10-04crl
  1. 添加了Nand Flash位翻转的详细介绍
  2. 添加了Nand Flash的结构图
修订 1.92012-06-14crl
  1. 通过Docbook发布
修订 2.2.12015-05-24crl
  1. 修正关于Nand Flash物理架构组成总容量方面的解释
  2. 修正其他一些笔误
  3. 添加了和Nand Flash相关的一些资料,比如id的命名规则
  4. 添加了keyword,第二章所有章节的id
  5. 修正了笔误,把"第7000个块中的第25页中的1208字节处"改为"第7000个块中的第64页中的1208字节处",以及同步修正了相关的数字
  6. 添加eMMC,eUSB等接口的简介