U-Boot之添加mtdparts支持

2012年1月5日 0 条评论 790 次阅读 0 人点赞

分区方法

  • MTD层的分区
  • 通过U-boot传递给内核的命令行中的mtdparts=…
  • 其他可以让内核知道分区信息的任何办法,(内核默认的命令参数)

mtdparts及其用法

要想这个参数起作用,内核中的mtd驱动必须要支持,即内核配置时需要选上:

mtdparts的格式如下:

使用的时候需要按照下面的格式来设置:

注意事项

  • a.mtd-id 必须要跟你当前平台的flash的mtd-id一致,不然整个mtdparts会失效 怎样获取到当前平台的flash的mtd-id?在bootargs参数列表中,可以指定当前flash的mtd-id,指定 mtdids:nand0=gen_nand.1,前面的nand0则表示第一个flash
  • size在设置的时候可以为实际的size(xxM,xxk,xx),也可以为’-‘这表示剩余的所有空间。相关信息可以查看drivers/mtd/cmdlinepart.c中的注释找到相关描述。
  • U-boot环境变量有两个,他们分别是: bootcmd 和bootargs。至于在at91sam9263ek板子上为了实现mtdparts分区命令的支持需要在U-boot-2010.06/include/configs/at91sam9263ek.h中添加相关的宏定义:

保存后退出,回到根目录,重新make:

将重新编译的u-boot.bin烧到dataflash中,使用mtdparts查看分区:

重新设置分区:

可以看到手动设置分区了,最后还要恢复默认:

重剑无锋,大巧不工。

文章评论(0)