u-boot image生成
这节介绍一下如何生成u-boot image文件,在SDK软件中点击Xilinx Tools→Create Boot Image工具即可生成,但是生成image文件需要首先集齐3个文件:u-boot.elf、system.bit和fsbl.elf。以下分别介绍一下3个文件的生成过程:
1.u-boot.elf
u-boot.elf的生成在《u-boot编译》中有所介绍,笔者使用虚拟机搭建了ubuntu环境,首先建立交叉编译环境,然后通过git克隆xilinx的u-boot资源,执行以下代码:
- cd u-boot-xlnx #转换到u-boot目录
- make zynq_zed_config #配置zed板
- make #执行编译
在当前目录下生成了u-boot文件,如图1所示,添加elf后缀,u-boot.elf文件则生成完成。

图1
2. system.bit
system.bit是PL部分的BIT文件,首先在ISE软件中新建工程,加入zynq系统,在EDK中配置ARM核及其外设,返回ISE生成TOP HDL Source,点击generate Programming File即可生成Bit文件,如图2所示,然后点击Export Hardware Design To SDK with Bitstream进入下一步。

图2
3.fsbl.elf
fsbl.elf文件需要在SDK软件中生成,首先新建工程,选择Xilinx CProject,然后选择Zynq FSBL,编译工程即可生成zynq_fsbl_0.elf文件,过程如图3、4、5所示。

图3

图4

图5
Image生成
集齐u-boot.elf、system.bit和fsbl.elf就可以生成Image文件了,在SDK软件中点击Xilinx Tools→CreateBoot Image,如图6所示,然后选择3个文件,点击Create Image,生成文件如图8所示,其中u-boot.bin文件就是需要的u-boot image文件,将其重命名为BOOT.BIN后拷贝到SD卡中。

图6

图7

图8
zynq芯片上电初始化,进入u-boot,会自动加载devicetree、zImage和RootFS,然后启动Linux。
小编你好,我按你的步骤生成的boot.bin文件考到SD卡后,出现如下启动不了的错误:终端输出信息如下:
U-Boot 2012.04.01 (Mar 19 2014 - 09:37:51)
DRAM: 512 MiB
WARNING: Caches not enabled
MMC: SDHCI: 0
Using default environment
In: serial
Out: serial
Err: serial
Net: zynq_gem
Hit any key to stop autoboot: 0
Copying Linux from SD to RAM...
Device: SDHCI
Manufacturer ID: 41
OEM: 3432
Name: SD8GB
Tran Speed: 25000000
Rd Block Len: 512
Tran Speed: 25000000
Rd Block Len: 512
SD version 2.0
High Capacity: Yes
Capacity: 7.4 GiB
Bus Width: 4-bit
reading zImage
2458680 bytes read
reading devicetree.dtb
9660 bytes read
reading ramdisk8M.image.gz
3694108 bytes read
## Starting application at 0x00008000 ...
Uncompressing Linux... done, booting the kernel
这个怎么解决啊?望小编指教!
图7有明显错误,文件顺序由上而下应该是fsbl.elf->FPGA bit文件->u-boot.elf
谢谢,分享
小编辛苦了,付出肯定有回报,顶一下3026827905
