This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM2432:AM2432 PCIe 到 GPMC 桥接器:意外的额外 FPGA 访问

Guru**** 2815985 points

Other Parts Discussed in Thread: AM2432, SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1624335/am2432-am2432-pcie-to-gpmc-bridge-unexpected-extra-fpga-accesses

器件型号: AM2432
主题: SysConfig 中讨论的其他器件

大家好、我有一个关于 AM2432 上的 PCIe 和 GPMC 接口的问题。
我们当前的系统配置是 Host⇔AM2432⇔FPGA。
主机通过 PCIe 与 AM2432 通信、AM2432 通过 GPMC 与 FPGA 通信。
(GPMC 配置为 16‑位地址/数据多路复用,异步,单次访问。)
FPGA 地址空间的一部分暴露在 PCIe 地址空间中、以便主机可以访问它。
当主机对 FPGA 执行写入操作时、我们可以观察到每次写入看起来是三次虚拟访问。
PCIe 数据包长度为 4 字节。
由于我无法附加波形图像、因此这里提供了信号行为的文本说明。 当主机访问 FPGA 地址区域时、AM2432 会生成四个 GPMC 周期。 在这四个周期内、CS、ADV 和 AD 会在全部四个周期内切换、但 WE 信号仅在四个周期中的一个周期内置为有效(处于任意位置) 。
您是否会碰巧知道导致此行为的原因?
内部 CBASS 是否可能会将事务转换为 64‑位访问或类似内容?

就这些。 提前感谢您的支持。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    您能否分享您正在使用的软件库? 是 Linux、MCU+SDK 还是一些特定于您的用例的定制代码?

    此致、

    Lucas

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们正在基于适用于 AM243x 的工业通信 SDK–RTOS 版本:2025.00.00.08 的定制电路板上实现该功能。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您提供的信息、这将帮助我找到合适的资源。 我还有一些关于解决问题的小问题、您能否分享以下方面的详细信息:

    • 当您明确看到该问题时、主机在 AM2432 中访问哪些 GPMC 地址范围(或者更确切地说是 FPGA 地址范围)?  
    • 您如何在 PCIe 栏设置中映射地址范围?  
    • 此问题是否发生在特定地址、或者是否发生在任意尝试的地址上?

    此致、

    Lucas

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当您明确看到该问题时、主机在 AM2432 中访问哪些 GPMC 地址范围(或者更确切地说是 FPGA 地址范围)?
    >0x50000000~μ s。

    您如何在 PCIe 栏设置中映射地址范围?
    >很抱歉、我不是软件工程师、所以我不知道详细信息、但可以共享 SysConfig 的 PCIe 设置。
    如果需要更多详细信息、我会咨询软件团队。

    PCIe 实例:PCIe 0
    操作模式:EP 模式
    运行速度:第 2 代
    通道数: 1.
    基准时钟模式:外部基准时钟、无 SSC
    SRIS 配置:禁用
    传统中断引脚:无引脚
    MSI 引导程序数:1.
    入站地址转换
    地区指数: 1.
    事务层数据包类型:内存类型 TLP
    下基址:0x4000
    上基址:0x0
    下目标地址:0x50000000
    上限目标地址:0x0
    区域窗口大小:0x0
    条形孔径:16KB
    条形码配置:32 位内存条不可预取

    此问题是否发生在特定地址、或者是否发生在任意尝试的地址上?
    >在我们的系统中,主机当前仅访问 0x50001014。 当访问 0x50001014 时、这些地址在 4 个周期内转换为 1,010,101101210110141016、我们在 1014 时序处置为有效。
    在 GPMC 对 FPGA 的独立写入访问期间、不会发生此行为。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    当主机通过 PCIe 将 4 个字节写入地址 0x50001014(GPMC 区域)时、AM2432 生成 4 个 GPMC 周期、地址循环使用 0x1010、0x1012、0x1014、0x1016。 WE 信号仅在地址 0x1014 的周期内置为有效。

    我觉得观察到的行为是由 AM2432 互连中的内部总线宽度扩展引起的。

    PCIe 写入事务通过以下路径:

    PCI→内部互连→GPMC 控制器→外部总线

    内部互连将事务与 64 位(8 字节)边界对齐。 当一个 4 字节写入目标地址 0x50001014 时:

    1.互连与 8 字节边界 0x50001010 对齐
    2、生成一个 8 字节事务、字节使能仅指示有效字节(在 0x1014 处)
    GPMC 控制器将 8 字节事务转换为四个 16 位总线周期
    4、我们仅在包含有效数据的周期 (0x1014) 内置为有效

    要确认根本原因、请执行以下测试:

    测试 1:来自主机的不同写入大小:

    │主机写入大小:2 字节│预期的 GPMC 周期:4 个周期│预期的我们置为有效: 1 we  

    主机写入大小: 4 字节│ 预期的 GPMC 周期: 4 个周期│预期的我们置为有效: 2 我们  

    主机写入大小: 8 字节│预期的 GPMC 周期:4 个周期│预期的 WE 置为有效: 4 WE  

    请分享以上测试结果..

    此致、

    Anil.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的答复。
    在与软件团队进行检查后、我被告知无法更改主机、因此我将作为器件限制关闭此问题。