0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Vivado 2022.1版本工具链实现ZCU102 USB启动(上)

XILINX开发者社区 来源:XILINX开发者社区 作者: Zhao Gaofeng 2022-10-28 09:50 次阅读

本文作者:赛灵思工程师 Zhao Gaofeng

本文依据 Vivado 2022.1 版本工具链的特性,对 UG1209( 最新版本为 2020.1 )中介绍的 USB BOOT 启动步骤做了修改,此外,介绍了 WINDOWS 10 中 DFU 工具的使用。

Step1 VIVADO 操作:

新建 VIVADO 工程 。

( 图片截自 UG1209,路径和工程名可自定,下同 )

42a1a87e-5605-11ed-a3b6-dac502259ad0.png

新建 Block Design。

4397ab5c-5605-11ed-a3b6-dac502259ad0.png

添加 Zynq UltraScale+ MPSoC IP,并使用 run block automation 应用 board preset。

需要注意的是,要在 board preset 的基础上减少外设的使用以防启动镜像过大,原因会在镜像制作阶段说明。这里去掉了 PCIE、SATA、DP、CAN 外设以及两个 AXI HPM FPD 接口

43d4c460-5605-11ed-a3b6-dac502259ad0.png

441050d4-5605-11ed-a3b6-dac502259ad0.png

完成配置后,依次进行 Validate Design, Create HDL wrapper, Generate Output Product (OOC) , Export Hardware。因为这里没有用到PL端,所以不用生成比特流。

Step 2 制作第一个启动镜像:

创建 FSBL 工程。

446d2bd8-5605-11ed-a3b6-dac502259ad0.png

配置 FSBL,在 src 目录下找到 xfsbl_config.h,修改其中的宏定义如下:

4509586e-5605-11ed-a3b6-dac502259ad0.png

修改完成后保存、编译。

打包 fsbl.elf 和 pmufw.elf,USB boot 的第一个启动镜像会被加载到 256KB OCM 中,为了满足 size 要求,第一个启动镜像只包含 fsbl.elf 和 pmufw.elf,如果使能过多外设会导致最终的 pmufw 过大。当 OCM 被写满时,USB 启动就会失败。打包方式如下图所示,注意 pwufw 的 partition type 要指定为 pmu(loaded by bootrom)。

45284c7e-5605-11ed-a3b6-dac502259ad0.png

Step 3 制作第二个启动镜像:

使用 Vivado 2022.1 版本的 ZCU102 BSP 创建 PETALINUX 2022.1 工程。

457697f8-5605-11ed-a3b6-dac502259ad0.png

配置 PETALINUX 工程:

1.选中 Subsystem AUTO Hardware Settings, 选中 Memory Settings ,设置 System Memory Size 为 0x6FFFFFFF。

2.返回主菜单. 选择 Image Packaging Configuration, 设置 root file system type 为 INITRAMFS。

3.将 INITRAMFS/INITRD Image name 由默认的 petalinux-intramfs-image 为 petalinux-image-minimal,默认配置下ROOTFS 会放在 SD 卡的 EXT4 分区,这是 PETALINUX 2021.1之后版本的新特性,修改后 ROOTFS 在 DDR 中,就无需插 SD卡了。

4.返回主菜单,选择 ARM Trusted Firmware Configuration,配置如下:

45ad5b1c-5605-11ed-a3b6-dac502259ad0.png


默认情况下,ATF 运行在 COM 中,但是在本设计中 OCM 的空间非常紧张,ATF 在 OCM 运行可能会因为内存不足卡死,所以改为在 DDR 中运行,同时使能 atf debug 方便调试。

5.修改设备树:
编辑 ./project-spec/meta-user/recipes-bsp/device-tr ee/ files/system-user.dtsi 如下:

45ed2260-5605-11ed-a3b6-dac502259ad0.png

6.编译: petalinux-build

回到 Vitis IDE 制作启动镜像,如下图所示,注意 bl31.elf 的excpetion level=el3 并且使能 trust zone,system.dtb 的 load属性设为 0x00100000(在2021.1后u-boot.elf 不再包含system.dtb),u-boot.elf 的 exception level=el2。

466c277c-5605-11ed-a3b6-dac502259ad0.png

46c440ba-5605-11ed-a3b6-dac502259ad0.png

详细的测试过程,请参考“如何使用 Vivado 2022.1 版本工具链实现 ZCU102 USB 启动(下)”

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • usb
    usb
    +关注

    关注

    60

    文章

    7888

    浏览量

    263919
  • 赛灵思
    +关注

    关注

    32

    文章

    1794

    浏览量

    131158
  • Vivado
    +关注

    关注

    19

    文章

    807

    浏览量

    66311
  • zcu102
    +关注

    关注

    0

    文章

    24

    浏览量

    7171

