背景说明
本文基于 EDF 2025.11 版本进行测试,记录了在 VEK385 开发板上,如何:
1. 通过 JTAG 模式 启动 EDF 镜像;
2. 使用 TFTP 引导 Linux 内核与 rootfs;
3. 在 Linux 环境中使用官方发布的 wic 镜像 刷写 UFS 设备;
在 2025.11 的 EDF 文档里,烧写 UFS 主要是依赖 Image Recovery Application。而本文提供的流程不依赖 Image Recovery Application,方便在非开发板的环境下使用。
生成 boot.bin 和 system.dtb
首先从 edf-ospi 或 xilinx-bootbin 工程中生成 EDF 启动所需的 boot.bin 和 system.dtb。
具体的 Yocto 环境的构建,请参考这个中文博客:
https://adaptivesupport.amd.com/s/article/000039734?language=zh_CN
在构建环境中执行命令:
MACHINE=versal-2ve-2vm-vek385-revb-sdt-seg bitbake edf-ospi
或
MACHINE=versal-2ve-2vm-vek385-revb-sdt-seg bitbake xilinx-bootbin
构建完成后,从
boot.bin
system.dtb
生成 Linux 内核镜像与 rootfs
接下来生成 Linux kernel image 和 rootfs。
1.在 rootfs 中加入刷写 UFS 需要的工具,例如:
bmaptool
bmap-writer
ufs-utils
可以在 local.conf 中追加配置:
IMAGE_INSTALL:append = " bmaptool bmap-writer ufs-utils "
2. 在构建环境执行:
MACHINE=amd-cortexa78-mali-common bitbake core-image-full-cmdline
3. 构建完成后,从
Image
*.cpio.gz.u-boot
说明:
官方的 EDF 文档(PetaLinux to EDF Migration Guide | Boot Image on Hardware with JTAG)在 “Boot-Image-on-Hardware-with-JTAG” 一节中推荐 core-image-minimal,但该镜像非常精简,缺少很多必要的工具包(比如缺少SCP命令)。本文改用 core-image-full-cmdline,便于直接在系统内刷写 UFS。
EDF 文档:
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3467935747/PetaLinux+to+EDF+Migration+Guide#Boot-Image-on-Hardware-with-JTAG
通过 XSDB + JTAG 启动 boot.bin
1.将 XSDB 连接到 VEK385 板卡。
2. 在 xsdb 中通过 JTAG 加载并启动 boot.bin:
ta 1
device program boot.bin
执行成功后,在 UART 终端中进入 u-boot。
在 u-boot 中通过 TFTP 启动 Linux
进入 u-boot 命令行后:
1.配置网络参数(根据你的实际网络环境修改):
setenv serverip 10.10.70.101
setenv ipaddr 10.10.70.1
其中:
serverip:TFTP 服务器 IP 地址;
ipaddr:VEK385 板端 IP 地址。
2. 通过 TFTP 下载内核、设备树和 rootfs(cpio):
tftpboot 0x20000000 Image
tftpboot 0x22000000 system.dtb
tftpboot 0x23000000 core-image-full-cmdline-amd-cortexa78-mali-common.rootfs-20260205023743.cpio.gz.u-boot
注意:
core-image-full-cmdline-amd-cortexa78-mali-common.rootfs-20260205023743.cpio.gz.u-boot 的文件名中包含时间戳,你实际构建得到的文件名可能不同,请以你本地输出为准。
3. 启动 Linux:
booti 0x20000000 0x23000000 0x22000000
在 Linux 系统中刷写 UFS
成功进入 Linux 后,可以对 UFS 设备进行刷写。
1.切换到 root 用户,并确认 UFS 设备和分区:
sudo -s
#查找 UFS 设备及其分区信息
fdisk -l
根据 fdisk -l 的输出,确认 UFS 设备节点(例如 /dev/sda,实际以系统识别为准)。
2. 将 wic 镜像及 bmap 文件拷贝到板端本地内存:
可以使用 scp 从主机拷贝到开发板,例如:
#从服务器拷贝 bmap 文件
scp longley@10.10.70.101:/home/longley/2025.2/edf-linux-disk-image-amd-cortexa78-mali-common.rootfs-20251116015456.wic.ufs.bmap ./
#从服务器拷贝压缩的 wic 镜像
scp longley@10.10.70.101:/home/longley/2025.2/edf-linux-disk-image-amd-cortexa78-mali-common.rootfs-20251116015456.wic.ufs.xz ./
如板上有 SD 卡接口,也可以通过 SD 卡将这两个文件复制到板端内存。
3. 使用 bmap-writer 或 bmaptool 刷写 UFS:
方式一:使用 bmap-writer:
xzcat edf-linux-disk-image-amd-cortexa78-mali-common.rootfs-20251116015456.wic.ufs.xz
| bmap-writer -
edf-linux-disk-image-amd-cortexa78-mali-common.rootfs-20251116015456.wic.ufs.bmap
/dev/sda
方式二:使用 bmaptool:
bmaptool copy
--bmap edf-linux-disk-image-amd-cortexa78-mali-common.rootfs-20251116015456.wic.ufs.bmap
edf-linux-disk-image-amd-cortexa78-mali-common.rootfs-20251116015456.wic.ufs.xz
/dev/sda
注意事项:
/dev/sda 仅为示例设备节点,请根据 fdisk -l 的结果确认实际设备;
上述操作会覆盖整个 UFS 设备,刷写前请确认设备上无需要保留的数据。
文中使用的 wic 与 bmap 文件为 VEK385 官方发布的镜像,从 AMD 的 Wiki 下载获得。
UFS 配置相关说明
在对 UFS 进行刷写之前,需要按照官方文档完成 UFS 设备的配置与初始化。
您可参考以下文档中 “Device Configuration” 一节:
UFS Linux driver | Device Configuration:
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/3103293588/UFS+Linux+driver#Device-Configuration
-
amd
+关注
关注
25文章
5715浏览量
140507 -
JTAG
+关注
关注
6文章
416浏览量
75303 -
开发板
+关注
关注
26文章
6445浏览量
121248 -
Versal
+关注
关注
1文章
177浏览量
8549
原文标题:开发者分享 | 在 AMD Versal™ Gen 2 上通过 JTAG 启动 EDF 镜像并刷写 UFS 的流程
文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
在AMD Versal自适应SoC上使用QEMU+协同仿真示例
如何在Zynq UltraScale+ MPSoC平台上通过JTAG启动嵌入式Linux镜像
【ALINX 技术分享】AMD Versal AI Edge 自适应计算加速平台之 Versal 介绍(2)
AMD Versal自适应SoC中eMMC烧录/启动调试检查表(上)
【NanoPi2试用体验】刷写Debian Jessie 8.1
Zynq在非JTAG模式下的启动配置流程
Zynq在非JTAG模式下的启动配置流程
Zynq在非JTAG模式下的启动配置流程
AMD Versal自适应SoC CPM5 QDMA的Tandem PCIe启动流程介绍
AMD推出第二代Versal Premium系列
AMD推出了Versal Premium Series Gen 2,这是业界第一个支持CXL 3.1和PCIe Gen6的FPGA平台。
第二代AMD Versal Premium系列产品亮点
AMD Versal CPM5 QDMA Gen4x8 ST Only Performance Design CED示例
在AMD Versal Gen 2上通过JTAG启动EDF镜像并刷写UFS的流程
评论