本文作者:赛灵思工程师 zhao gaofeng
本文依据 vivado 2022.1 版本工具链的特性,对 ug1209( 最新版本为 2020.1 )中介绍的 usb boot 启动步骤做了修改,此外,介绍了 windows 10 中 dfu 工具的使用。
step1 vivado 操作:
新建 vivado 工程 。
( 图片截自 ug1209,路径和工程名可自定,下同 )
新建 block design。
添加 zynq ultrascale+ mpsoc ip,并使用 run block automation 应用 board preset。
需要注意的是,要在 board preset 的基础上减少外设的使用以防启动镜像过大,原因会在镜像制作阶段说明。这里去掉了 pcie、sata、dp、can 外设以及两个 axi hpm fpd 接口。
完成配置后,依次进行 validate design, create hdl wrapper, generate output product (ooc) , export hardware。因为这里没有用到pl端,所以不用生成比特流。
step 2 制作第一个启动镜像:
创建 fsbl 工程。
配置 fsbl,在 src 目录下找到 xfsbl_config.h,修改其中的宏定义如下:
修改完成后保存、编译。
打包 fsbl.elf 和 pmufw.elf,usb boot 的第一个启动镜像会被加载到 256kb ocm 中,为了满足 size 要求,第一个启动镜像只包含 fsbl.elf 和 pmufw.elf,如果使能过多外设会导致最终的 pmufw 过大。当 ocm 被写满时,usb 启动就会失败。打包方式如下图所示,注意 pwufw 的 partition type 要指定为 pmu(loaded by bootrom)。
step 3 制作第二个启动镜像:
使用 vivado 2022.1 版本的 zcu102 bsp 创建 petalinux 2022.1 工程。
配置 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,配置如下:
默认情况下,atf 运行在 com 中,但是在本设计中 ocm 的空间非常紧张,atf 在 ocm 运行可能会因为内存不足卡死,所以改为在 ddr 中运行,同时使能 atf debug 方便调试。
5.修改设备树:
编辑 ./project-spec/meta-user/recipes-bsp/device-tr ee/ files/system-user.dtsi 如下:
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。
详细的测试过程,请参考“如何使用 vivado 2022.1 版本工具链实现 zcu102 usb 启动(下)”
“光谷造”智能电表芯片打破垄断
AMD针对零售市场推出8核心FX系列CPU
努比亚Z17S边缘触控功能全解析
04/12 武汉 2012 NI声音与振动高峰论坛
为巡检而生,重新定义千元级红外热成像测温仪!
如何使用Vivado 2022.1版本工具链实现ZCU102 USB启动(上)
新型EMIPAK 1B 封装二极管和MOSFET功率模块,满足车载充电应用
开关电源电路的选择
如何对智能花园进行智慧管理
全球融资总额呈波动态势,2020年H1全球医疗健康融资同比增长12%
pfa接头的介绍,它的特点是什么
关于Oculus Touch对VR的重要意义解析以及未来挑战
vivo Y9s已开启预约该机搭载骁龙665处理器配备了8GB+128GB内存组合
使用PyCharm时的一些实用设置和技巧
什么是TVS二极管,如何选择合适的二极管
2019年广州打造“互联网+充电设施”的智能管理和服务体系
蒸汽发生器属于特种设备吗
荣耀MagicBook年中大促,惊喜好价不容错过
华为麒麟970和麒麟980的区别
Facebook VR办公 Infinite Office方案可能将推迟至明年