赞
踩
本文将介绍通过 SPL 从 NAND 加载 U-BOOT,需要做的基本配置。只介绍 SPL 的配置,其他暂不涉及。本文的前提是 U-BOOT 已经移植完,可以从 NOR 启动。这方面的文章网上有很多,读者可以自己查找。
1、在 /configs/xxxxxx_defconfig 文件中
加入
CONFIG_SPL = y
用于从全局上开启 SPL 功能。
2、在 /include/configs/xxxxxx.h 文件中
添加
#define CONFIG_SPL_TEXT_BASE 0x0000
#define CONFIG_SPL_MAX_SIZE 0x1000
#define CONFIG_SPL_STACK 0x1000
#define CONFIG_SPL_FRAMEWORK
#define CONFIG_SPL_LIBGENERIC_SUPPORT
#define CONFIG_SPL_NAND_BOOT
#define CONFIG_SPL_NAND_SUPPORT
#define CONFIG_SYS_NAND_U_BOOT_OFFS 0x20000
对配置项进行简单说明
CONFIG_SPL_TEXT_BASE 用于配置 SPL 的代码段的基地址
CONFIG_SPL_MAX_SIZE 用于配置 SPL 的最大长度
CONFIG_SPL_STACK 用于配置 SPL 的栈起始地址
笔者使用的是三星 S3C2440 的开发板,选择 NAND 启动, S3C2440 的内部 SRAM 会被映射到 0x0000 的地址空间,所以 CONFIG_SPL_TEXT_BASE 为 0x0000。S3C2440 的内部 SRAM 大小为 4K ,所以 CONFIG_SPL_MAX_SIZE 为 0x10000 。将 SPL 的栈空间设置在 SRAM 的顶部,所以 CONFIG_SPL_STACK 为 0x1000 。
CONFIG_SPL_FRAMEWORK 用于支持 /common/ 目录下的内容,包含对 MMC NAND 和 YMODEM 等的支持。
CONFIG_SPL_LIBGENERIC_SUPPORT 用于支持 /lib/ 目录下的内容,SPL 会使用到 /lib/ 目录中的 memset hang 等函数。
下面的三个配置项与系统的启动介质有关系,笔者使用的是 NAND 启动,所以要配置这三个选项,如果要支持 MMC 或者 SD 卡等,就需要配置其他项。
编译,报错,有些函数找不到定义,后面的博文中将继续介绍。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。