Hoki

【再说ZedBoard】U-Boot

0
阅读(2501)

Zyny芯片启动加载分为3步:

1. 芯片上电启动,首先读取BootROM中的程序,初始化一些必要的外设,然后根据专用引脚电平判断该从何处启动first stage Bootloader(FSBL),将其中的程序复制到RAM中

2. 加载RAM中的FSBL程序,根据Boot image文件配置PS及PL,这部分Boot完全用户可控

3. Second stage Bootloader(SSBL),这部分可选

ARM核加载操作系统需要bootloader,Bootloader就是在操作系统内核运行之前运行的一段小程序,通过它,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好正确的环境。本节就介绍一下如何配置编译bootloader,以Zed开发板加载linux系统的u-boot为例。

笔者手头上有一块Zed开发板,自带的linux由SD Card启动,SD Card中包含了如下文件:

zImage、BOOT.BIN、devicetree_ramdisk.dtb、ramdisk8M.image.gz

这些文件正是linux Boot image中的文件,如图1所示为Linux Boot Image文件格式,

clip_image002

图1

u-boot是一种开源Bootloader,广泛应用于linux。以下介绍一下xilinx提供的u-boot的编译和配置过程。

1. 首先Git下载Xilinx U-Boot代码

git clone git://git.xilinx.com/u-boot-xlnx.git

2. 配置u-boot,在上一篇博客中介绍了交叉编译环境的建立,此处可直接进行配置

cdu-boot-xlnx make zynq_zed_config

3. 编译u-boot

make

以上步骤完成之后会生成一个u-boot文件,将其另存为u-boot.elf文件,此文件在生成Boot image文件时会使用到。

Baidu
map