u(boot中NANDflash的MTD驱动移植)-_第1页
u(boot中NANDflash的MTD驱动移植)-_第2页
u(boot中NANDflash的MTD驱动移植)-_第3页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、u( boot 中 NANDflash 的 MTD 驱动移植) -u-bootu-boot中的 与非”闪存的MTD驱动程序迁移移植了 linux中的MTD 驱动程序源代码,以支持 “与非”闪存擦除、刻录写入和读取驱动程序 内存技术设备内存技术设备是 Linux 的一个子系统, 用于访问闪存设 备 MTD 的主要目的是简化新存储设备的驱动, 并提供通用接口功能。MTD 驱动可以支持 CFI 接口的非闪存驱动和非闪存驱动。 众所周知, “与非”闪存的访问接口不像 “非”闪存那样提供标准的 CFI 访问接口, 但“与非”闪存制造商已经对不同品牌和型号的 “与非”闪存芯片的访 问接口制定了一些常规规定

2、,如命令字、地址序列、命令序列、坏块 标记位置、 oob 区域格式等。值得注意的是,在工艺方面有两种类型的与非”闪存:MLC和SLCMLC 和 SLC 属于两种不同类型的 NAND 闪存 SLC 的全称是单 级单元,即单级单元闪存,而 MLC 的全称是多级单元,即多级单元 闪存。它们的区别在于,SLC的每个单元只能存储一位数据,而MLC 的每个单元只能存储两位数据, MLC 的数据密度是 SLC 的两倍。就 页容量而 言, 还有两种类 型的 与 非:大页与非闪 存(例如 HY27UF082G2B)和小页与非闪存(例如K9F1G08U0A)这两种类型在 页面容量、命令序列、地址序列、页面内访问和

3、坏块识别方面非常不 同,并且遵循不同的约定, 因此在移植驱动程序时应该特别注意。在 下,以大页面 NAND flash: HY27UF082G2B 为例,介绍 NAND flash 的一些基本情况,然后介绍 MTD 驱动程序的基本结构和流程分析。最后,介绍了在u-boot中迁移MTD驱动程序的详细步骤:3.4.1)nan dflash的一些基本信息fl2400开发板上的NAND Flash芯片型号是现代HY27UF082G2B。 英特尔于 1988 年首次开发了或非闪存技术。它最重要的特点是支持 片上执行,彻底改变了 EPROM 和 EEPROM 主宰非易失性闪存世界 的局面。然后,在 198

4、9 年,东芝发布了 NAND 闪存结构,它具有较 低的单位成本、较高的容量,并且可以像磁盘一样通过接口轻松升级。 “或非”闪存更适合存储少量的关键代码和数据,而 “与非”闪存更适合 存储大量的高密度数据。下表说明了非闪存与非闪存的区别:非闪存非闪存性能项目的容量通常为14MB,片上支持的最大容量为 32MB 8MB512MB。它可以 直接在芯片上启动。它不受支持,需要驱动读取。只有三星芯片支持 步进式引导加载器技术,其他芯片必须配备 norflash 以启动具有较高 可靠性、较低位反转概率、 常见位反转的引导加载器,并且必须采取 验证措施。 ECC 椭圆曲线算法被推荐用于错误检查和恢复,这导致

5、 1/10 的非闪存使得非闪存的管理和驱动程序写入更加复杂。 存取接口 与随机存取存储器和可编程只读存储器相同。 地址线地址、 数据和命 令通过每个使能引脚区和输入 /输出线与数据线分开。访问接口可分 为地址、数据和命令以及串行访问。随机存取 8K-64K 块大小 (擦除 64K128K单位)必须按顺序存取。擦除时间为 5S,慢3毫秒,快速 读写速度慢。快速读取,快速读取,刻录和写入可以快速擦除 10 100, 000 次和 100 100万次。主要用途保存代码和关键数据保存大 量高密度数据 Jffs2 yaffs 文件系统支持价格高低下面我们将根据 HY27UF082G2B 数 据 表 从

6、以 下 几 个 方 面 详 细 说 明 :3.)HY27UF082G2B 概述HY27UF082G2B ,48 引脚 TS0P1 封装,2G 位(256MB)容量,8 位 宽,地址、数据和命令多路复用输入 /输出 07 芯片封装图如下 (HY27UF082G2B 数据手册截图 ):从上图可以看出,48个引脚大部分是无用的(NC)。由于数据线路复 用 , hy27uf082g2b 没 有 太 多 真 正 需 要 的 连 接 引 脚 下 表 是 HY27UF082G2B 连接引脚功能表 :引脚名称引脚功能输入 /输出 0 输入/输出 7数据输入/输出 CLE 命 令锁存使能ALE数据锁存使能CE芯

7、片选择使能 WE写使能RE读使 能WP写保护R/B就绪/繁忙信号输出的NC VCC电源VSS未连接到。从上表可以看出,HY27UF082G2B和S3C2440之间的连接相对较 小:8个输入/输出引脚、5个使能引脚 (CLE、ALE、CE、we、RE)、1 个写保护引脚(WP)和1个状态引脚(R/B)地址、数据和命令通过8个 输入/输出引脚与这些使能信号协同传输。当写入地址、数据和命令 时,CE和WE信号必须为低电平,并在 WE信号的上升沿锁存命令 锁存使能信号 CLE 和(总数据锁存信号 ALE 用于区分命令或地址是否在输入 /输出引脚上 传输其它总线操作线操作)在数据表的第 11页有详细描述

