u-boot2011.12在mini2440上的移植1中的错误,经查看源代码后发现时开始NOR Flash支持时引起的,考虑到不需要NOR Flash支持,故去掉NOR FLASH支持。
1. mini2440.h中,添加宏定义
#define CONFIG_SYS_NO_FLASH
用于关闭NOR FLASH
将上次注释掉的#define CONFIG_CMD_NAND打开并在其后添加#define CONFIG_CMD_SAVEENV
修改Flash配置为
#if 0
#define CONFIG_SYS_FLASH_CFI
#define CONFIG_FLASH_CFI_DRIVER
#define CONFIG_FLASH_CFI_LEGACY
#define CONFIG_SYS_FLASH_LEGACY_512Kx16
#define CONFIG_FLASH_SHOW_PROGRESS 45
#define CONFIG_SYS_MAX_FLASH_BANKS 1
#define CONFIG_SYS_FLASH_BANKS_LIST { CONFIG_SYS_FLASH_BASE }
#define CONFIG_SYS_MAX_FLASH_SECT (19)
#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + 0x070000)
#define CONFIG_ENV_IS_IN_FLASH
#define CONFIG_ENV_SIZE 0x10000
#else
#define CONFIG_ENV_IS_IN_NAND 1
#define CONFIG_ENV_OFFSET 0x30000 //将环境变量保存到nand中的0x30000位置
#define CONFIG_ENV_SIZE 0x10000 /* Total Size of Environment Sector */
#endif
用于将ENV设置在NAND中
mini2440.c中,注释掉函数ulong board_flash_get_legacy(ulong base, int banknum, flash_info_t *info)
修改cmd_bootm.c文件
a)把81和82行注释掉,如下:
// abort NOR FLASH |del by guoyirong 2011.06.25
//#include //extern flash_info_t flash_info[]; /* info for FLASH chips */ b)把函数int do_imls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])整体注释掉,改为如下: int do_imls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]){return (0);} 添加 drivers/mtd/nand/目录下新建s3c2440_nand.c文件实现对NAND FLASH的操作,参考http://blog.csdn.net/reille/article/details/6568761中2.5 编译即可。 运行时可uboot可运行,但NAND仍有bug
上一篇:u-boot2011.12在mini2440上的移植1
下一篇:u-boot-2009.08在mini2440上的移植 增加yaffs2文件系统
推荐阅读最新更新时间:2024-11-01 10:43