linux 内核 mtd读取,linux内核 mtd分区

首先

内核配置需要打开MTD选项Memory Technology Devices (MTD)  --->

如果是NOR Flash,需要选择Common Flash Interface (CFI)相关的选项;而且需要配置映射首地址(和uboot中配置的flash首地址一致)、映射地址大小和位宽CFI Flash device in physical memory map

(0xff800000) Physical start address of flash mapping

(0x2000000) Physical length of flash mapping

(2)   Bank width in octets

如果是NAND Flash,需要选择NAND Flash相关的选项

修改内核文件

linux-2.6.15.b/drivers/mtd/maps/physmap.c//linux

#define FLASH_PARTITION1_ADDR 0x00000000//偏移地址

#define FLASH_PARTITION1_SIZE 0x001C0000//大小

//ramdisk

#define FLASH_PARTITION2_ADDR 0x001C0000

#define FLASH_PARTITION2_SIZE 0x00240000

//ramdisk reserve

#define FLASH_PARTITION3_ADDR 0x00400000

#define FLASH_PARTITION3_SIZE 0x00380000

//uboot Environment

#define FLASH_PARTITION4_ADDR 0x00780000

#define FLASH_PARTITION4_SIZE 0x00020000

//uboot

#define FLASH_PARTITION0_ADDR 0x007A0000

#define FLASH_PARTITION0_SIZE 0x00060000

static struct mtd_partition mtd_parts[] = {

{

.name =         "Bootloader",

.offset =       FLASH_PARTITION0_ADDR,

.size =         FLASH_PARTITION0_SIZE

},

{

.name =         "Kernel image",

.offset =       FLASH_PARTITION1_ADDR,

.size =         FLASH_PARTITION1_SIZE

},

{

.name =         "Initial ramdisk image",

.offset =       FLASH_PARTITION2_ADDR,

.size =         FLASH_PARTITION2_SIZE

},

{

.name =         "ramdisk reserve",

.offset =       FLASH_PARTITION3_ADDR,

.size =         FLASH_PARTITION3_SIZE

},

{

.name =         "uboot Environment",

.offset =       FLASH_PARTITION4_ADDR,

.size =         FLASH_PARTITION4_SIZE

},

};

#define PARTITION_COUNT (sizeof(mtd_parts)/sizeof(struct mtd_partition))

可参考地址:https://blog.csdn.net/wenlifu71022/article/details/4334962

修改分区方式二setenv bootargs root=/dev/mtdblock3 rootfstype=yaffs2 mtdparts=hinand:1M(u-boot)ro,64k(u-boot envs),32M(appfs)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值