ZHDA251 July   2026 AFE7900 , AFE7901 , AFE7903 , AFE7906 , AFE7950 , AFE7950-SP , AFE7951 , AFE7953 , AFE7954 , AFE7955 , AFE7958

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
  5. 2Linux 内核驱动程序
    1. 2.1 使用 PetaLinux Tools 的 Linux 内核驱动程序
    2. 2.2 使用 Yocto Project 的 Linux 内核驱动程序
      1. 2.2.1 Yocto Project 概述
      2. 2.2.2 主机系统要求
      3. 2.2.3 设置 Yocto 构建环境
      4. 2.2.4 配置板卡专用层
      5. 2.2.5 集成 AFE79xx Yocto 层
      6. 2.2.6 验证集成
      7. 2.2.7 故障排查
    3. 2.3 准备 Linux 引导映像
    4. 2.4 从用户空间运行 AFE79xx 器件
  6. 3在应用层构建 AFE79xx SDK
    1. 3.1 使用 PetaLinux Tools 构建不含 AFE79xx SDK 的 Linux 内核
    2. 3.2 在用户空间中集成 SPI 与 AFE79xx
  7. 4面向 ZCU102 FPGA 的参考设计(含处理器和 SPI)
    1. 4.1 配置 Zynq 处理器
    2. 4.2 配置 SPI 接口
    3. 4.3 生成硬件描述
    4. 4.4 使用 SD 卡引导 ZCU102 板
  8. 5总结
  9. 6参考资料

配置板卡专用层

第 1 步:下载板卡专用层

每个硬件平台都需要对应的 BSP 层,为该板卡提供机器配置、内核和引导加载程序配方。BSP 层通常由板卡或 SoC 供应商提供,并需单独克隆。请查阅板卡供应商的文档,确定与所选 Yocto 版本兼容的正确 BSP 层和分支。

对于基于 Xilinx 的平台,相关层包括 meta-xilinx、meta-xilinx-bsp、meta-xilinx-standalone 和 meta-xilinx-tools,均可从 Xilinx GitHub 存储库获取。对于其他平台,如 Raspberry Pi、NXP 或 Intel,应使用供应商提供的等效 BSP 层。我们可以使用 git clone 获取这些层,示例如下:

Xilinx

 git clone -b langdale https://github.com/Xilinx/meta-xilinx.git
git clone -b langdale https://github.com/Xilinx/meta-xilinx-tools.git

Intel - Altera

git clone https://git.yoctoproject.org/meta-intel-fpga

此外,许多 BSP 层依赖 OpenEmbedded 层集合 (meta-openembedded) 中的软件包。同样克隆该集合的对应分支:

 git clone -b langdale https://github.com/openembedded/meta-openembedded.git

第 2 步:添加层

使用 bitbake-layers 命令将所有必需的层添加到构建中。所需的确切层集取决于目标板卡。至少必须包含核心 Poky 层、板卡 BSP 层和 AFE79 层。仅上一步克隆的层才可使用以下命令添加:

 bitbake-layers add-layer <Path_to_layer>

例如,在 ZCU102 上需要以下层:

 bitbake-layers add-layer ~/yocto-zcu102/meta-xilinx/meta-xilinx-core
 bitbake-layers add-layer ~/yocto-zcu102/meta-xilinx/meta-xilinx-bsp
 bitbake-layers add-layer ~/yocto-zcu102/meta-xilinx/meta-xilinx-standalone
 bitbake-layers add-layer ~/yocto-zcu102/meta-xilinx-tools
 bitbake-layers add-layer ~/yocto-zcu102/meta-openembedded/meta-oe
 bitbake-layers add-layer ~/yocto-zcu102/meta-openembedded/meta-python
 bitbake-layers add-layer ~/yocto-zcu102/meta-openembedded/meta-networking
 bitbake-layers add-layer ~/yocto-zcu102/meta-openembedded/meta-multimedia

使用以下命令确认所有必需的层处于活动状态。

 bitbake-layers show-layers

第 3 步:添加硬件描述文件和目标机器

许多 Yocto BSP 工作流需要一个硬件描述文件,用于捕获目标平台的完整硬件设计。Yocto 通过 local.conf 格式使用硬件描述文件,自动为特定硬件设计生成正确的 FSBL、PMU 固件和器件树。

conf/local.conf 接受硬件描述文件路径和机器变量,以正确提供构建配置。

打开构建目录中的文件 <project_directory/build_directory>/conf/local.conf,将 MACHINE 变量设置为与目标板卡对应的标识符。该标识符在板卡 BSP 层中定义。例如,ZCU102 板使用标识符 zcu102-zynqmp。

.

请参考板卡 BSP 文档获取正确的机器名称。

Xilinx 使用 .XSA 文件,Intel 使用 SOPC 信息文件。

对于 Xilinx:

将 XSA 文件放在主机系统上的已知位置。建议位置是在自定义层内:

meta-afe79/recipes-bsp/hdf/files/

然后在构建目录的 <project_directory/build_directory>/conf/local.conf 文件中添加以下行,将路径和文件名替换为您的 XSA 文件路径及机器变量:

MACHINE ??= "zcu102-zynqmp"
HDF_BASE = "file://"
FILESEXTRAPATHS:prepend:pn-external-hdf := "/absolute/path/to/meta-afe79/recipes-bsp/hdf/files:"
XILINX_RELEASE_VERSION = "v2023.2"
PREFERRED_VERSION_external-hdf = "2023.2"
LICENSE_FLAGS_ACCEPTED += "xilinx"
注:

XILINX_RELEASE_VERSION 必须与生成 XSA 文件的 Vivado 版本匹配。Vivado 2023.2 生成的 XSA 需要 XILINX_RELEASE_VERSION =“v2023.2”。使用不匹配的版本会导致 XSCT 工具处理硬件描述时失败。

根据特定 BSP 层的要求配置硬件交接路径。请参考 BSP 层 README 文件获取正确的变量名和路径格式,因为这些信息在不同供应商平台代际之间会有所不同。