• 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        ""

      

  • 相关阅读:
    [Vue]axios的使用
    Handler和Thread线程
    Android启动时闪一下黑屏或者白屏
    WebP图片格式
    ThreadLocal
    泛化,实现,依赖,关联(聚合,组合)
    深入解析AsyncTask
    Processes and Application Life Cycle
    深拷贝浅拷贝
    LCS(Longest Common Subsequence)
  • 原文地址:https://www.cnblogs.com/amanlikethis/p/3636876.html
Copyright © 2020-2023  润新知