在 linux 中加载启动 zynq PL 程序

本文档介绍了在Zynq平台上如何从Linux内核启动PL(可编程逻辑)程序,而非传统的在uBoot中加载。由于驱动的更新,使用$xdevcfg$设备文件的方式不再适用。现在推荐将BIN文件放入/lib/firmware/目录,并通过写入/sys/class/fpga_manager/fpga0/firmware来加载。生成BIN文件可以使用Vivado的Tcl命令,如`bootgen`或`write_cfgmem`。此外,文章提供了在uBoot中加载PL程序的命令示例。
部署运行你感兴趣的模型镜像

在 zynq 使用系统时,可在 uboot 与 linux 中加载启动 PL 程序,一直以来用的都是在 uboot 中加载启动,本次试了试在 linux 中启动,发现不好使,于是有了这篇文章。

环境

vidado 2017.4
Linux zynq 4.14.0-xilinx
zynq 7020

使用

在早期的 xilinx 官方文章写道使用命令(https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841750/Solution+Zynq+PL+Programming

$cat bitstream.bit > /dev/xdevcfg

然而不能用。应该时后期驱动发生了变化。

此处 讨论中发现相关的解决办法,而后转到了官方最新的说明(https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841645/Solution+Zynq+PL+Programming+With+FPGA+Manager
在这里插入图片描述
需要在 /lib 下 新建文件夹 firmware,将生成的 bin 文件放到 /lib/firmware/ 文件夹下,使用命令:

$echo out1.bin > /sys/class/fpga_manager/fpga0/firmware

在这里插入图片描述

BIN 文件生成

  • 关于如何生成 bin 文件,上述官方最新的说明网址中有说明:在这里插入图片描述
    在Vivado 软件 Tcl Console中,使用命令:
bootgen -image Full_Bitstream.bif -arch zynq -process_bitstream bin

即可生成 bin 文件,此命令生成文件名一般为 XX.bit.bin

  • 还有一种方式(https),看了此处的讨论。
    在这里插入图片描述

在Vivado 软件 Tcl Console中,使用命令:

write_cfgmem -disablebitswap -force -format BIN -size 256 -interface SMAPx32 -loadbit "up 0x0 system_wrapper.bit" -verbose out.bin

注:在 Vivado 设置中添加 bin 文件生成,生成的文件是无法使用的,对比二进制文件,发现命令生成的数据进行了大小端的转换。
在这里插入图片描述

uboot 中加载启动 PL 程序,直接使用生成的 bit 文件即可。

  • 从 qspi flash 加载
sf probe 0 0 0 && echo  FPGA bitstream is loading ... ... && sf read ${bitstream_load_address} ${loadbit_addr} ${loadbit_size} && fpga loadb 0 ${bitstream_load_address} ${loadbit_size} 
  • 从 SD 卡加载
 load mmc 0 ${bitstream_load_address}  ${bitstream_image} &&  fpga loadb 0 ${bitstream_load_address} ${loadbit_size} 

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值