今天看了一下IXP425上MTD的实现(linux/drivers/mtd/maps/ixp425.c),有如下几点收获

1、FLASH的分区并不是写死的,而是在MTD初始化的时候,通过读redboot的配置文件来得到FLASH的分区信息,然后加载为MTD的分区。
2、reboot下看分区信息:
redboot> fis list
Name              FLASH addr  Mem addr    Length      Entry point
RedBoot           0x50000000  0x50000000  0x00040000  0x00000000
RedBoot config    0x507C0000  0x507C0000  0x00020000  0x00000000
FIS directory     0x507E0000  0x507E0000  0x00020000  0x00000000
o1                0x50040000  0x00800000  0x00080000  0x00800000
o2                0x500C0000  0x00800000  0x00100000  0x00800000
p1                0x501C0000  0x03000000  0x00100000  0x03000000
p2                0x502C0000  0x00800000  0x00160000  0x00800000
p3                0x50420000  0x00800000  0x00160000  0x00800000
p4                0x50580000  0x00800000  0x00120000  0x00800000
p5                0x507A0000  0x03000000  0x00020000  0x03000000
linux下看MTD的信息:
root$ cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00040000 00020000 "RedBoot"
mtd1: 00080000 00020000 "o1"
mtd2: 00100000 00020000 "o2"
mtd3: 00100000 00020000 "p1"
mtd4: 00160000 00020000 "p2"
mtd5: 00160000 00020000 "p3"
mtd6: 00120000 00020000 "p4"
mtd7: 00100000 00020000 "unallocated space"
mtd8: 00020000 00020000 "p5"
mtd9: 00020000 00020000 "RedBoot config"
mtd10: 00020000 00020000 "FIS directory"
可以看出,确实是一一对应。 (mtd7在启动过程中被加载为disk目录,用来保存文件)
3、mtd是字符设备而mtdblock是块设备,mtd2X对应mtdblockX,也就是说mtd2对应mtdblock1,mtd4对应mtdblok2,奇数次设备号的mtd设备是只读设备,所以跳过,对于你写入的区别在于在写入mtd之前不会erase,而mtdblock会erase

IXP425上linux MTD分析相关推荐

  1. Linux MTD子系统 _从模型分析到Flash驱动模板

    MTD(Memory Technology Device)即常说的Flash等使用存储芯片的存储设备,MTD子系统对应的是块设备驱动框架中的设备驱动层,可以说,MTD就是针对Flash设备设计的标准化 ...

  2. Linux如何获取mtd数据,【转载】上接Linux MTD下获取Nand flash各个参数的过程的详细解析【转】...

    (1)Page Size: 如图,页大小,是bit0和bit1组合起来所表示的. extid & 0x3,就是取得bit0和bit1的值,而左移1024位,是因为上面表中的单位是KB=2^10 ...

  3. 《Linux内核分析》 第四节 扒开系统调用的三层皮(上)

    <Linux内核分析> 第四节 扒开系统调用的三层皮(上) 张嘉琪 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com ...

  4. Linux MTD子系统(1):系统层次分析

    目录 1. MTD子系统简介 2. MTD子系统的框架分层 3. MTD子系统重要的数据结构 3.1 struct mtd_info 3.2 struct mtd_part 3.3 struct mt ...

  5. linux内核分析——扒开系统调用的三层皮(上)

    20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 系统调用 ...

  6. 《Linux内核分析》 第四节 扒开系统调用的三层皮(上)

    黄胤凯   原创作品转载请注明出处   <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.视频学习 1 ...

  7. Linux MTD子系统学习(二)

    Linux MTD spi-nor驱动分析 3.1 spi-nor设备驱动框架 3.2 spi-nor设备注册 如果希望一个spi设备可以在linux系统下很好的工作,除了写驱动,还要向内核申明和注册 ...

  8. linux中mtd是什么目录,Linux mtd system

    题图:gratisography Linux mtd system MTD(Memory Technology Device),内存技术设备是Linux的存储设备中的一个子系统.其设计此系统的目的是, ...

  9. flash驱动(一):Linux MTD子系统

    转载:Linux MTD子系统 _从模型分析到Flash驱动模板 MTD(Memory Technology Device)即常说的Flash等使用存储芯片的存储设备,MTD子系统对应的是块设备驱动框 ...

最新文章

  1. 使用TensorRT集成推理inference
  2. python 模块 多线程 单例_python的单例模式
  3. Visual C++——无法响应WM_LBUTTONDBLCLK消息(鼠标左键双击)问题解决方案
  4. 闲聊位置之 POI数据
  5. 在服务器生成ssl认证
  6. 高段位产品经理必须掌握的商业模式分析该怎么做?
  7. linux tcp header更改,Linux Netfilter中修改TCP/UDP Payload的方法
  8. xss原理和注入类型
  9. 常用的免费Webservice接口(二)
  10. ipmitool介绍_ipmitool命令行使用详解
  11. Silverlight 中文教程第四部分:使用 Style 元素更好地封装观感 (木野狐译)
  12. GPS围栏两个多边形相交问题的奇葩解法
  13. python遇到异常跳过_教你使用Python遇到的异常的处理方式!
  14. 《Master Bitcoin》学习笔记02——比特币的交易模型
  15. 大话数据结构学习笔记-第三章线性表
  16. 电力网络安全监测装置_10月 长沙 电力监控系统安全防护技术研修班
  17. 世界顶级机器学习科学家黄恒加入京东,出任京东大数据首席科学家
  18. Jdon框架(JdonFramework)应用系统
  19. 弘辽科技:拼多多这样提升销量才能加权
  20. PHP 实现中文分词搜索功能

热门文章

  1. 32岁,一个八年程序员,也陷入了互联网圈流传的“程序员中年危机”。
  2. pandas 中DataFrame使用:数据标准化、数据分组、日期转换、日期格式化、日期抽取
  3. 案例五 温湿度+LED
  4. ring buffer的C语言实现
  5. 谈谈FLP和CAP的关系
  6. vue组件导入的方式
  7. 程序员职业病之中医颈椎痛缓解办法
  8. JavaScript解构赋值
  9. 锻炼思考力的有效实践
  10. 我与微软MOS的八年之缘