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.

[参考译文] TDA4VH-Q1:PCIE_DAT2 地址

Guru**** 2538930 points
Other Parts Discussed in Thread: AM62P, AM67

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1552782/tda4vh-q1-pcie_dat2-address

器件型号:TDA4VH-Q1
Thread 中讨论的其他器件:TDA4VHAM62PAM67

工具/软件:

您好、

在 TDA4VH TRM 中有关 PCIe CBA 基础设施的段落中、介绍了 PCIE_DAT2 区域“用于将 Casel 不等于零的所有请求路由到 PCIe 控制器从端口“。

其中是该区域的地址、因为它既未在 TRM 存储器映射中列出、也未在 Excel 文件中列出。

提前感谢、

JPH

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

    尊敬的 JPH:

    我也找不到信息。 让我在内部对此进行检查。

    此致、

    Takuma

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

    尊敬的 Takuma:

    您是否获得了有关此主题的信息?

    谢谢、

    JPH

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

    尊敬的 JPH:  

    没有有关 PCIE_DAT2 的信息。 了解我们旧器件的 TRM 和 TRM、这些旧器件重复使用相同的 IP。 对于我查看的所有内容、PCIE_DAT2 只在您找到的单个段落中提到。

    软件驱动程序 也仅定义 DAT0 和 DAT1 空间。

    此致、

    Takuma

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

    尊敬的 JPH:

    所以,我从更广泛的团队得到了一些信息。 PCIe_DAT2 主要用于地址转换旁路、因此该区域没有特定地址。 该窗口是 48 位本地地址空间中的 2^48 字节窗口、器件地址和 PCIe 地址之间不会发生转换。 这就是为什么没有与 Excel 工作表中列出的 DAT0 和 DAT1 空间类似的存储器区域的原因。

    此致、

    Takuma

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

    尊敬的 Takuma:

    感谢您提供此信息。

    我知道当 DMA 的 Casel(或 ASEL?)时 字段已设置、 我可以使用任何 48 位地址来访问从器件 PCIe 控制器。 我明白了吗?

    如果是、这意味着如果我的 PCIe 结构使用 64 位寻址、我将只能对 16 个最高有效地址位为 0 的端点进行寻址。 是这样吗?

    谢谢、

    JPH

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

    尊敬的 JPH:

    非零 ASEL 值将导致出站 ATU 旁路。 当 PCIe 控制器用作端点并需要从远程根复合体的存储器读取或写入时、这会很有用。 如果没有出站 ATU 旁路、则必须设置出站 ATU、以便将本地 (EP) 地址读取/写入事务转换为针对远程根复合体存储器的 PCIe 总线地址事务。 使用 ATU 旁路时、本地地址可以与远程根复合体的存储器本身相同、但 ASEL 位除外、该位将在通过 PCIe 链路发送地址而不进行转换之前被删除 — 本地地址的位 0 至 47 也将用作 PCIe 链路上的读取/写入事务地址。

    PCIen_DAT0 => 32 位本地地址空间中的 128MB 窗口=>由 ATU 转换、以生成一个针对 PCIe 根复合体存储器中的缓冲区的地址
    PCIEN_DAT1 =>由 ATU 转换的 64 位本地地址空间中的 4GB 窗口=>生成一个针对 PCIe 根复合体存储器中缓冲区的地址
    PCIen_DAT2=> 48 位本地地址空间中的 2^48 字节窗口=>未转换地址、该地址与 PCIe 根复合体的存储器中的缓冲区地址相同

    此致、

    Takuma

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

    尊敬的 Takuma:

    感谢您的澄清。

    我只需要有关 ASEL 位的额外信息:阅读您的句子,似乎 ASEL 位与 目标地址位于同一个字中,并且它将被硬件删除。

    用户是否必须在地址字中设置该位? 在哪个位置? 我没有在任何地方阅读这些信息。

    谢谢、

    JPH

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

    尊敬的 JPH:

    每个地址的位 48 到位 51 对应于 ASEL。 T.R.M.中记录的 SOC 存储器映射对应于 ASEL 0。 ASEL 1 是 PCIE0 的 DAT2、ASEL 2 是 PCIE1 的 DAT2、依此类推。  

    与大多数其他接口类似、PCIe 相关驱动器/dts 目前仅使用 0 作为 ASEL。 我知道 Linux SDK 中不使用非零 ASEL 的主要示例是 J722S/AM62P 的 CPSW DTS、它使用 DMA 属性中的 ASEL 值 15 将数据路由到 ACP 以实现高速缓存一致性: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi?h=ti-linux-6.12.y#n711

    此致、

    Takuma  

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

    尊敬的 Takuma:

    再次感谢、您的回答非常有趣、我没有收到这些信息。

    是否有详细说明 ASEL 主题的文档?  

    如果您在 C7x 上有非零 ASEL 示例、我会感兴趣。

    谢谢、

    JPH

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

    尊敬的 JPH:

    我对 ASEL 的理解是、对于 AM67、AM64、AM62P 以及其他 Sitara 系列器件、如果 A 内核集群前面没有 MSMC 存储器、因此数据可以路由到 ACP 以实现高速缓存一致性、也与 PCIe 相关、以便实现地址转换旁路。 我在上一个响应中分享的示例是针对 J722S (AM67) 和 AM62P、以展示如何在器件树中设置 ASEL。 TDA4VH 有一个 MSMC、因此不需要使用 ARM A 内核的 ACP。

    因此、我们没有任何使用非零 ASEL 的 C7x 示例。

    此致、

    Takuma