UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 46913

Zynq-7000 示例设计:使用面向 DEVCFG 的 Linux 驱动程序对 PL 进行编程

描述

本示例设计显示了如何用以下 Linux 指令和原始二进制比特流对 PL 进行编程。

mknod /dev/xdevcfg c 259 0 > /dev/null
cat system.bit.bin > /dev/xdevcfg

注: 设计案例作为问题记录,对测试Zynq-7000.的特定功能提供技术提示。

提示可以是一片段代码、一个快照、一幅图,或是使用特定版本的赛灵思工具对整个设计的实现。

由用户 ''更新'' 这些技巧至未来 Xilinx 工具版本 ,并 ''修改'' 范例设计来满足需求。

Xilinx 对这些范例设计仅提供有限的支持。

实现详情
设计类型PS 和 PL
SW TypeBootgen / Linux
CPUs单个 CPU
PS 特性DEVCFG
PL Cores--
Boards/ToolsZC702
Xilinx 工具版本Vivado/SDK 2015.1
其它详情--

解决方案

说明:

要使用面向 devcfg 的 Linux 驱动程序对 PL 进行编程,比特流应转换为二进制。 

此操作可使用 BootGen 工具。

BootGen 工具使用“BIF”输入文件,它可描述引导映像的结构。  


.BIF 文件示例:

the_ROM_image:
{
[bootloader]<fsbl_name>.elf
<pl_bitstream_name>.bit
<u-boot_name>.elf
}


请注意,[bootloader]标签需要说明哪一个 ELF 二进制是设计的第一阶段引导加载程序。 

此外还要注意的是,如果引导进程不需要 PL 编程,那么 .BIT PL 比特流行是可选的。


打开命令行 shell(如在 Windows 打开 cmd.exe,或在 Linux 中采用 shell 终端)并获得 Xilinx 工具环境来源。

BootGen 通过以下方式执行:

bootgen -image <bootimage>.bif -split bin -o i BOOT.BIN

在以上范例中,.BIF 是指之前创建的文件。  

将 BootGen 和“-split”选项配合使用,可为 .BIF 的每个输入文件创建二进制版本,并全部输出为独立文件,而不是常见的整体引导映像文件。  

创建了以下文件:

<pl_bitstream_name>.bit.bin

二进制输出文件可通过 Linux 直接对 Zynq PL 进行编程。 

将 .BIT.BIN 放在 SD 卡上再启动进入 Linux。 


一旦启动 Linux,安装 SD 卡,并为 Zynq devcfg 块创建设备节点:

mknod /dev/xdevcfg c 259 0 > /dev/null 

下面用 Linux 的“cat”命令在 Zynq PL 中传输 PL 比特流:

cat <path_to_storage_media>/<pl_bitstream_name>.bit.bin > /dev/xdevcfg

现已对 PL 进行了编程。 

通过观察电路板上“DONE”LED 的灯亮或 DEVCFG.INT_STS(PCFG_DONE_INT) 寄存器的值,可确认这一点。


注 1:split 选项在 2013.2 版中已从 Bootgen 删除,并重新添加至2013.3版中。

要生成面向 DEVICECFG 的单独的比特交换二进制格式文件,可用 ISE 安装的 promgen 命令行。

Promgen -p bin -data_width 32 -b -u 0x0 <design_name>.bit


注 2: 从 2014.1 开始,Bootgen 有选项 "process_bitstream",它会生成 BIN 文件 - 可用于 PL,以通过 Devcfg 配置 PS。

Example:

bootgen -image all.bif -w -process_bitstream bin

BIF File:

all:

{

system.bit

}

输出:

文件system.bit.bin 生成于现有工作目录中。


注 3: Linux Kernel之后版本中, /dev/xdevcfg 可自动生成。

运行 "mknod /dev/xdevcfg c 259 0 > /dev/null" 命令后,收到"mknod: /dev/xdevcfg: File exists" 警告信息, 你可运行下一条命令。

链接问答记录

主要问答记录

Answer Number 问答标题 问题版本 已解决问题的版本
51779 Zynq-7000 AP SoC - Example Designs and Tech Tips N/A N/A

相关答复记录

Answer Number 问答标题 问题版本 已解决问题的版本
47002 Zynq-7000 Debug - How do you program a bitstream using Lauterbach? N/A N/A
AR# 46913
日期 11/08/2017
状态 Active
Type 综合文章
器件
  • Zynq-7000
Tools
  • Vivado Design Suite - 2015.1
Boards & Kits
  • Zynq-7000 SoC ZC702 Evaluation Kit
的页面