• uboot的mtd功能支持


    一、概述

    1、MTD

      MTD是Flash的一种管理方法,将Flash划分成几个分区,便于管理。

      u-boot的MTD功能是在文件cmd_jffs2.c中实现的,由此我们可以知道怎样打开u-boot的MTD功能。

    2、MTD的作用

      (1)对Flash构建了分区表,从而能够启动linux系统

      (2)nand命令可以使用宏参数,例如“nand read.jffs2 0x30007FC0 kernel;”命令中的kernel,kernel参数

         代表了内核分区的加载地址和大小。

    二、移植

      整个操作都是对TQ2440.h的修改。

    1、使能MTD功能、定义MTD分区表

    /*
     * config mtd settings
     */     
    #define CONFIG_JFFS2_CMDLINE 1
    #define CONFIG_JFFS2_NAND    1
    
    #define MTDIDS_DEFAULT            "nand0=nandflash0"
    #define MTDPARTS_DEFAULT        "mtdparts=nandflash0:256k@0(bios)," 
                                        "128k(params)," 
                                        "128k(toc)," 
                                        "512k(eboot)," 
                                        "1024k(logo)," 
                                        "3m(kernel)," 
                                        "-(root)" 
    
    #define CONFIG_EXTRA_ENV_SETTINGS      
        "mtdids="    MTDIDS_DEFAULT            "" 
        "mtdparts="    MTDPARTS_DEFAULT        ""

    2、使能JFFS2功能(MTD功能是在JFFS2功能打开的前提下才能进一步使能)

    /***********************************************************
     * Command definition
     ***********************************************************/
    #define CONFIG_COMMANDS 
                (CONFIG_CMD_DFL     | 
                CFG_CMD_CACHE     | 
                CFG_CMD_NAND     | 
                /*CFG_CMD_EEPROM |*/ 
                /*CFG_CMD_I2C     |*/ 
                /*CFG_CMD_USB     |*/ 
                CFG_CMD_JFFS2     | 
                CFG_CMD_DATE     | 
                CFG_CMD_REGINFO  | 
                CFG_CMD_PING     | 
                CFG_CMD_ELF)

    三、移植遇到的问题及解决

      如果出现“mtdparts variable not set”问题,这是由于环境变量mtdparts没设置的缘故,我们可以在默认环境变量区中添加这样的环境变量。默认环境变量的定义是common/environment.c中的全局变量“environment”。

      添加环境变量的方法很简单,还是在TQ2440.h中添加,代码如下。

    #define CONFIG_EXTRA_ENV_SETTINGS      
        "mtdids="    MTDIDS_DEFAULT            "" 
        "mtdparts="    MTDPARTS_DEFAULT        ""

      

  • 相关阅读:
    解决 Windows 资源管理器 CPU 占用率很高的问题
    彻底卸载Cygwin
    Cygwin 快速镜像站点
    解决 cygwin 在 win10 下中文显示乱码的问题
    酷派大神 F1 连接调试,日志获取的方法
    陌路
    游戏开发中自定义脚本与配置
    在 cygwin 的环境下调用 libgdx gdx-tools
    在 cygwin 的环境下使用 git 的时候中文编码的问题
    对 android apk 进行重新签名操作
  • 原文地址:https://www.cnblogs.com/amanlikethis/p/3636876.html
Copyright © 2020-2023  润新知