今天,u-boot终于在我的bf561的板子上跑起来了,特此记录下来以供参考。
1、在FC6 i386 Linux平台上装交叉编译器,主要为以下两个RPM包。
blackfin-toolchain-07r1.1-3.i386.rpm
blackfin-toolchain-elf-gcc-4.1-07r1.1-3.i386.rpm
2、在u-boot的根目录下运行
make bf561-ezkit_config
表示我们需要编译为BF561的目标平台
3、在u-boot的根目录下运行
make
此时会在u-boot的根目录下生成u-boot.bin和u-boot.ldr文件,如果使用模式0则直接使用u-boot.bin即可。
如果是使用模式1则可以使用u-boot.ldr文件,但是这里有一个问题,u-boot.ldr是由tool/bin2ldr/runme.sh调用tools/bin2ldr/bin2ldr这个应用程序生成的,但是可恶的是bin2ldr默认生成的LDR文件居然是BF537的,因此还需要修改runme.sh这个文件,将这行
./bin2ldr –proc bf537 || exit 1
修改为
./bin2ldr –proc bf561 || exit 1
其实这两个参数生成的文件也就是差了文件头的4个字节。就是这四个字节,可是让俺走了不少的弯路!!
4、修改include/configs/bf561-ezkit.h,根据板子的配置修改了一些参数,再编译,写入Flash,终于从串口传来了一串数据:
CPU:
ADSP BF561
Board: ADI BF561 EZ-Kit Lite board
Support: http://blackfin.uclinux.org/
Clock: VCO: 400 MHz, Core: 400 MHz, System: 80 MHz
SDRAM: 64 MB
something is really wrong
U-Boot 1.1.6-svn (ADI-2007R1) (Sep 12 2007 - 14:01:45)
呵呵,虽然不断地复位,但是总是跨出了第一步,不是吗?
又经过一番仔细的修改,总算见到了可爱的提示符,列出来自我庆祝一下。
U-Boot 1.1.6-svn (ADI-2007R1) (Sep 12 2007 - 15:51:30)
CPU:
ADSP BF561
Board: ADI BF561 EZ-Kit Lite board
Support: http://blackfin.uclinux.org/
Clock: VCO: 600 MHz, Core: 600 MHz, System: 60 MHz
SDRAM: 64 MB
FLASH:
2 MB
*** Warning - bad CRC, using default environment
In:
serial
Out:
serial
Err:
serial
Net:
ERROR: Can't find SMC91111 at address 2c010300
Hit any key to stop autoboot: 5 4 3 2 1 0
## Error: "ramboot" not defined
ezkit>