Zynq MPSOC boot中遇到的几个问题及解决方法

本文详细介绍了在Zynq MPSOC (XCZU3EG) 开发过程中遇到的BOOT.BIN生成问题及R5核心执行异常的解决方案。内容涵盖BOOT.BIN的生成细节,包括.bif文件的重要性、EL级别设置、加载地址和启动地址的设定。此外,还讲述了如何将R5可执行文件打包到BOOT.BIN并解决启动时R5代码无法执行的问题,涉及FSBL、隔离机制和PMU配置。
摘要由CSDN通过智能技术生成

Zynq MPSOC boot中遇到的几个问题及解决方法


前言

在我们的FMCW(调频连续波)激光雷达项目中,使用了Xilinx的Zynq MPSOC—XCZU3EG作为主处理器,这是一款性能强悍的SOC,内嵌了:4核A53(应用处理单元),2核R5(实时处理单元),Mali-400图形处理单元,丰富的FPGA资源,以及PCIe, usb3.0等高速接口。
本文主要对开发过程中,XCZU3EG boot遇到的几个问题及解决方法予以描述。Zynq MPSOC系统的boot过程相当复杂,芯片的技术文档中有详细说明,boot的原理性内容这里不再赘述了。


一、MPSOC下BOOT.BIN的生成

XCZU3EG SOC的ARM内核Cortex A53是基于ARM V8,而ARM V8芯片架构在访问系统资源上做了许多安全性设计,即所谓的ATF(Arm Trusted Firmware),其中之一就是为软件定义了运行的权限:EL0–EL3(Exception Level),从0到3,软件执行的privilege从低到高,即:EL3级别最高,可以访问所有的硬件资源。缺省情况下,uboot、kernel及用户程序都是运行在EL1~EL2,它们要访问系统的寄存器等敏感资源时,不能直接访问,需要通过一层代理来完成,这个代理是硬件配合固件来实现的。因此,MPSOC的BOOT.BIN相比之前的zynq 7000的BOOT.BIN复杂度增加了不少。
BOOT.BIN仍然通过Xilinx的SDK工具生成。如下是一个典型的.bif文件内容:

//arch = zynqmp; split = false; format = BIN
the_ROM_image:
{
   
	[fsbl_config]a53_x64
	[bootloader]D:\share_ubuntu\gen_image\zynqmp_fsbl_2019.elf
	[destination_cpu = a53-0, exception_level = el-2]D:\share_ubuntu\gen_image\bl31.elf
	[pmufw_image]D:\share_ubuntu\gen_image\pmu_2019.elf
	[destination_device = pl]D:\share_ubuntu\gen_image\design_1_wrapper.bit
	[load = 0x7ff0000, destination_cpu = a53-0, exception_level = el-2]D:\share_ubuntu\gen_image\u-boot.dtb
	[load = 0x8000000, destination_cpu = a53-0</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值