ZYNQ-7000 QSPI Flash和SD卡启动Linux的方式

BOOT.BIN在本文与boot.bin是两种东西。
BOOT.BIN 由FSBL.elf、download.bit/pl.bit和u-boot.elf生成,从SD卡启动时需要用到它,这里的SD是指FAT格式的SD卡,里面存放BOOT.BIN文件,而不是EXT文件格式的SD卡。
boot.bin 由FSBL.elf、download.bit/pl.bit、u-boot.elf和image.ub生成,这个文件的生成需要用到bootgen,bootgen需要安装了Xilinx SDK才有。
image.ub其实不算是一个映象,而是一个映像的集合,包含多个独立的映像和相应的寻址信息。在这里指的是zImage.elf、device tree和root filesystem。

在ZYNQ-7000系列Soc上启动Linux操作系统需要两个文件,一个为BOOT.mcs(QSPI启动所需,SD卡启动为BOOT.bin)和image.ub。其中image.ub为Linux系统镜像文件,由petalinux工具编译而成,BOOT文件由三个文件合成,分别是系统第一阶段引导文件fsbl.elf,FPGA配置文件design.bit,Linux系统的启动文件u-boot.elf。

制作BOOT文件可以采用xilinx官方的XSDK软件,也可以使用petalinux工具通过指令“petalinux-package –boot –fsbl–fpga–u-boot”进行合成。下面讲解如何利用XSDK工具图形化界面进行BOOT文件的合成。

进入Xilinx SDK软件,新建或打开一个工程,点击“Xilinx Tools”——“Create Zynq Boot Image”进入如下界面:
这里写图片描述

在最下方Output path中可以选择输出BOOT文件的格式,可设置为.bin和.mcs格式,其中.bin格式用于放在SD卡中启动,.mcs格式用于QSPI Flash启动,默认为.bin文件,本文中选取生成.mcs格式。在Boot image partitions栏中点击Add添加合成BOOT文件所需的三个文件,并点击Create Image则可生成BOOT.mcs文件。
这里写图片描述
(一) SD卡启动linux

在生成BOOT.bin文件后,将其与image.ub文件一起放到SD卡中,设置板子的启动方式为SD卡启动,则可以通过SD卡进行linux的启动,该方法较为简单,调试时经常使用。

(二) QSPI Flash启动linux

在代码调试完成后,一般需要将linux内核烧写到Flash中,方便今后的使用。其步骤如下。

烧写BOOT.mcs文件:改变Zynq芯片的处理板模式为QSPI启动,找到刚才生成的BOOT.mcs文件,然后利用XSDK软件中的“Xilinx Tools”——“Program Flash Memory”工具,在Image File栏中添加刚才生成的BOOT.mcs文件,​

连接板子的JTAG电缆(为了烧写Flash)和USB-UART电缆(供电和串口信息监控),点击Program将BOOT文件烧写进Flash。烧写完成后,断电重启并利用串口调试工具,即可观察到串口的打印信息。但由于BOOT文件中仅包含了u-boot文件,因此板子启动到u-boot阶段就会停止,无法找到linux内核,若要同时启动linux系统,则在生成BOOT文件的时候,将linux内核文件image添加进去,生成的BOOT文件内部u-boot会自动找到内核文件并展开加载相应的内核和文件系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值