通过 SD 卡,ZYNQ 使用 eMMC 引导 PetaLinux 2018.3

准备

ZYNQ实验板带有SD卡(SD0)和eMMC芯片(SD1),计划从SD卡启动系统,将镜像文件加载到eMMC,并最终从QSPI和eMMC引导系统。

需要准备2份PetaLinux 2018.3版本的系统文件BOOT.BIN和image.ub:一份用于从SD卡启动,放在SD卡根目录;一份用于从eMMC引导的系统,放在SD卡的image目录里。SD卡格式化为FAT32。

构建

为了访问ZYNQ实验板的SD卡和eMMC,需要在构建硬件描述文件中选择SD0和SD1设备,另外需要启用芯片检测端口(CD)并将其连接到EMIO,其逻辑为0。当然,加入以太网等设备是个很好的设想。构建的硬件还要满足PetaLinux的要求,比如TTC0设备等。

将硬件描述文件导入PetaLinux工程进行配置。

配置

2个系统分别配置:

petalinux-config

Subsystem AUTO Hardware Settings ---> SD/SDIO Settings ---> Primary SD/SDIO

从SD卡启动的系统选择:

Primary SD/SDIO (psu_sd_0)

从eMMC引导的系统选择:

Primary SD/SDIO (psu_sd_1)

修改

对于从eMMC引导的系统,即便选择了Primary SD/SDIO (psu_sd_1),仍然不能完全启动,似乎这是PetaLinux工具的一个bug,需要从文件<plnx-proj-root>/project-spec/meta-plnx-generated/recipes-bsp/u-boot/configs/platform-auto.h里,复制U-boot环境参数定义部分内容:

define CONFIG_EXTRA_ENV_SETTINGS

到文件<plnx-proj-root>/project-spec/meta-user/recipes-bsp/u-boot/files/platform-top.h中,并将后者全部 "mmcinfo" 修改为 "mmc dev ${sdbootdev}" ,共5处

编译

对2个系统各自编译,生成image.ub:

petalinux-build

进入工程的image/linux文件夹,生成BOOT.BIN:

petalinux-package --boot --fsbl zynq_fsbl.elf --fpga system.bit --u-boot –force

将2个文件分别复制到SD卡根目录和image文件夹

分区

从SD卡启动,对eMMC进行分区,分成2个:128M的FAT32格式,其余为ext4格式

fdisk /dev/mmcblk1

对分区格式化

mkdosfs -F 32 /dev/mmcblk1p1
mkfs.ext4 /dev/mmcblk1p2

复制

设置从SD卡启动,进入文件夹

cd /run/media/mmcblk0p1/image

检查QSPI芯片分区

cat /proc/mtd

烧写BOOT.BIN到QSPI分区0

flashcp BOOT.BIN /dev/mtd0

挂载eMMC到mnt文件夹

mount /dev/mmcblk1p1 /mnt

复制image到eMMC

cp image.ub /mnt

挂载SD和eMMC,特别注意SD卡和eMMC对应的mmcblk序号:

实验板配套Linux3.15系统启动后,SD0(mmcblk0)是eMMC,SD1(mmcblk1)是SD卡,估计修改过内核;

PetaLinux2018系统启动后,SD0(mmcblk0)是SD卡,SD1(mmcblk1)是eMMC,符合一般情况。

启动

设置跳线从QSPI启动,重新上电,引导BOOT.BIN(运行FSBL,加载bit,运行u-boot),u-boot从eMMC引导加载image.ub(Kernel、Device Tree 和 rootfs)镜像。

参考

https://www.beyond-circuits.com/wordpress/tutorial/tutorial27/

