ZHCAE42 June   2024 AM6442

 

  1.   1
  2.   摘要
  3.   商标
  4. 1缩写
  5. 2引言
    1. 2.1 外设组件快速互连
      1. 2.1.1 PCIe 通信的元件
        1. 2.1.1.1 根复合体
        2. 2.1.1.2 中继器
        3. 2.1.1.3 端点
      2. 2.1.2 信号
        1. 2.1.2.1 PERST
        2. 2.1.2.2 WAKE 和 CLKREQ
        3. 2.1.2.3 REFCLK
      3. 2.1.3 PCIe 常见用途
      4. 2.1.4 PCIe 聚合吞吐量
    2. 2.2 AM64x 和 AM243x 上的 PCIe 特性
  6. 3x86 作为 RC,AM64x 作为 EP
    1. 3.1 硬件环境
    2. 3.2 软件环境
      1. 3.2.1 构建应用程序
      2. 3.2.2 用法
  7. 4测试设置
    1. 4.1 适用于 LINUX 和 WIN 的通用设置
    2. 4.2 Linux 驱动程序(VFIO)
      1. 4.2.1 先决条件
      2. 4.2.2 构建
      3. 4.2.3 部署
    3. 4.3 测试应用程序使用情况
    4. 4.4 LINUX PC 的设置步骤
      1. 4.4.1 UART 控制台输出
    5. 4.5 MSI 示例
    6. 4.6 Windows PC 的设置步骤
      1. 4.6.1 先决条件
      2. 4.6.2 构建
      3. 4.6.3 部署
  8. 5PCIe 测试规范
    1. 5.1  标识和配置功能
      1. 5.1.1 测试用例
    2. 5.2  基准时钟功能
    3. 5.3  入站 ATU 和 BAR 功能
    4. 5.4  出站 ATU 功能
    5. 5.5  MSI 功能
    6. 5.6  下行中断功能
    7. 5.7  器件电源管理状态功能
    8. 5.8  功能级复位机制
    9. 5.9  传统中断机制
    10. 5.10 MSI-X 功能
    11. 5.11 热复位机制
  9. 6Windows 示例驱动程序验证
  10. 7参考资料

入站 ATU 和 BAR 功能

测试

说明

进行测试以验证 TMDS243EVM/TMDS64EVM PCIe EP 的 PCIe 入站 ATU 和 BAR 配置是否正常工作。

默认情况下,在 SysConfig 中为 pcie_enumerate_ep 示例应用程序设置了以下 BAR 配置:

  1. 入站地址转换 0:
    此 ATU 配置使用区域索引 0,该区域索引具有一个链接到外部结构 bar0_mem 的 32Kb 不可预取 32 位存储器 BAR。无法为该测试修改此入站 ATU 配置,因为它是确保基于 RC VFIO 的示例应用程序 ti-sample-vfio 正常运行所必需的。
  2. 入站地址转换 1:
    此 ATU 配置使用区域索引 1,该区域索引具有一个链接到外部数据缓冲区 bar1_data 的 64MB 可预取 32 位存储器 BAR。可以为此测试修改入站 ATU,因为它专门用于测试各种 BAR 配置。
  3. 入站地址转换 2:
    此 ATU 配置使用区域索引 2,该区域索引具有一个链接到外部数据缓冲区 bar2_data 的 1Gb 不可预取 64 位存储器 BAR。可以为此测试修改入站 ATU,因为它专门用于测试各种 BAR 配置。

执行:

  1. 在 SysConfig 文件中为 pcie_enumerate_ep 应用程序的入站地址转换 1 和 2 设置所需的 BAR 配置。
  2. 检查所需的 PCIe EP BAR 是否在基于 Linux 的 RC 硬件上正确配置。启动时,配置的 BAR 可在 PCIe 配置空间中显示为禁用,如下图所示:
    AM6442
  3. 运行 RC 示例应用程序 ti-sample-vfio。打开第二个 Linux 终端并检查 PCIe EP 配置空间。当程序在 EP 初始化和 BAR 映射后停止时,相应的 BAR 现在可被启用(未显示为禁用)。
    AM6442
  4. 继续执行 RC 示例应用程序 ti-sample-vfio。程序可以正常继续并在没有任何故障的情况下结束。
    AM6442

测试

说明

进行测试以验证 TMDS243EVM/TMDS64EVM PCIe EP 的 PCIe 入站 ATU 和扩展 BAR 配置是否正常工作。

为此,为 PCIe EP 定义了多达 6 种不同的 BAR 配置:

  1. 入站地址转换 0:
    此 ATU 配置使用具有 32Kb 不可预取 32 位存储器 BAR 的区域索引 0。
  2. 入站地址转换 1:
    此 ATU 配置使用具有 32Mb 可预取 32 位存储器 BAR 的区域索引 1。
  3. 入站地址转换 2:
    此 ATU 配置使用具有 512Mb 不可预取 32 位存储器 BAR 的区域索引 2。
  4. 入站地址转换 3:
    此 ATU 配置使用具有 128 字节 32 位 I/O BAR 的区域索引 3。
  5. 入站地址转换 4:
    此 ATU 配置使用具有 1Kb 32 位 I/O BAR 的区域索引 4。
  6. 入站地址转换 5:
    此 ATU 配置使用具有 8Kb 32 位的区域索引 5。I/O BAR。

执行:

  1. 在 Sysconfig 文件中为 pcie_enumerate_ep 应用程序设置所述的 BAR 配置。
  2. 检查所需的 PCIe EP BAR 是否在基于 Linux 的 RC 硬件上正确配置。启动时,配置的 BAR 可在 PCIe 配置空间中显示为禁用,如下图所示:
    AM6442
  3. testbars 参数运行 RC 示例应用程序 ti-sample-vfio。打开第二个 Linux 终端并检查 PCIe EP 配置空间。当程序在 VFIO 初始化后停止时,相应的 BAR 现在可以启用(未显示为已禁用),如下图所示。
    AM6442
  4. 继续执行 RC 示例应用程序 ti-sample-vfio。该程序可执行扩展 BAR 测试和输出 BAR 信息,如下图所示。
    AM6442