8、,在此不再重复。从上面可以看出,芯片的总线操作必须有各种使能信号的配合,但 是这些使能信号的控制不需要用户驱动器的干预。 S3C2440 中的“与 非”闪存控制器将根据用户对 “与非 ”闪存控制寄存器 (写命令寄存器 NFCMD、地址寄存器NFADDR、读数据寄存器 NFDATA等)的读写, 在“与非 ”闪存控制相关的引脚上自动输出正确的使能信号。 )。用户 只 需 将 S3C2440 上 的 与非门 闪 光 控 制 相关 引 脚 正确连 接 到 HY27UF082G2B 的使能引脚。 S3C2440 上的与非闪存控制相关引脚 见下图:除了 5 个使能信号外, HY27UF082G2B 的状态

9、引脚也应连接到S3C2440上的与非闪存控制相关引脚FRnB “与非”闪存芯片与S3C2440之间的硬件连接如下图所示。凌飞提供的官方硬件连接示意 图如下:。这里,还介绍了与S3C2440的与非门闪存控制器相关的寄存器:1。NFCONF:与非门闪存配置寄存器1设置时序参数TACLS、TWRPH0、TWRPH0 ; 2.ONT:与非门闪存配置寄存器 2使能禁用与非门控制器,使能禁用引脚信号nFCE,初始化纠错码; 3.写寄存器时, “与非”闪存命令寄存器向“与非”闪存芯片发送命令信号; 4.写该寄存器时, “与非”闪存地址 寄存器向与非”闪存芯片发送地址信号;5.nfdata:当读取和写入寄存器

10、时, 与非门闪存数据寄存器读取或写入数据信号到与非门闪存芯片;6.NFS 状态:与非门闪存状态寄存器仅用于位 0, 0:忙碌, 1:读取 。这里只简要介绍一些重要的寄存器, 而没有介绍许多其他寄存器例 如,与非闪存控制器提供的纠错码硬件生产功能相关的寄存器, 请参 考 S3C2440 数据表了解详情。3.HY27UF082G2B 的存储单元与非闪存的组织结构不同于非闪存, 因为与非闪存是基于页来读取和 烧录的,而非基于字节或字。擦除以块为单位与非门闪存由块组成, 块的基本单位是页每页还包含一个数据区和一 个备用区。小页 NAND 闪存设备在每页中包含 512 字节的数据区和 16 字节的备用区

11、。大页面 NAND 闪存设备在每页中包含 2048字节的 数据区和 64 字节的备用区。 HY27UF082G2B 是一个大页面的 nandfast。 下 图 显 示 了 HY27UF082G2B 存 储 单 元 的 组 织 结 构:HY27UF082G2B存储单元的组织结构在图中的红线处为 8 位宽。可以看出,一个芯片包含 2048个块,一个 块包含 64 个页面,一个页面包含 2048字节的数据存储区和 64 字节的备用区下图以图形方式显示了 HY27UF082G2B 的存储单元的组织结构 (注 意:此图中只有 1024 个块):可以看出, HY27UF082G2B 芯片包括 1gb(25

12、6 MB) 的数据存储区和 256Mbit(32MB) 的备用区。1,HY27UF082G2B 访问地址序列HY27UF082G2B 总容量为 288MB(256MB+32MB) ,8 位宽,需要 29 位访问地址然而,该芯片仅提供 8条地址线 (多路复用 ),这显然是不 够的。因此,当访问 HY27UF082G2B 时,访问地址被分成五个地址 序列,其中前两个是页内地址,后三个是页地址。两个页内地址序列 的有效地址位是 12 位,以满足对页中 2048+64 字节空间的访问;最 后三个地址序列的有效地址是 17 位,以满足对芯片中 2048(块)*64(页) 页的访问。HY27UF082G2

13、B 地址序列表如下图所示 :上图中的 l 表示无效地址设置为低电平在编程实际驱动程序时, 用户必须严格按 照这五个地址序列将每个序列的地址写入 NFADDR 寄存器。换句话 说,用户必须写 5 次 NFADDR 寄存器才能发出完整的访问地址。值得注意的是,小页与非门闪存仅提供一个地址序列和八个访问地 址位来访问 512+16 字节的页内空间,这显然是足够的因此,小页面 NAND 闪存将页面中的地址分为 a、 b 和 c 三个区域,分别用不同的 读取命令进行访问, 以弥补页面中访问地址序列中地址位不足的缺陷 相比之下,大页面与非闪存为页面内地址访问提供了足够的地址序列 和访问地址位 (12 位地

14、址访问 2048+64 字节空间就足够了 ),因此大页 面与非闪存对页面内地址的访问也更加简洁。2,HY27UF082G2B 操作命令序列和前面提到的操作实现 :与非门闪存在页面基础上被读取和烧录,并在块基础上被擦除然 后,在 “与非 ”闪存上有三个基本操作 :读取页面、刻录页面和擦除块。 这三个基本操作有它们自己的命令序列。 事实上,除了这三个基本操 作之外, 大多数与非门闪存还提供许多其他操作和操作命令序列。 例 如, HY27UF082G2B 提供多平面 程序(多层预烧 )、多平面擦除 (多层擦除 )、回写程序 (同层页面拷贝 )、 多平面回写程序 (多层同层页面拷贝 )、多平面擦除、 edc 操作、复位 等上面提到的涉及到层的概念,什么是层?层是将每个芯片块

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论