在 linux 中加载启动 zynq PL 程序

22 篇文章 0 订阅
9 篇文章 1 订阅

在 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} 
  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值