IXP425上linux MTD分析

    今天看了一下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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值