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参考资料

MSI 功能

测试

说明

进行测试以验证 MSI IRQ 是否从 PCIe EP 正确发送到 RC 配置的地址。

执行:

  1. 运行 PCIe EP 应用程序 pcie_enumerate_ep
  2. 运行基于 Linux 的 RC 测试应用程序 ti-sample-vfio
  3. 检查两个程序的状态。当 ti-sample-vfio 等待 PCIe EP 在指定地址发送 MSI IRQ 时,它可以终止而不会出现任何故障,从而确保 PCIe EP MSI 机制功能正常。

测试

说明

进行测试以验证是否在 PCIe RC 中正确确定了 PCIe EP 中可用的不同 MSI IRQ(支持多消息)数量上限,以及是否可以从 RC 请求更少数量的所需 MSI IRQ(启用多消息)。

执行:

  1. 运行 PCIe EP 应用程序 pcie_enumerate_ep,将 MSI IRQ 的默认数量设置为 16。
  2. 在基于 Linux 的 RC 硬件上,检查偏移为 90 时的 PCIe EP MSI 功能。MSI 功能可以通过将计数设置为 1(总共为 16)来禁用,如下图所示。
  3. 运行基于 Linux 的 RC 测试应用程序 ti-sample-vfio。将所配置的 MSI IRQ 的默认数量作为要作为第五个参数进行测试的所需 MSI IRQ 数量传递:
    sudo ./ti-sample-vfio 9 0 0 19 16
  4. 按 Enter 继续运行 ti-sample-vfio,直到程序在以下状态输出时停止:Initialize MSI test.Expect 16 distinct MSI IRQs
  5. 打开第二个 Linux 终端并检查偏移为 90 时的 PCIe EP MSI 功能。MSI 机制可以通过计数 16 来启用,如下图所示。
  6. 继续运行 ti-sample-vfio。程序可以正常继续,使用 16 个 MSI IRQ 执行扩展 MSI 测试,并在不出现任何故障的情况下结束,如下图所示。
  7. 运行基于 Linux 的 RC 测试应用程序 ti-sample-vfio。将要测试的 MSI IRQ 数量配置为小于默认数量,例如 8:
    sudo ./ti-sample-vfio 9 0 0 19 8
  8. 按 Enter 继续运行 ti-sample-vfio,直到程序在以下状态输出时停止:
    1. Initialize MSI test. Expect 8 distinct MSI IRQs。
  9. 检查第二个 Linux 终端上偏移为 90 时的 PCIe EP MSI 功能。MSI 功能可以通过计数 8(总共为 16)来启用,如下图所示。
  10. 继续运行 ti-sample-vfio。程序可以正常继续,使用 8 个 MSI IRQ 执行扩展 MSI 测试,并在不出现任何故障的情况下结束,如下图所示。
  11. 在基于 Linux 的 RC 硬件上,检查偏移为 90 时的 PCIe EP MSI 功能。MSI 功能可以通过将计数设置为 1(总共为 16)来禁用,如下图所示。
    AM6442

测试

说明

测试以验证是否在 TMDS243EVM/TMDS64EVM PCIe EP 上正确禁用了每个矢量屏蔽的 MSI。

执行:

  1. 在基于 Linux 的 RC 硬件上,通过 Linux 终端检查 PCIe EP MIS 功能。可屏蔽字段可被禁用,如下图所示。
    AM6442