从PetaLinux到EDF迁移开发指南

作者:Albert Wei,文章来源:FPGA FAE技术分享选集

 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的迁移开发。

设计对比概览

 1.png

环境变量

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

Petalinux流程

2.png

 EDF流程

3.png


创建模板工程

Petalinux流程

4.png

EDF流程

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

5.png

创建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的配置。

6.png

U-Boot 配置

    Petalinux流程

        $petalinux-config -c u-boot

    EDF流程

        在Yocto环境中启动U-Boot 菜单配置,更改生效请复制生成的内容.config替换defconfig

7.png

Kernel配置

    Petalinux流程

        $petalinux-config -c kernel

    EDF流程

        在Yocto环境中启动U-Boot菜单配置,更改生效请复制生成的内容.config替换defconfig

8.png

编译构建

    Petalinux流程

        $petalinux-build

    EDF流程

        我们需要一个两步构建流程来获取 EDF 流程中的引导工件,这与PetaLinux流程不同

        1)启动固件镜像:

9.png

2)Linux系统镜像

10.png


生成启动镜像

    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镜像

11.png

离线编译包配置

    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流程

12.png

13.png

更多详细EDF使用流程可以参考Wiki中AMD Embedded Development Framework(EDF)。

如果您在EDF工具方面有问题,欢迎联系:

simonyang@comtech.cn

charlesxu@comtech.cn