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.

[参考译文] RTOS/EVMK2H:接收超链接

Guru**** 2616395 points

Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/580580/rtos-evmk2h-hyperlink-receive

器件型号:EVMK2H

工具/软件:TI-RTOS

您好!

    过去、我们在  Keystone 2 DMA 数据 上使用 Hyplnk 传输到 FPGA_1。   该地址从  Keystone 2上的 L2/DDR3转换 为 FPGA_1 DDR4。  KeyStone 2使用256MB 窗口来确认 FPGA_1上已到达的数据。  没有任何问题。

   现在、对于相同的 Keystone 2、 我们希望使用 FPGA_2从 Keystone2到 Hyplnk 读取数据。  我们执行了 与之前相同的初始化、我们从 Keystone 2的 FPGA_2变为 L2、我们得到的是所有"0"、而不是任何数据。  我们的问题是:

   1、  当为接收初始化 Hyplnk 时、 与为发送初始化 Hyplnk 是否存在配置差异?

   2、  如果我们在 Keystone2的.cfg 文件中将 Hyplnk setcmap 设置为 DDR3 (0xe000_0000)、当 FPGA_2出现时、他是否应该转到0xe000_0000而不是 L2?  

   3、  由于我们将 Hyplnk 配置为接收、  因此当 FPGA_2查看 数据时、Hyplnk 是否必须执行某些操作?

  此致

   Yoyo       

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

    我已通知超链接专家。 他们的反馈将在此处发布。

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

    "如果我们在 Keystone2的.cfg 文件中将 Hyplnk setcmap 设置为 DDR3 (0xe000_0000)、当 FPGA_2出现时、他是否应该转到0xe000_0000而不是 L2?" ===== >我不知道我们的代码中是否有 setcmap、您能澄清一下您在 Keystone II 上使用的 TI MCSDK 或处理器 SDK 版本吗? 您运行的是 Linux 还是 SYSBIOS? 在 DSP 内核或 ARM 内核上?

    从 Keystone 到 FPGA 的 DMA 数据时、您访问超链接256MB 区域0x4000_0000、它会转换为 FPGA 端的某个地址。 如果 K2和 FPGA 的超链接 IP 相同、则在 FPGA 侧配置了一些寄存器(请参阅 TI 超链接用户指南)、以将其映射到 L4 DDR:

    0x2C Rx 地址选择器控制第3.2.9节
    0x30 Rx 地址权限 ID 索引第3.2.10节
    0x34 Rx 地址权限 ID 值部分3.2.11
    0x38 Rx 地址段索引部分3.2.12
    0x3c Rx 地址段值第3.2.13节

    同样、当您执行 KeyStone II 的 FPGA 读取操作时、假设您访问 FPGA 侧的某些超链接存储器区域、则必须通过 KeyStone 侧的上述寄存器将其转换为另一个存储器(DDR、L2等)。 我不确定"Hyplnk setcmap to DDR3 (0xe000_0000) inside .cfg 中"如果您发现这实际上进入了 Keystone 2的 DDR、那么您可以将其修改为 L2全局地址(如果它有效)。 如果不是、您需要检查 Rx 寄存器的编程方式。 您可以查看我们的超链接测试示例\ti\drv\hyplnk\examples\common\hyplnkLLDIFace.c 函数 hyplnkExampleAddrMap()。

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

    尊敬的 Eric:

              我们正在使用 MCSDK 3.1.4.7并在 Linux 上运行。  "mpmcl"将允许代码运行每个 DSP 内核。  没有 TI 代码集超链接 Secmap 至 DDR3。  我们选择将超链接本地地址设置为 DDR3 (0xe000_0000)。  

               Keystone 2和 FPGA_1以及 FPGA_2的 IP 地址都不同。  "L4 DDR"是指 DDR4?  在 Keystone 2上、我们 将超链接 DDR3本地地址初始化为(0xe000_0000)。  我们还为每个内核初始化超级链接本地 L2地址、例如 core0_L2 AS (0x1082_0000)、core1_L2 AS (0x1182_0000)、core2_L2 AS (0x1282_0000)...等等。

               当我们从 Keyson2到 FPGA_1进行 DMA 时 、生成的".map"文件指示代码 未在  Keystone2上使用 DDR3、 但是、Hyplnk 的地址确实生效了、 它转到了 FPGA_1 、将其转换为  DDR4上的另一个地址、以便我们 验证数据。  

               现在、我们要使用 FPGA_2从  同一个 Hyplnk 读取数据。   根据您刚才所说的内容、 我们必须以不同的方式重新配置 Hyplnk、以实现我们的目标?  

             在 Hyplnk 初始化期间,我们 以 TI 的"hyplnkExampleAddrMap()"为例,分成两个函数。  一个用于本地地址转换、另一个用于远程地址转换。  

              对于 Keystone2、FPGA_2应该使用哪个地址? FPGA_2应该在 L2地址还是 DDR3中查找数据?

            此致

            Yoyo