zoukankan      html  css  js  c++  java
  • uboot和内核分区的修改


    随着内核的更新,内核越来越大,uboot给nand的kernel分区默认是2M的

    device nand0 <nandflash0>, # parts = 4
     #: name                        size            offset          mask_flags
     0: bootloader          0x00040000      0x00000000      0
     1: params              0x00020000      0x00040000      0
     2: kernel              0x00200000      0x00060000      0
     3: root                0x0fda0000      0x00260000      0

    修改分区如下,建议留给kernel4M大小:

    第一步 在你的配置文件下uboot/include/config/xxx.h 里面有一个宏定义

    #define MTDPARTS_DEFAULT "mtdparts=nandflash0:256k@0(bootloader),"
                                "128k(params),"
                                "2m(kernel),"
                                "-(root)"

    把2M改为4M(改好后重新编译uboot),在cmd_jffs2.c里面我们看到把默认的分区信息分配给了mtdparts_default

    #if defined(MTDPARTS_DEFAULT)
    static const char *const mtdparts_default = MTDPARTS_DEFAULT;
    #else
    #warning "MTDPARTS_DEFAULT not defined!"
    static const char *const mtdparts_default = NULL;
    #endif

    然后在cmd_jffs2.c的函数int do_jffs2_mtdparts(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])中把mtdparts_default

    给了环境变量setenv("mtdparts", (char *)mtdparts_default);

    因此我们可以在uboot的中设置命令 mtdparts default,然后利用mtd查看 分区一样改好了

    device nand0 <nandflash0>, # parts = 4
     #: name                        size            offset          mask_flags
     0: bootloader          0x00040000      0x00000000      0
     1: params              0x00020000      0x00040000      0
     2: kernel              0x00400000      0x00060000      0
     3: root                0x0fba0000      0x00460000      0

    第二步 修改内核的分区信息,linux-3.4.2archarmmach-s3c24xxCommon-smdk.c 这个文件中把分区信息修改的和uboot一样

    然后就可以使用了

  • 相关阅读:
    MySQL(一)
    HTML基础
    python函数基础
    常用的模块
    面向对象进阶
    定制自己的数据类型
    Shell篇之AWK
    MATLAB如何实现傅里叶变换FFT?有何物理意义?
    傅里叶分析
    2018年度关键词
  • 原文地址:https://www.cnblogs.com/alan666/p/8312208.html
Copyright © 2011-2022 走看看