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.

[参考译文] AM6442:如何配置 AM6442 上的 DMASS0_PKTDMA_0 流量索引 16 和 R5FSS0 内核 0 IRQ 8 之间的中断路由

Guru**** 2652575 points

Other Parts Discussed in Thread: AM6442, SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1577364/am6442-how-to-configure-interrupt-route-between-dmass0_pktdma_0-flow-index-16-and-r5fss0-core-0-irq-8-on-am6442

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

我正在使用 AM6442 进行设计。   

我正在使用 UDMA 将以太网数据包 RX 通过 DMA 从 CPSW3G 内核传输到 R5FSS0 内核 0、以 UDMA 作为将数据包从 CPSW3G 获取到存储器中的路径、R5F 可以从中访问这些数据包。  该部件都是正确的工作。  我可以发送和接收以太网数据包、而不会出现任何问题。

我想配置一个 RX 中断以供 IRQ 8 上的 R5FSS0 CORE0 使用。

从硬件的角度来看、TRM 显示...

1) 我的 RX 队列的 DMA 完成应该会生成一个全局事件。

2) 使用 DMASS0_INTAGGR_0_uentry0_MAP_J 寄存器将全局事件转换为本地事件 ID(根据 SPRUIM2H 第 6263 页)。

3) 然后使用 DMASS0_INTAGGR_0_ENTRY_IMPA_J 寄存器将本地事件 ID 映射到 VINT。

4) 根据 SPRUIM2H 表 9-61(第 5793 页)、VINT 72 连接到 R5FSS0 内核 0 NVIC 上的 IRQ 8。

我按如下方式配置了 DMA。

数据包 DMA 通道 16 用于以太网 RX。

振铃指数= 128

RX 源线程= 0x4500

RX 目标线程= 0x9010

RX 流程索引= 16

DMA 本身运行正常。  R5FSS0 内核 0 NVIC 中断控制器可以处理我的所有其他中断。  

第一个问题是、INTAGGR 寄存器都被锁定在防火墙后面、因此我实际上无法对它们进行配置。  根据 TISCI 文档、  可以使用 TISCI_MSG_RM_IRQ_SET 消息来配置 INTAGGR。  

我曾尝试使用 TISCI_MSG_RM_IRQ_SET、并使用  

.valid_params = 0b111100

.src_id = 30 (DMASS0_PKTDMA_0)

.src_index = 16(以太网流索引)

.iA_id = 28 (DMASS0_INTAGGR_0)

.vint =72(因为我使用的是 vint72)

.vint_STATUS_BIT_INDEX = 8(因为 72-64=8)

.global_event = 5648

但出于某种原因、我从 DMSC 获得了 NACK、因此无法配置中断。

我成功使用 TISCI_MSG_RM_IRQ_SET 在设计的另一部分中配置 GPIOMUX_INTROUTER0。  因此、我知道我使用此消息的方法是有效的。

我怀疑这个问题是我对 TISCI 调用的论据、但很难找到这些论据应该是什么的信息。

例如、文档中没有说明数据包 DMA 事件的全局事件 ID 应该是什么。  TISCI 文档中列出了一些全局 事件范围、其中显示了 RX 流完成事件的范围为 5632 到 5807、但并不表示如果我使用流程 16、事件 ID 为 5632 + 16。  因此、我不确定该器件。

希望您能提供任何帮助。

