zoukankan      html  css  js  c++  java
  • uboot 传递的参数 mtdparts

    启动uboot后,在重新烧写程序之前,查看传递给内核的参数时(命令为: printenv),看到如下内容:

    bootargs=console=ttyS0,115200 mtdparts=spi0.0:256k(u-boot),64k(u-boot-env),14528k(rootfs),1408k(uImage),64k(mib0),64k(ART) board=DB120

    另外一块板子打印消息却是如下:

    bootargs=console=ttyS0,115200 root=31:02 rootfstype=jffs2 init=/sbin/init mtdparts=ath-nor0:256k(u-boot),64k(u-boot-env),14528k(rootfs),1408k(uImage),64k(mib0),64k(ART)

    有些迷茫,查找资料,得到要点如下.

    Uboot 将分区信息(形如 mtdparts=xxx)添加到bootargs中,kernel在启动的时候会解析mtdparts.

    下面说一下mtdparts,以及它的用法:

    要想让Uboot中的mtdparts起作用,内核中必须支持mtd,机内核配置时需要选上:

    Device Drivers   -->

       Memory Technology Device (MTD) support  -->

                      Command line partition table parsing

    mtdparts 的格式如下:

         mtdparts=<mtddef>[;<mtddef]     

         mtdparts 可以由一个或多个 mtddef 组成。每个mtddef定义如下:

          <mtddef> := <mtd-id>:<partdef>[,<partdef>]

         mtddef 可以由mtd-id 和一个或多个partdef组成,每个partdef定义如下:

         <partdef> := <size>[@offset][<name>][ro]

         <mtd-id> := unique id used in mapping driver/device

         <size> := standard linux memsize OR "-" to denote all remaining space

         <name> := (NAME)

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

         mtdparts=mtd-id:<size1>@<offset1>(<name1>),<size2>@<offset2>(<name2>)

         这里需要注意的地方如下:

      (1) mtd-id 必须跟当前平台 flash 的 mtd-id 一致,不然整个 mtdparts会失效。如何获取当前平台的flash 的mtd-id? 在bootarg参数立邦中,可以指定当前falsh的 mtd-id, 指定mtdids:nand0=gen_nand.1,前面的 nand0 则表示第一个flash。

    (2)size在设置的时候,可以为实际的size(xxM,xxK,xx),也可以为‘-’,表示剩余的所有空间,相关信息可以查看 drivers/mtd/cmdlinepart.c中注释找到相关描述。

    备注:

    target/linux/ar71xx/image/Makefile 中有关于分区的定义:

     db120_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6336k(rootfs),1408k(kernel),64k(nvram),64k(art)ro,7744k@0x50000(firmware)

      其中7744 这个大小为 rootfs + kernel = 6336 + 1408 = 7744

    $(eval $(call SingleProfile,AthLzma,64k,DB120,db120,DB120,ttyS0,115200,$$(db120_mtdlayout),RKuImage))

  • 相关阅读:
    html js 执行粘贴无效和 判断选中的内容(纯文本和html)是否为空
    Javascript中document.execCommand()的用法
    bootstrap4 按钮默认有个动画效果
    vue 源码初级学习
    gitextention 常用技巧
    状态模式全解析--JavaScript
    51..分治算法练习:  4378 【Laoguo】循环比赛
    51..分治算法练习:  4378 【Laoguo】循环比赛
    50.分治算法练习:  二分算法:  2703 奶牛代理商 XII
    50.分治算法练习:  二分算法:  2703 奶牛代理商 XII
  • 原文地址:https://www.cnblogs.com/rohens-hbg/p/6844295.html
Copyright © 2011-2022 走看看