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.

[参考译文] AM6441:使用 A53 触发 RSS GPIO。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1609541/am6441-dmss-gpio-triggered-with-a53

器件型号: AM6441

因为我将以下代码添加 到 sciclient_default boardcfg_rm.c 中

    {
      num_resource = 2、
      .type = TISCI_RESASG_UTYPE (TISCI_DEV_MAIN_GPIOMUX_INTROUTER0、TISCI_RESASG_subtype_IR_OUTPUT)、
      start_resource = 16、
      .host_id = TISCI_HOST_ID_ALL、

    }、
并重新构建电路板配置。
显然、sciclient 正在进行更改并返回 OK。  


GPIO 引脚为 GPIO1_7  (从 osisiloscope,我们看到中断正确发送为低电平有效)
src_id = 3
src_index = 180、
DST_HOST_IRQ = 16  (AM64X_DEV_DMASS0_INTAGGR_0)
DST_HOST_IRQ = 3 (AM64X_DEV_MAIN_GPIOMUX_INTROUTER0)
GLOBAL_EVENT = 0xC418 (这是 L2G 全局事件)
Local_Event = 0x18  这是 L2G BLAOCK


rSciclient_rmIrqSetRaw 具有上述配置。
 

2.接下来、将本地 GPIO 事件转换为全局事件。

相同

 

3. 注册虚拟中断

 

* boardcfg 中 R5 的全局事件范围从 16 开始,大小为 256。 结果为 IMAP 寄存器 0x481000000+(8*16)= 0x48100080 */


global_event 基于 rm 的电路板配置、其值为 16。  (此全局事件表示来自 GPIO 的中断。)


在 A53 中、应该是  
(在 A53 虚拟 Num = 5 中 、将由中断号 69 触发)不工作  
AM64X_DEV_DMASS0_INTAGGR_0  28  5  AM64X_DEV_GICSS0  SPI  69

 

(在 R5F 中、virtual Num 为 44、将由中断号 68 触发 、并且在 R5F 下工作正常

AM64X_DEV_DMASS0_INTAGGR_0  28  44  AM64X_DEV_R5FSS0_CORE0  intr  68
)

请参阅  
https://software-dl.ti.com/tisci/esd/11_01_02/5_soc_doc/am64x/interrupt_cfg.html


我注册中断处理程序、  

在 R5F 中、一切运行正常。 但在 A53 中、它根本不会触发中断。  

 

我的问题:

问题可能是什么?

如何分步调试。   从 GPIO 到 DMSS、 配置应该完全相同?

到 R5F 或 A53 的 DMSS 虚拟中断、但略有不同。  它应该都能正常工作。  


* boardcfg 中 R5 的全局事件范围从 16 开始,大小为 256。 结果为 IMAP 寄存器 0x481000000+(8*16)= 0x48100080 */

例如:对于 A53 和 R5F、这应该相同。  

基本上、我应该将 VINT5 映射到 IRQ69 吗?

谢谢。  

image.png

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

    您好、

    指定的专家目前已离职至 1 月 29 日。 请预计响应会有一些延迟。

    感谢您的理解。

    此致、
    Johnson

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

    没问题、好消息是我看到 RSS 由 GPIO 触发。

    但是、当 DMSS 完成事件后、它假定已设置

     0x48005000  状态位 (INTAGG_INTR_REGS) STATUS_SET 为 1。  这不是发生的。  
    //我正在使用虚拟中断 5、这就是为什么 ti 为  0x48005000

    Aso 看看 global_event、 我使用的是 273

    48100888 是 werid、它是 0、它应该是 0x0500

    因此 我的步骤  

    Sciclient_rmIrqSetRaw 有问题、  

    结构 tisci_msg_rm_irq_set_req rmIrqReq;
    结构 tisci_msg_rm_irq_set_resp rmIrqResp;

    rmIrqReq.valid_params = 0u;
    rmIrqReq.valid_params = TISCI_MSG_VALUE_RM_GLOBAL_EVENT_VALID |
    TISCI_MSG_VALUE_RM_IA_ID_VALID |
    TISCI_MSG_VALUE_RM_VINT_VALID |
    TISCI_MSG_VALUE_RM_VINT_STATUS_BIT_INDEX_VALID;
    rmIrqReq.global_event = 273
    rmIrqReq.src_id = TISCI_DEV_DMASS0_INTAGGR_0;
    rmIrqReq.dst_id = 0;
    rmIrqReq.DST_HOST_IRQ = 0;
    rmIrqReq.vint = 5;
    rmIrqReq.ia_id = TISCI_DEV_DMASS0_INTAGGR_0;
    rmIrqReq.vint_STATUS_BIT_INDEX = 0U;//始终只映射一个事件到每个 VINT
    rmIrqReq.secondary_host = TISCI_MSG_VALUE_RM_UNUSED secondary_host;


    rmIrqReq.src_index = BCDMA_BLKCPY_TR_IRQ_OFFSET + 12;//我始终使用通道 12。


    *status = Sciclient_rmIrqSetRaw (&rmIrqReq,&rmIrqResp, SystemP_WAIT_FOREVER );




    它假设建立连接。   事件完成后、写入此虚拟编号 5。   

    状态位 (INTAGG_INTR_REGS) STATUS_SET 为 1

    此外、它应该将 IMAP_REGS  48100888 写入 0x0500。 但它保持为 0。 我缺少什么吗? 谢谢。  


    Sciclient_rmIrqSetRaw 返回 true。  顺便说一下。  

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

    一切都正常。 现在可以看到 48100098 正确映射了 0x0050

    是的、我将我的全球活动切换为 19。   19 * 8 字节= 152 字节 (0x98)

    此票证可以关闭