Chinaunix首页 | 论坛 | 博客
  • 博客访问: 798704
  • 博文数量: 124
  • 博客积分: 1927
  • 博客等级: 上尉
  • 技术积分: 932
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-31 14:06
文章分类

全部博文(124)

文章存档

2018年(5)

2017年(2)

2016年(6)

2015年(4)

2014年(24)

2013年(7)

2012年(11)

2011年(13)

2010年(52)

我的朋友

分类: LINUX

2010-09-30 12:03:33

   经过一段时间的工作,最近翻了许多资料,参考了许多网上大牛的文章,把个人理解的一些关于NOR flash驱动的见解写了一下,一是为了自我总结,二是为一些像我这样的新手参考学习。
   我用的开发环境是LINUX2.4.19 开发板是我们自己的交换机,用的是ARMat91rm9200,uboot-1.1.1;
其实写NOR flash 的过程应该有两个方面,一方面是在LINUX中的开发,一部分是在Uboot中的开发。
一 在Linux中的开发
 linux下要修改三处:
1 是内核中对flash芯片的支持,通过make menuconfig 去配置。然后./mkimage 
2 是对drivers/mtd/maps 下的Physmap.c 中的static struct mtd_partition   atmel9200_partitions结构体进行修改
  主要是分区,一共五个区,把最后一个区做环境变量,
  

       MTD0:  0x10000000---0x10020000      1* 128k     Bootloader.bin+U-boot.bin分区

       MTD1:  0x10020000---0x10100000      7*128k     Kernel分区

       MTD2:  0x10100000---0x104c0000     30*128k     ramdisk分区

       MTD3 0x104c0000---0x107e0000     89*128k     App1分区

       MTD4 0x107e0000---0x10800000      1*128k     U-boot参数

        

3,如果是JEDEC方式的话,修改的文件是在drivers/mtd/chips 下的jedec_probe.c  在jedec_table 加些要用到的芯片参数。 在3028用的还是CFI方式。
二:u-boot 要开发的
    1,修改在include/configs 下的 At91rm9200dk.h  设置环境变量的位置。flash的大小。
    2,修改include下的flash.h   新芯片的宏定义,厂家,器件ID等
    3,修改board/at91rm9200dk下的 flash.c
       主要做的是增加了对新的芯片的支持,读flash芯片的读写,擦出的操作。
由于每个芯片的操作大同小异,就不做详细说明。。
  由于本人所学有限,错误之错,请批评指正。。仅供参考。
具体的添加过程参考文章  转载的文章 《 在AT91RM9200上跑U-Boot 1.3.2 》
 
阅读(1213) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~