NOR FLASH 修改 在AT91RM9200上
来源:互联网 发布:java中什么叫多态 编辑:程序博客网 时间:2024/06/17 19:50
出处:http://blog.chinaunix.net/u3/118466/showart_2363396.html
本文修改的基础是NOR flash芯片的更换,由原来Intel 芯片E28F128换为S29GL128N,(该芯片是Spansion公司的,被AMD收购),芯片由以前的8M也变为16M,所以大体修改分两个方面,一是Uboot,一是linux内核。
一.Uboot的修改
在uboot中由于换了新的flash芯片,Uboot不一定支持,所以需要修改对他的识别:
(1) 修改在 include/configs 下的at91rm9200dk.h文件
在这个文件头中主要定义了两个变量,一类是选项,前缀为CONFIG_,用来选择处理器,设备接口,命令,属性等,主要用来决定是否编译某些文件或者函数。一类是参数,前缀是CFG_,用来定义总线频率,串口波特率,FLASH地址参数等。这些常量参数主要用来支持通用目录中的代码,定义板子资源参数。
在该文件中,我们主要改了以下两项,主要是flash中的参数:
#define CFG_ENV_ADDR (PHYS_FLASH_1 + 0xfe0000) //环境变量的地址,参考在Linux内核中的phymap.c函数中的分区来看,PHYS_FLASH_1为flash的起始地址。
#define CFG_ENV_SIZE 0x20000 //每个扇区的大小,这里芯片是128k,不同的芯片不同,参考芯片手册。
有时需要设置flash的片数,一片还是两片,在
#define CFG_ENV_IS_IN_FLASH 1 中设置
u-boot的命令也是通过目标板的配置头文件来配置的,比如要添加ping命令,就必须添加CFG_CMD_NET和CFG_CMD_PING才行。不然common/cmd_net.c就不会被编译了。
从这里我可以这么认为,u-boot工程可配置性和移植性可以分为两层:
一是由Makefile来实现,配置工程要包含的文件和文件夹上,用什么编译器。
二是由目标板的配置头文件来实现源码级的可配置性,通用性。主要使用的是#ifdef #else #endif 之类来实现的。
(2) 在linux/include flush.h 文件
1增加芯片Device IDs
#define AMD_ID_GL128N_3 0x22012201 /* 3rd ID word for S29GL128N */
2增加FLASH identification codes
#define FLASH_S29GL128N 0x00F1 /* Spansion S29GL128N */
3 增加manufacturer offsets
#define FLASH_MAN_AMD 0x00000000 /* AMD */
(3) 在board/at91rm9200dk 下的flash.c 文件
在这里面有几个部分需要改动,一是读flash的各种信息,如制造商ID等,通过,flash_get_size();在一个写周期期中,往任意地址写上0x90就可以了。
/* Write auto select command sequence */
addr[FLASH_CYCLE1] = 0x00AA; /* for AMD, Intel ignores this */
addr[FLASH_CYCLE2] = 0x0055; /* for AMD, Intel ignores this */
addr[FLASH_CYCLE1] = 0x0090; /* selects Intel or AMD */
二是设置保护区,把uboot,和环境变量的保护区。
三是写和擦除函数,注意写和擦出的操作就可以了。- NOR FLASH 修改 在AT91RM9200上
- NOR FLASH和NAND FLASH各应用在什么产品上
- AT91RM9200开发笔记(9):为Linux2.6.20添加Nor Flash MTD驱动
- 转载_linux中at91rm9200板子nor flash驱动添加及心得
- 在AT91RM9200上移植u-boot
- mplayer在ARM9(AT91RM9200)上的移植
- 如何在AT91RM9200上移植jffs2文件系统
- uboot烧写到nor flash 上--实验
- jlink连接不上nor flash
- [转载]嵌入式文件系统uc/fs在Nios II上基于Nor Flash的移植
- u-boot-2011.06在mini2440上的移植之Nor flash支持
- u-boot-2009.08在mini2440上的移植 增加nor flash功能
- u-boot-2011.06在mini2440上的移植之Nor flash支持
- u-boot-2009.08在mini2440上的移植(二)---增加nor flash功能
- SRAM、SDRAM、nor flash、nand flash理解以及uboot在nor flash和nand flash启动
- 2440 nand flash和nor flash上启动
- 2440 nand flash和nor flash上启动
- NOR Flash
- 8.4GUI组件上的图形操作
- struts 与 spring 的整合方式
- div显示滚动条的css代码
- Hibernate、Spring和Struts工作原理及使用理由
- 就从今天我要开始在CSDN上做学习笔记了
- NOR FLASH 修改 在AT91RM9200上
- iBATIS教程之入门浅析
- Oracle索引index
- FLASH遮挡DIV解决方案,兼容IE FF Chrome
- acle用户管理
- 1006 一卡通大冒险
- 1007 青蛙过河
- 六方面助你成为职业程序员
- 基于TI Davinci架构的双核嵌入式应用处理器OMAPL138开发入门