https://www.xilinx.com/support/answers/68833.html

 

  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: PetaLinux是一款基于开源Linux发行版的嵌入式开发工具,用于构建、定制和部署嵌入式Linux系统。2018.3PetaLinux的版本号,代表其发布的时间和更新内容。 PetaLinux2018.3在之前版本的基础上进行了一些改进和优化。首先,该版本加入了对新的硬件平台的支持,包括新的处理器架构和外设。这意味着开发者可以在更多的硬件平台上使用PetaLinux进行嵌入式系统开发,提高了平台的可扩展性和灵活性。 其次,PetaLinux2018.3在功能上也有所增强。它提供了更多的开发工具和工程模板,使开发者在构建嵌入式系统时更加方便和高效。此外,该版本还改进了系统的性能和稳定性,增加了对多线程和多核处理的支持,提升了系统的并行处理能力。 此外,PetaLinux2018.3还新增了一些软件包和驱动程序,使开发者能够更好地支持各种外设和功能。它还引入了更多的编译器和调试工具,方便开发者进行代码编译和调试,并提供了更多的文档和示例代码,帮助开发者更好地了解和使用PetaLinux。 总之,PetaLinux2018.3是一个经过改进和优化的嵌入式开发工具,提供了更多的硬件支持和功能增强。它可以帮助开发者更方便、高效地构建和定制嵌入式Linux系统,为嵌入式开发提供了更多的选择和可能性。 ### 回答2: PetaLinux是Xilinx公司推出的一款基于Yocto Project构建的嵌入式Linux开发工具。旨在为Xilinx的Zynq和UltraScale系列FPGA提供一个高度优化的Linux发行版。PetaLinux 2018.3PetaLinux的一个版本,它包含了一些新的功能和改进。 PetaLinux 2018.3版本主要的更新包括对Yocto Project 2.6和Linux内核4.14的支持。这意味着开发人员可以使用最新版本的软件和驱动程序来构建他们的嵌入式Linux系统。该版本还提供了对新硬件平台的支持,包括Zynq UltraScale+ MPSoC ZCU102和ZCU104评估板。 PetaLinux 2018.3还加强了与Xilinx Vivado工具的集成,简化了从硬件设计到软件开发的流程。开发人员可以使用Vivado工具生成硬件设计文件,并直接从PetaLinux中进行导入和配置。这样可以提高整体开发效率,减少开发时间和风险。 此外,PetaLinux 2018.3还增强了对容器化应用程序的支持。开发人员可以使用Docker等容器技术在嵌入式Linux系统中运行和管理应用程序。这为开发人员提供了更大的灵活性和便利性,可以轻松构建和管理复杂的嵌入式应用。 总体而言,PetaLinux 2018.3为开发人员提供了更多的选择和工具来构建高度定制的嵌入式Linux系统。通过与Xilinx Vivado工具集成,支持最新版本的软件和驱动程序,以及对容器化应用程序的增强支持,开发人员可以更加轻松地进行嵌入式系统开发,并在不同的硬件平台上实现高性能和可靠性。 ### 回答3: Petalinux 2018.3是Xilinx公司开发的嵌入式Linux解决方案的一个版本。它是基于开源项目Yocto Project的,旨在帮助开发者构建用于Xilinx器件的定制化Linux操作系统。 Petalinux 2018.3提供了一套完整的工具链,使开发者可以轻松地构建、配置和定制嵌入式Linux系统。它支持多种开发板和处理器架构,包括Zynq-7000和Zynq UltraScale+等。通过使用Petalinux,开发者可以轻松地将Linux操作系统和Xilinx硬件平台结合起来,提供强大的嵌入式计算和图像处理能力。 Petalinux 2018.3具有许多强大的功能。首先,它提供了一个易于使用的界面,使开发者可以快速设置和配置嵌入式Linux系统。其次,它支持全面的嵌入式硬件和软件开发,包括设备驱动程序、文件系统、应用程序等。此外,Petalinux 2018.3还提供了丰富的软件开发工具,如交叉编译器、调试器和性能分析工具,以帮助开发者更好地进行嵌入式软件开发。 总的来说,Petalinux 2018.3是一个强大而灵活的嵌入式Linux解决方案,使开发者能够快速构建和定制嵌入式系统。无论是在工业自动化、智能交通、网络通信等领域,Petalinux 2018.3都能为开发者提供强大的工具和支持,并为他们带来更高效的开发体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值