Zynq-7000示例设计 – 使用DEVCFG的Linux驱动程序对PL进行编程-Altera-Intel论坛-FPGA CPLD-ChipDebug

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工具版本,并“修改”示例设计以满足他们的需求。

Xilinx在这些示例设计中提供了有限的支持。

实施细节
设计类型 PS和PL
SW类型 Bootgen / Linux
CPU的 单CPU
PS功能 DEVCFG
PL核心
电路板/工具 ZC702
Xilinx工具版 Vivado / SDK 2015.1
其他详情

说明:

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

BootGen工具用于此操作。

BootGen工具使用一个名为“BIF”的输入文件,该文件概述了启动映像的结构。

BIF文件的示例是:

the_ROM_image:
{
[引导程序] <fsbl_name> .elf
<pl_bitstream_name>。位
<u型boot_name> .elf
}

请注意,需要[bootloader]标记来表示哪个ELF二进制文件是此设计的第一阶段引导加载程序。

此外,请注意,如果在引导过程中不需要PL编程,则.BIT PL比特流线是可选的。

打开命令行shell(例如,Windows上的cmd.exe或Linux中的shell终端)并获取Xilinx工具环境。

Bootgen以下列方式执行:

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

在上面的示例中,指定的.BIF是上面创建的.BIF。

使用带有“-split”选项的BootGen将从.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生成bin格式的单独位交换位文件,可以使用ISE安装中的promgen命令行。

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


注2 :从2014.1开始.Bootgen有一个名为“ process_bitstream”的选项,它将生成BIN文件,该文件可用于PL通过Devcfg从PS配置。

例:

 bootgen -image all.bif -w -process_bitstream bin 

BIF文件:

所有:

{

system.bit

}

输出:

文件system.bit.bin在当前工作目录中生成。

注3 :在更高版本的Linux内核中,可能会自动生成/ dev / xdevcfg。

运行“运行”后遇到“mknod:/ dev / xdevcfg:文件存在”警告消息 mknod / dev / xdevcfg c 259 0> / dev / null“命令你可以运行下一个命令。

请登录后发表评论

    没有回复内容