一、概述

  u-boot环境变量可以设置在Norflash上,也可以在NandFlash上。

  倘若环境变量在NorFlash上,再假设S3C2440从NorFlash启动,是能正确从NorFlash上读取环境变量。但是,倘若从NandFlash启动,由于Bank0被挂载成S3C2440的stepstone,就不能从NorFlash上读取环境变量。

  倘若环境变量在NandFlash上,无论S3C2440以什么方式启动,由于NandFlash的逻辑空间与S3C2440的逻辑空间独立,NandFlash都能够正常使用,当然也能够从NandFlash上读取环境变量。

二、参数收集

1、NandFlash

芯片:K9F2G08U0B

擦除单位:块

块大小:128KB

2、环境变量存储区设置

 

  可以看到,分区0是uboot代码区,分配了256KB,分区1是环境变量区,分配了NandFlash的一个Block,128KB。

三、移植

  修改TQ2440.h,添加如下内容。

/*-----------------------------------------------------------------------
 *environment configuration
 */
 
//#define    CFG_ENV_IS_IN_FLASH    1
//#define CFG_ENV_SIZE        0x20000     /* Total Size of Environment Sector */

#define CFG_ENV_IS_IN_NAND        1
#define CFG_ENV_ADDR        (CFG_FLASH_BASE + 0x40000) /* addr of environment at 256K */
#define CFG_ENV_OFFSET            0x40000 /* Environment offset */
#define CFG_ENV_SIZE            0x20000    /* Environment Size 128K */

#define CFG_MONITOR_BASE    CFG_ENV_ADDR

 

posted on 2014-04-01 10:37  amanlikethis  阅读(1445)  评论(0编辑  收藏  举报