另请注意、我 根本不使用 SysConfig 或 MCU+ SDK、因此请勿建议使用这些组件的解决方案。  我只想澄清在这种给定情况下如何使用 TISCI_MSG_RM_IRQ_SET。  由于 MCU+未经过安全认证、因此无法在此应用中使用。

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

    您好、域专家在接下来的几天内不在办公室。 请期待收到延迟的回复。  如果您 在下周中旬之前没有收到回复、请随时 ping 通此主题。

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

    Ping。

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

    有没有人有机会看看这个?

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

    您好、

    我现在从假期回来、将查看此查询。 请期待下周初收到回复。

    此致、

    Tushar

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

    您好 Andrew、

    您能帮助我更好地理解您的查询吗?

    CPSW 3 正在触发 DMA RX 中断、同样、您是否要在 IRQ8 线路上生成另一个中断?

    您是否希望两个 IRQ 具有相同的 CPSW 中断?

    此致、

    Anil.

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

    “您能帮助我更好地理解您的查询吗?

    CPSW 3 正在触发 DMA RX 中断、同样、您是否要在 IRQ8 线路上生成另一个中断?“

    在这种情况下、我不直接从 CPSW3G 产生中断。  CPSW3G 本身中启用的所有中断都已关闭。

    我已配置 PKTDMA、以从 CPSW3G 获取数据包并将其移动到主存储器中。   PKTDMA RX 本身正在工作。  我可以接收数据包、没有问题。  

    我要做的是能够 根据 PKTDMA RX 完成产生中断。  产生中断的 DMA、而不是 CPSW3G。

    “您希望两个 IRQ 具有相同的 CPSW 中断吗?“

    编号  我只想在 R5FSS0_CORE0 NIVIC IRQ 线路 8 上产生一个中断、该中断由 DMA 使用 VINT 生成。

    AM6442 TRM (SPRUIM2H) 表 11-56(第 5982 页)说明 PKTDMA Rx 将生成事件、我可以通过中断聚合器将该事件路由到系统中的其他点。  

    根据 TRM 中的信息、我想我知道如何手动配置中断聚合器、但 DMSC 将寄存器锁定在防火墙后、因此、当我最初尝试配置它们时、无法写入这些寄存器。  因此、我必须使用 TI_SCI 调用来要求 DMSC IT 配置中断路由。  但是、当我尝试调用  TISCI_MSG_RM_IRQ_SET 时、DMSC 会拒绝该消息(发送 NACK)。

    我的主要问题是 TISCI_MSG_RM_IRQ_SET 有哪些正确参数、使我能够在 PSIL 线程 0x9010、 R5FSS0_CORE0 上的流程索引 16 和 IRQ8 上配置 PKTDMA RX 完成事件之间的路由。  该中断线 在 TRM 第 5793 页的表 9-61 中称为 DMASS0_INTAGGR_0_INTAGGR_VINTR_PEND_72。

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

    您好、Andrew、

    如果您在 DMA 传输完成后寻找中断触发、您可以查看 UDMA 的事件回调功能。 这将在 DMA 传输完成后触发。 您可以浏览'UDMA_eventIsrFxn'函数的功能、了解有关事件触发条件的更多详细信息。 UDMA 驱动程序已配置中断路由。 用户只需将所需的回调函数链接到 DMA 即可。

    要配置 DMA 完成事件、您可以使用'UDMA_eventRegister' API、该 API 将配置 eventIsrFxn、该事件将在 DMA 传输完成时触发。

    如果您需要有关此方面的更多详细信息、请告知我们。

    谢谢。此致、
    Teja。

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

    我的特定应用需要满足 Do178 等软件安全认证。  MCU+ SDK 和 SysConfig 未经过安全认证。  因此、我们无法在我的特定项目中使用它们。  因此我无法访问 我的项目中的 UDMA_eventIsrFxn () 函数。

    我已经了解如何配置 UDMA(我已经根据 TRM 从头编写了自己的驱动程序,他们工作正常)。  我的主要问题是 DMSC 具有用于路由锁定在防火墙后面的事件的寄存器、因此我无法更改它们。   我真的很希望找人能够回答我有关 TISCI 调用的问题。  由于 DMSC 是一种黑盒、因此我无法调试传入的内容或在配置中断路由时所需的参数。

    我能够针对其他一些中断路由调用 TISCI_MSG_RM_IRQ_SET、但 DMSC 对参数非常特殊。  而且、虽然有文档、但它很小、并且没有针对特定情况的很多实际示例。

    我想我可以查看 GitHub 上的 UDMA_eventIsrFxn 源代码、并对其进行逆向工程。  因为它最终 必须对  我尝试的 TISCI_MSG_RM_IRQ_SET 进行相同的调用。

     sciclient_rm.h 中的注释中显示了一些 不在 TISCI 文档中的信息。

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

    您好、Andrew、

    查看 UDMA_eventRegister 函数将有助于理解参数、但根据您的情况、还需要用户在本机 MCU+ SDK 中进行沙盒实验。 我明白这对你来说是很困难的。 但目前、我建议大家检查事件寄存器 API 流程、同时在内部检查所需的配置。  

    但是、由于我当前在其他任务中的参与、需要至少 3-4 个工作日才能向您提供对您有价值的信息。 请告诉我这个时间线是否适合您。  

    谢谢。此致、
    Teja。

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

    如果您需要几天时间来了解信息、这不是问题。  我感谢你能给予的任何帮助,只要你能给予它。

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

    您好、Andrew、  

    感谢您的耐心。 获取更多有关此主题的信息后、我会更新该主题。  

    谢谢您、
    Teja。