ZYNQ-7000芯片用u-boot启动linux系统方法

本文详细介绍了ZYNQ-7000系列芯片的四种启动方式:SD卡启动、QSPI_FLASH启动、QSPI_FLASH+EMMC启动及QSPI_FLASH+RAMFS启动。重点讨论了每种启动方式所需文件、配置步骤及其优缺点。

0. 芯片启动概述

  • ZYNQ-7000系列芯片运行Linux操作系统需要BOOT.BIN文件、image.ub文件和rootfs。
  • BOOT.BIN文件由fsbl.elf、bitstream和u-boot.elf(裸机elf程序)文件组成。fsbl.elf是由xilinx设计的,由OCM加载执行,有两个主要功能。第一是用于加载bitstream到PL,第二是根据BOOT.BIN文件组成,执行u-boot或是裸机elf程序。bitstream文件是FPGA的配置文件。裸机elf程序用于在不启动操作系统的情况下运行一些软件。u-boot.elf是一种bootloader程序,可以根据不同的硬件情况,在不同的场景下引导操作系统镜像的执行。
  • image.ub文件是由操作系统的镜像文件uImage和设备树文件dtb组成。uImage由压缩过的操作系统镜像zImage和一段由u-boot在引导时会读取的头image_header_t(64B)组成,这个头用于储存u-boot在引导系统时所要获取的一些信息。zImage由未压缩的内核镜像vmlinux和解压代码组成。在u-boot引导内核时,会解压zImage到内存中执行。
  • rootfs是linux的根文件系统,在linux系统启动过程中,必须要挂载这样一个根文件系统。我们的可执行程序以及所用到的库文件、linux系统的配置文件等,都会存储在这样一个根文件系统中。

1. SD卡启动

  • SD卡启动的最大优点就是方便可携带,SD卡被分为两个分区。一个FAT32分区存放BOOT.BIN和image.ub文件,一个ext4分区存放rootfs。
  • zynq-7000有两个SD控制器,在blockdesign里配置zynq核时,根据硬件原理图显示(SD连到了PS端,电路接口与zynq的MIO40-45相连),选择SD0并选择正确的MIO口。
    在这里插入图片描述
    在这里插入图片描述
  • 输入 petalinux-config --get-hw-description -p ./配置硬件。
  • 选择SD0作为首选SDIO。
    在这里插入图片描述
  • 选择SD作为BOOT.BIN的存储介质。
    在这里插入图片描述
  • 默认FLASH作为u-boot环境变量的存储介质,u-boot会根据下面的FLASH分区表到指定的位置读取环境变量。忽略除bootenv外的其它部分,因为FLASH中根本就没有这些部分,它们都在SD卡上。在这里只会用到FLASH中的bootenv。
    在这里插入图片描述
    在这里插入图片描述
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值