Zynq、Yocto Linux和自定义FPGA IP块工作流
我不熟悉Zynq设备,也不熟悉linux和Yocto项目。 我现在有一个项目,需要实现一个定制的FPGA IP块,并从yocto生成的linux发行版中使用它。 显然,我必须为这个定制IP编写linux驱动程序。但是我找不到一个清晰的解释来解释这样一个项目的工作流程 我找到了一些旧的教程,但我不确定它们是否仍然有效,所以一个最新的最佳实践工作流程将非常好 到目前为止我所做的: 我在Vivado中创建了一个测试项目,并通过Microzed+载波板中的FPGA块创建了一个小型led示例。 然后,我从Vivado导出硬件,以获得一个BSP包,我在Vitis的裸机项目中进行了测试。 我安装了Yocto,并根据在线教程为我的microzed板构建了一个参考发行版,它只有一个串行接口。所有这些或多或少都是由Xilinx预先支持的 但现在我需要使用Yocto生成的linux发行版,并使其能够使用我的自定义(LED)IP。 我的问题是:Zynq、Yocto Linux和自定义FPGA IP块工作流,linux,driver,yocto,fpga,zynq,Linux,Driver,Yocto,Fpga,Zynq,我不熟悉Zynq设备,也不熟悉linux和Yocto项目。 我现在有一个项目,需要实现一个定制的FPGA IP块,并从yocto生成的linux发行版中使用它。 显然,我必须为这个定制IP编写linux驱动程序。但是我找不到一个清晰的解释来解释这样一个项目的工作流程 我找到了一些旧的教程,但我不确定它们是否仍然有效,所以一个最新的最佳实践工作流程将非常好 到目前为止我所做的: 我在Vivado中创建了一个测试项目,并通过Microzed+载波板中的FPGA块创建了一个小型led示例。 然后,我从
- 在这种情况下,详细的工作流程是什么样的(在我的末尾) 需要可启动的SD卡吗
- 如何将Vivado生成的mydevice_bsp引入Yocto发行版
- 在哪种环境下(如何写它们,我会找到我自己)我要写 YoctoLinux的驱动程序,并将其引入发行版
- Linux映像启动后,如何将比特流加载到FPGA结构中
马丁我不确定是否有人为此写下了工作流程,但我可以告诉你我将如何处理
KConfig
创建一个Yocto配方,自动将驱动程序包含到内核中
启动Linux后,您会发现一个设备/dev/devcfg
,可用于重新编程FPGA。请注意,更改FPGA会对处理系统产生影响(即,您向PS添加了一些接口),这会导致一些错误(该错误可能是在过去几年中消失的,但几年前我不得不解决这个问题)
因此,根据您的LED示例,您必须执行以下步骤:
BOOT.bin
,uImage
,devicetree.dtb
,并将它们复制到SD卡上/proc/device tree/
Kconfig
和Yocto(或将其用作可加载模块)但请注意:本教程并不是那么新,不幸的是,我没有在该教程中添加自定义IP集成(也许我会很快添加),但它应该向您展示如何做到这一点。我没有完整的答案,但当您谈论Yocto时,是Petalinux[Xilinx]还是仅仅是Yocto本身?顺便问一下:哪一版本的Vivado?你好,vermaete,谢谢回答,这是Vivado v2020.1。这是一个严格的Yocto项目,使用meta-xilinx元数据。目前,Petalinux不是一个选项。好吧,我会关注你的问题。使用Petalinux,您将拥有一个工具来配置Vivado部分并从中生成一个元层。这可能对你的部分问题有所帮助。嗨,坎皮,非常感谢你的回答!我会尽快检查并试用