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.

[参考译文] TDA2HG:PCI Express root complex

Guru**** 2588945 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/634346/tda2hg-pci-express-root-complex

器件型号:TDA2HG

您好!

1. PCIe 根复合体中的根端口和虚拟根端口之间的区别是什么?

Tda2xx 平台中 PCIe 根复合体的可配置地址空间大小是多少?

PCIe 规范中提到 PCIe 地址空间是虚拟地址空间。 我们是否已将任何系统地址分配给此 PCIe 地址空间?

在 Starterware PCIe write_loopback 示例中、数据从 RC 器件传输到 EP 器件、反之亦然。

您能解释一下当我们将数据写入出站区域- 0x25000000时、数据将如何传输到 EP 器件吗?  

提前感谢!!


此致、
Deepa

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

    我已将您的问题转交给 PCIe 专家进行评论。

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

    1.我不熟悉虚拟根端口。

    2. 4GB 入站,256MB 出站。

    3.从 PCIe 地址空间到 SoC 地址空间的映射完全可由软件使用地址转换单元(ATU)进行配置

    4 、地址转换单元(ATU)由软件编程、将对 PCIe 出站窗口的访问转换为所需的 PCIe 地址空间。

    有关更多详细信息、请参阅 TRM 部分的"L3_MAIN 互连上的 PCIe 控制器端口"。

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

    感谢您提供详细信息。
    您能否举例说明如何使用 ATU 将 SOC RAM 映射到 PCIe 地址空间?
    出站和入站区域与此映射有何关系?

    我能否使用开关将多个 PCIe 端点连接到 J6 PCIe 控制器?

    提前感谢

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

    有关为入站和出站事务配置地址转换的详细信息、请参阅 TRM 的"PCIe 控制器地址空间和地址转换"和"PCIe 流量请求和响应"部分。

    此外、请参考 TDA2xx Starterware 和 Processor SDK PCIe 示例以获取代码示例。

    J6无需交换机即可连接到每个 PCIe 控制器的一个 PCIe 端点。

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

    感谢您的回复。
    我已经了解了 J6 TRM 和 Starterware 示例代码库。 但无法理解这些细节
    您能否举例说明如何使用 ATU 将 SOC RAM 映射到 PCIe 地址空间?
    出站和入站区域与此映射有何关系?
    如果有人用一个例子来解释我、那将非常感激

    提前感谢

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

    以下是将 从 PCIe 地址0x1100_0000到 OCMC_RAM1地址0x4030_000的访问转换为 OCMC_RAM1地址0x4030_000的示例入站地址转换配置(地址匹配模式):

    步骤

    说明

    寄存器

    注释

    1

    写入索引寄存器以选择要编程的区域

    PCIECTRL_PL_IATU_INDEX

    0x8000_0000

    内向地区0

    2.

    向基址寄存器写入该区域所需的 PCIe 基址

    PCIECTRL_PL_IATU_REG_LOW_BASE

    PCIECTRL_PL_IATU_REG_UPPER

    0x1100_0000

    0x0

    PCIe 地址空间

    3.

    向限制寄存器写入该区域所需的 PCIe 窗口大小

    PCIECTRL_PL_IATU_REG_LIMIT

    0x0000_FFFF

    PCIe 地址空间

    4.

    向目标寄存器写入所需的 SoC 地址

    PCIECTRL_PL_IATU_REG_LOW_TARGET

    PCIECTRL_PL_IATU_REG_UPPER 目标  

    0x4030_0000

    0x0

    对应于 OCMC_RAM1

    5.

    根据需要配置该区域

    PCIECTRL_PL_IATU_REG_CTRL_1

    0x0

    默认设置

    6.

    启用该区域

    PCIECTRL_PL_IATU_REG_CTRL_2

    0x8000_0000

    地址匹配模式

    7.

    对其它区域重复1-6

     

     

     

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

    感谢您的回复。 这说明了通信一端的入站配置。
    在地址匹配模式期间、不需要条形图配置? 地址匹配模式如何工作?
    您能解释一下其他通信结束时的出站配置吗?

    提前感谢!!

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

    Deepa、

    下面是一个出站配置示例:

    步骤

    说明

    寄存器

    注释

    1

    写入索引寄存器以选择要编程的区域

    PCIECTRL_PL_IATU_INDEX

    0x0

    出站区域0

    2.

    在 PCIe_SSX 配置空间中向基址寄存器写入所需的 SoC 基址偏移量。

    PCIECTRL_PL_IATU_REG_LOW_BASE

    PCIECTRL_PL_IATU_REG_UPPER

    0x0100 0000

    0x0

    对应于 SoC 地址0x2100_0000 (假设为 PCIe_SS1)

    3.

    向 LIMIT 寄存器写入该区域所需的窗口大小。

    PCIECTRL_PL_IATU_REG_LIMIT

    0x000 FFFF

    对应于 SoC 地址0x2200_0000 (假设为 PCIe_SS1)

    4.

    向目标寄存器写入所需的 PCIe 地址

    PCIECTRL_PL_IATU_REG_LOW_TARGET

    PCIECTRL_PL_IATU_REG_UPPER 目标  

    0x1100 0000

    0x0

    PCIe 地址空间

    5.

    根据需要配置该区域

    PCIECTRL_PL_IATU_REG_CTRL_1

    0x0

    默认设置

    6.

    启用该区域

    PCIECTRL_PL_IATU_REG_CTRL_2

    0x8000'0000

    地址匹配模式

    7.

    对其它区域重复1-6

     

     

     

    作为根复合体、地址匹配模式是地址转换的标准方法。  它只是在 SoC 地址空间和 PCIe 地址空间之间直接转换。

    此致、

    Brad

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

    感谢您提供详细信息。

    1.您能解释地址匹配模式和条形配置模式之间的区别吗?

    在 Starterware 示例中、在测试 WRITE_LOOPTM PCIe 示例时、我们通过 PCIe 链路连接 J6 EVM。 一个 J6 EVM 配置用于 RC、另一个用于端点。 RC 默认连接到总线0、EP 将在枚举后连接到总线1。 PCIe 地址空间将由总线编号、器件编号、功能编号和 Cfg 寄存器地址决定。
    在 EP_WRITE_Roopback _app_main.c 文件中、outbound PCIe 地址为0xB0000000U、inbound PCIe 地址为0xA0000000U、其中、如 RC_WRITE_Roopback _app_main.c 文件 outbound PCIe 地址为0xA0000000U、inbound PCIe 地址为0xB0000000U。 在这两种情况下、总线编号都定义为"0"。
    您能否解释一下在 RC 和 EP STW 示例中如何确定出站和入站 PCIe 地址空间?

    提前感谢!!

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

    Deepa、

    在条形匹配模式下、不使用基准寄存器和限值寄存器。  而是使用所选栏定义的地址。

    2.在 PCIe 中、RC 和所有连接的 EPS 使用一个共用/统一的 PCIe 地址空间。  因此、在 Starterware 中、RC 的出站地址配置为与 EP 的入站地址相同、反之亦然。

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

    感谢您提供详细信息。
    1.您能否指向使用条形匹配模式的示例?
    2.是的、我可以理解 RC 的出站地址配置为与 EP 的入站地址相同、反之亦然。
    我想知道如何在 starterware 示例中确定 outbound PCIe 地址(0xB0000000U)和 inbound PCIe 地址(0xB0000000U)? 根据确定该 PCIe 地址的哪些参数?

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

    Deepa、

    1.条形匹配模式遵循相同的基本顺序,但以下情况除外:

    -不需要对基址寄存器和限制寄存器进行编程

    -应在 PCIECTRL_PL_IATU_REG_CTRL_2寄存器中对条匹配模式以及所需的条码进行编程

    对该条的所有访问都将重新映射到编程的目标地址。

    2.出站和入站地址被任意挑选。  它们可以是 PCIe 地址空间中的任何地址。