折腾了3个晚上,今天21:58 U-boot终于在我的开发板上跑起来了。 最开始用的1.1.4版本,自己修改了程序,编译了s3c2410的u-boot.bin,但是不管是在ram中还是在flash中都不能运行。后经高人指点,u-boot好像不支持nand flash启动,我的板子是samsung k9f120800b 64M nand flash,需要在u-boot的前4K字节编写将u-boot拷贝到ram中的程序,所以我想先从ram中把u-boot跑起来,这样也编译调试,毕竟通过usb写ram比写flash要快。 昨天在立宇泰电子下载了一个编译好的u-boot程序,可以写在nand flash中运行,他的是1.1.0版本的,所以今天编译了一个1.1.0版本u-boot,同样不能在ram和flash里启动。 发现1.1.0的Makefile和1.1.4版本有很大不同,并且在1.1.4源码树中把s3c2410作为arm920t cpu的一种SOC。 晚上转战eldk中包含的1.1.3版本u-boot,因为我觉得最新的版本一般都不好用。 发现include/configs/smdk2410.h中有这样一段: /* 于是注释掉了这个宏定义,不去做initialize critical regs,编译,在ram中运行,串口打出: U-Boot 1.1.3 (Mar 9 2006 - 20:22:29)
RAM Configuration: Bank #0: 30000000 64 MB Flash: 512 kB *** Warning - bad CRC, using default environment
Out: serial Err: serial SMDK2410 # version
SMDK2410 # 狂喜! ^_^ BTW:之前一定是在设置mem clock之类的地方出错了,导致u-boot没有输出。
u-boot 1.1.3 README中对skip low level init的描述: - CONFIG_SKIP_LOWLEVEL_INIT [ARM only] If these variables are defined, then |
|