原创 u-boot

2017-1-11 16:19 2416 25 25

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文件格式,


图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,在上一篇博客中介绍了交叉编译环境的建立,此处可直接进行配置

cd u-boot-xlnx


make zynq_zed_config


3. 编译u-boot

make


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


文章评论0条评论)

登录后参与讨论
我要评论
0
25
关闭 站长推荐上一条 /2 下一条