原文标题:开发者分享|如何使用 Vivado 2022.1 版本工具链实现 ZCU102 USB 启动(上)

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    vivado2017中找不到ZCU102对应的板卡,求解决和分享,应该如何解决

    vivado2017中找不到ZCU102对应的板卡,求解决和分享,应该如何解决
    发表于 02-29 17:31

    适用于板载Zynq UltraScale+ZCU102评估板的vivado版本

    我们最近买了(登上Zynq UltraScale + ZCU102评估板(xczu9eg-ffvb1156-2-i))。我们需要知道合适的vivado版本。它有什么特殊的工具吗?我们反
    发表于 12-26 11:34

    Vivado中缺少Zcu102板但它在HLS中存在

    不知道它引用了哪个板文件,安装附带的zcu102文件夹或新添加的zcu102_2016(从给定的链接下载)。我试过两个,我仍然得到错误。请与Lokesh先生澄清一下。 (在init.tcl文件中添加
    发表于 12-28 10:52

    ZCU102许可证凭证是否涵盖所有ZCU102版本

    ZCU102生产芯片评估套件中的许可证凭证是否涵盖所有版​​。我们有ES2和生产生产零件的评估套件。我们需要为两个版本实施。提前谢谢,Chuck_S以上来自于谷歌翻译以下为原文Does
    发表于 01-02 14:58

    如何知道ZCU102 dxdesinger版本

    如何知道ZCU102 dxdesinger版本?pad包含dxdesigner 2005,9.0,9.3或9.5或其他版本
    发表于 10-09 10:00

    为什么在Vivado(任何版本)中没有ZCU102的板级支持?

    论坛上回答技术问题的人之一(ZCU102相关)。能够获得以前版本的支持文件也很棒,就像您尝试为可用的ZCU102示例设计(例如ZCU102
    发表于 10-11 09:02

    请问是否有针对zcu102板/平台的固件更新的参考文档?

    嗨,是否有针对zcu102板/平台的固件更新的参考文档?我提到了UG983但也许它不适用于ZCU102。我使用petalinux - 2018.1版本和bsp - “xilinx-zcu102
    发表于 10-21 10:01

    如何使用ZCU102 Petalinux教程获取BSP?

    我正在尝试在ZCU102运行一些Xilinx 10G'参考设计(XAPP1305),我想使用petalinux创建和部署linux,但不使用Xilinx为板提供BSP。我正在
    发表于 10-21 07:46

    ZCU102 ultrascale找不到串口

    大家好,Whan试图连接到我的超大型zcu102板的串口,我找不到它。我看到其他的COM端口,但不是ZCU102的串口。我有PS_ERR_OUT LED是红色的,它可以来自这里吗?我怎么能解决这个问题呢?最好的祝福,
    发表于 10-22 08:31

    ZCU102ZCU104和ZCU106有什么区别?

    嗨,看起来ZCU104是ZCU102ZCU106的升级版本,具有支持机器学习的额外功能,但更便宜?最好的祝愿,花环
    发表于 10-22 09:19

    如何为zcu102生成PSU Init文件?

    嗨,我有zcu102开发工具包,我计划构建u-boot辅助程序加载器,但为此我需要ps7_init_gpl.c& .h文件。我不知道如何从vivadozcu102生成这些文件
    发表于 05-06 07:32

    ZCU102评估板提供设计文件吗?

    zcu102-schematic-source-rdf0403.zip)。但是,使用我们当前的Dx-Designer编辑工具打开SCH文件时遇到问题。我们的工具版本与原始原理图在您身
    发表于 05-12 09:34

    如何使用ZCU102评估板来运行应用

    的教程。这些视频是使用 Vivado® Design Suite 2019.1 版和赛灵思软件开发套件 (SDK) 创建的。其中所含示例均为针对 Zynq® UltraScale+™ MPSoC ZCU102 Rev1 评估板的示例。视频 1 演示了如何使用
    发表于 12-23 06:53

    PYNQ移植ZCU102详细流程分析

    在gogglezcu102 pynq可以找到一些移植方法的信息 0. Prebuilt PYNQ移植ZCU102编译好的固件 1. 生成镜像 git clone $ git clone
    的头像 发表于 12-23 10:52 3596次阅读
    PYNQ移植<b class='flag-5'>ZCU102</b>详细流程分析

    zcu102zcu104有什么区别

    ZCU102ZCU104是赛灵思(Xilinx)推出的两款高性能嵌入式开发平台,用于开发和验证高性能应用程序。虽然它们都具备卓越的性能和功能,但在一些方面存在一些差异。下面将详细介绍ZCU102
    的头像 发表于 01-04 10:54 3197次阅读