使 uboot 支持 S3C6410 的 SD 启动
2010-4-1 10:46:00
这里使用的 uboot 并非 uboot 官方发布的 uboot 代码,而是为三星定制的一个 uboot 版本
s3c-u-boot-1.1.6,其代码作者就包括了三星的程序员与 denx 的员工。这个版本支持
SD 启动,不过默认是 nand 启动,使它支持 uboot 需要做以下事情:
1、 虽然支持 uboot 启动,但是 uboot 代码里不叫 SD 启动方式,而是叫 movinand 启动
方式,在 incluede/configs/smdk6410.h 中就有这个选项,所以在这个文件里关闭 nand
启动,打开 movinand 启动就可以了:
//#define CONFIG_BOOT_NOR
//#define CONFIG_BOOT_NAND 注释 nand 启动
#define CONFIG_BOOT_MOVINAND 打开 movinand 启动
//#define CONFIG_BOOT_ONENAND
//#define CONFIG_BOOT_ONENAND_IROM
#define CONFIG_NAND
//#define CONFIG_ONENAND
#define CONFIG_MOVINAND 打开 movinand 选项,使 uboot 支持 movinand 的操作
2、如果单纯是做上面的改动,还是不够的,在运行的时候会发现到了一定的时候
uboot 就死掉了,其实这是因为 uboot 中假设 SMDK6410 在使用 SD 方式的时候是从 CH0 启
动的,但是手上的这个板子是通过 CH1 启动,那么在运行被复制到 SRAM 中的 8K 代码时
候没办法在 CH0 检测到 SD,更没办法将 SD 里的代码复制到 SDRAM 中。修改办法是在
incluede/
movi.h 中 HSMMC_CHANNEL 修改为 1。