AM335x NAND Driver's Guide
/******************************************************************
* author: 卢浩
* time: 2012.09.12
* environment: ubuntu10.04LTS +TI AM3359
* kernel version: linux-3.2
* QQ Group For Technology Exchange:122879839
******************************************************************/
介绍
通用存储器控制器(GPMC)是一个统一的内存控制器,专用于连接外部内存设备:
•异步SRAM存储器和专用集成电路(ASIC)设备
•异步,同步,页突发模式(仅适用于非复用模式NOR闪存设备)
•NAND闪存
•类SRAM器件
特点
硬件特性
GPMC可以访问各种外部设备通过L3互连。灵活的编程模型,允许范围广的连接设备的类型和接入方式。
GPMC由六块组成:
•互连端口接口
•地址译码器,GPMC配置,以及芯片选择配置寄存器文件
•Access引擎
•预取和写引擎
•纠错码引擎(ECC)
•外部设备/存储器端口接口
软件功能
•访问8位NAND
•BCH8 ECC计划,8位纠错。 BCH8 ECC计划用于兼容所有其他组件(RBL,U-BOOT)
•轮询预取模式
驱动程序配置
要启用/禁用NAND支持,启动Linux内核配置工具:
host$ make menuconfig
使能MTD的相关驱动
模块构建
编译NAND驱动模块。要做到这一点,做如下的变化:
向内核加载驱动模块,如下口令“
设备接口:
Nand作为MLOu-boot.img kernel filesystem的存储介质
删除的NAND分区(假设分区3):
target$ flash_eraseall /dev/mtd3
向nand的一个分区写文件(假设分区4)
target$ nandwrite -p /dev/mtd4 u-boot.img
在uboot下设置linux启动方式能nand:
u-boot> setenv bootargs'console=ttyO0,115200n8 root=ubi0:rootfs rw ubi.mtd=<partion_id>,2048noinitrd rootfstype=ubifs mem=256Mrootwait=1'
比如官方对nand的分区,默认mtd7为filesystem分区,所以:
u-boot> setenv bootargs'console=ttyO0,115200n8 root=ubi0:rootfs rw ubi.mtd=7,2048 noinitrdrootfstype=ubifs mem=256Mrootwait=1'
proc接口
在/ proc / mtd的内核接口是一种设备驱动的接口。有很多有用的信息的关于NAND的
在/ proc / mtd的文件中可以发现。
在终端下输入
target$ cat /proc/mtd
你可以在终端看到类似如下的信息:
此时,nand被成功驱动挂载。