器件型号:EVMK2H
工具/软件:Linux
您好!
我想在运行 Linux 的同时使用 DSP 内核作为网络应用的协处理器。 据我所知、我应该能够使用 PKTDMA 和 QMSS 将传入的数据包从10GB 路由到 DSP、并使用它在内核之间进行通信。 我找到了一些有关此主题及其工作原理的幻灯片、但我找不到任何同时包含 ARM 和 DSP 代码的代码。 即使我在这里找到了一个未响应的类似线程:
https://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/590922/2172476
因此、我希望通过 Linux 执行 QMSS 初始化、然后使用 DSP 上 PDK 的 PKTDMA 函数与 XGBE 以及 ARM 内核进行通信。 以下是我的问题:
1)根据我的理解、我应该通过用于 Linux 引导的 DTS 文件(在包含 qmss 初始化的 arch/arm/boot/dts/keystone-k2hk)-netcp.dtsi 中)设置 QMSS 参数。 我找到了 xgbe 的 TX 和 Rx 的设置队列编号、该编号现在对应于 ARM 中断。 但是、在阅读"KeyStone 架构多核导航器"时、我找不到 DSP 的任何中断队列、看起来我应该使用低优先级或高优先级累加器。 但是、我找不到高优先级代码。 DSP 是否有任何中断队列、或者如何更新 DTS 文件以在 DTS 文件中包含高优先级队列?
2) 2)将 DSP 队列添加到 DTS 文件后、我是否需要为 Linux 执行其他一些初始化步骤? 我认为我可以将 xgbe 的 Rx 接收和 TX 完整队列更改为指向 DSP 队列、并使用 ARM 中断队列从 DSP 到 ARM 进行通信。 或者、我应该使用 QMSS TX 队列来在 DSP 和 ARM 之间进行通信(它表示在内核之间、不确定是哪一个内核)? 或 EDMA 队列?
3) 3)我想将描述符有效载荷放置在 DSP L2高速缓存(SRAM)中、可以通过 DTS 或 Linux 初始化来实现吗? 还是 QMSS 的那一部分初始化需要通过 DSP 完成、因为它是本地存储器?
提前感谢您、
Moein