AMD嵌入式开发框架(EDF)是一个完整的开源环境,旨在帮助嵌入式工程师基于AMD自适应SoC高效评估、开发和部署应用。
EDF基于Yocto Project 而构建;Yocto是业界标准的开源构建系统,专用于嵌入式 Linux 开发。这种方法可确保工程师能够创建可复现且可维护的系统,并凭借长期的安全支持和社区支持让系统保持最新。
基于Yocto的EDF流程的核心优势
·Linux发行版:根据特定需求构建定制化Linux OS
·无锁定:使用未与供应商绑定的工具进行开发,实现长期灵活性
·更广泛的生态系统:利用社区内丰富的库、扩展程序和工具
·轻松集成:与已使用的开源环境无缝适配
·部署路径:获取上游更新和操作系统厂商的长期支持
完整解决方案栈
EDF提供了一整套工具和组件,可用于启动和扩展嵌入式系统。软硬件工程师均可利用 EDF快速启用SoC,并在强大统一的基础之上开展开发工作。
加速嵌入式开发
加速嵌入式开发EDF凭借预构建镜像、自动化流程和基于角色的开发路径,加速从评估到部署的整个流程。开发者可在几分钟内启动开发工作,并快速进入高级操作系统构建或硬件定制阶段,而无需从头开始构建。
评估
·开箱即用的评估体验:启动预构建镜像,测试芯片功能,并运行开箱即用的示例
开发
·软件开发:使用 SDK、容器或软件包源编写并部署软件
·操作系统集成与开发:定制软件栈、添加域,并扩展功能
·硬件集成:利用 AMD Vivado和 Vitis 工具流程及可配置的示例设计(CED),集成PL有效载荷
部署
·部署就绪:将定制软件栈集成到终端应用硬件上
·长期可维护性:与商用操作系统厂商合作,实现批量生产并获取长期支持
Petalinux是AMD基于Yocto开发并维护的开发工具,已经被用户所熟知,今天的文章主要站在Petalinux的角度来理解如何进行EDF的迁移开发。
设计对比概览

环境变量
在PetaLinux中,这些工具需要提供给命令行,但无需进行特定项目的初始化。使用 Yocto,在运行bitbake命令之前,需要为本地项目设置 SDK。
Petalinux流程
EDF流程

创建模板工程
Petalinux流程

EDF流程
对于Yocto Project,该机器在项目创建时不会定义。之后可以在build/conf/local.conf中进行修改。默认情况下,该机器设置为 zynqmp-generic,但可以通过local.conf或调用 bitbake 构建命令,使用 MACHINE=[target 模板] 命令行重写进行更改。

创建BSP工程
Petalinux流程
$petalinux-create --type project -s xilinx-zcu102-v2025.2-10171136.bsp
EDF流程
EDF不使用.bsp文件。相反,它使用机器配置文件(在meta-amd-adaptive-socs/meta-amd-adaptive-socs-bsp层状或类似)以针对特定板。预建机器定义可用,可在Yocto项目设置期间进行选择。
导入硬件配置
Petalinux流程
$petalinux-config --get-hw-description <path to XSA file>
EDF流程
使用gen-machine-conf工具从XSA或SDT生成Yocto的配置。

U-Boot 配置
Petalinux流程
$petalinux-config -c u-boot
EDF流程
在Yocto环境中启动U-Boot 菜单配置,更改生效请复制生成的内容.config替换defconfig

Kernel配置
Petalinux流程
$petalinux-config -c kernel
EDF流程
在Yocto环境中启动U-Boot菜单配置,更改生效请复制生成的内容.config替换defconfig

编译构建
Petalinux流程
$petalinux-build
EDF流程
我们需要一个两步构建流程来获取 EDF 流程中的引导工件,这与PetaLinux流程不同
1)启动固件镜像:

2)Linux系统镜像

生成启动镜像
Petalinux流程
$petalinux-package --boot --u-boot
EDF流程
$MACHINE=<machine-name> bitbake xilinx-bootbin
生成WIC镜像
Petalinux流程
$petalinux-package --wic
EDF流程
需要结合起来使用
1.生成boot.bin和Linux系统镜像
$MACHINE=zynqmp-zcu102-sdt-full bitbake xilinx-bootbin
$MACHINE=amd-cortexa53-mali-common bitbake edf-linux-disk-image
2.打包WIC镜像

离线编译包配置
Petalinux流程
$petalinux-build
1) run petalinux-config to config sstate
-> Yocto Settings
->Local sstate feeds settings
->local sstate feeds url
2) run petalinux-config to config downloads
-> Yocto Settings
-> Add pre-mirror url
->(press Enter)
EDF流程


更多详细EDF使用流程可以参考Wiki中AMD Embedded Development Framework(EDF)。
如果您在EDF工具方面有问题,欢迎联系:
simonyang@comtech.cn
charlesxu@comtech.cn