Interrupt routing from Main UART0 to MCU1_0 Fails

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: High
    • PDK
    • PDK-13154
    • PROCESSOR_SDK_08.06.00
    • PROCESSOR_SDK_09.01.00
    • j784s4-evm

      Issue Description
      Interrupt routing from Main UART to MCU1_0

      Using the following configuration returns -2 CSL_EBADARGS

      Board_initCfg boardCfg;
          Board_STATUS  status;
          uint32_t lSciRetVal;
          int32_t i;
          uint16_t intNum;
      
          boardCfg = BOARD_INIT_PINMUX_CONFIG |
                     BOARD_INIT_UART_STDIO;
      
          status = Board_init(boardCfg);
      
          DebugP_assert(status == BOARD_SOK);
      
          UART_printf("Test case for UART Interrupt\n");
      
          struct tisci_msg_rm_irq_set_req     rmIrqReq;
          struct tisci_msg_rm_irq_set_resp    rmIrqResp;
          struct tisci_msg_rm_get_resource_range_resp res = {0};
          struct tisci_msg_rm_get_resource_range_req  req = {0};
      
          req.type = TISCI_DEV_MAIN2MCU_LVL_INTRTR0;
          req.secondary_host = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;
          lSciRetVal  = Sciclient_rmGetResourceRange(&req,
                                                &res,
                                                SCICLIENT_SERVICE_WAIT_FOREVER);
          UART_printf("Sciclient_rmGetResourceRange retval = %d\n",lSciRetVal);
          
          lSciRetVal = Sciclient_rmIrqTranslateIrOutput(req.type,
                                                        res.range_start,
                                                        TISCI_DEV_MCU_R5FSS0_CORE0,
                                                        &intNum);
      
          memset(&rmIrqReq, 0, sizeof(rmIrqReq));
          rmIrqReq.valid_params = TISCI_MSG_VALUE_RM_DST_ID_VALID;
      
          rmIrqReq.valid_params |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
      
          rmIrqReq.src_id       = TISCI_DEV_UART0;
      
          rmIrqReq.global_event = 0U;
        
          /* Src Index 0 - mcanss_ext_ts_rollover_lvl_int,
          Src Index 1 - mcanss_mcan_lvl_int Line 0,
          Src Index 2 - mcanss_mcan_lvl_int Line 1 */
      
          rmIrqReq.src_index             = 0;
      
          rmIrqReq.dst_id                = TISCI_DEV_MCU_R5FSS0_CORE0;
      
          rmIrqReq.dst_host_irq          = intNum;
      
          rmIrqReq.ia_id                 = 0U;
      
          rmIrqReq.vint                  = 0U;
      
          rmIrqReq.vint_status_bit_index = 0U;
      
          rmIrqReq.secondary_host        = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;
      
          lSciRetVal                     = Sciclient_rmIrqSet(&rmIrqReq, &rmIrqResp, SCICLIENT_SERVICE_WAIT_FOREVER);
           
          UART_printf("Sciclient_rmIrqSetRaw Value of lSciRetVal for irqNum = %d is %d \n", rmIrqReq.dst_host_irq,lSciRetVal); 

      Sciclient_rmIrqGetNode seems to be failing even though node is present.

      Workaround
       NA

            Assignee:
            TI User
            Reporter:
            TI User
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                Connection: Intermediate to External PROD System
                EXTSYNC-4097 - Interrupt routing from Main UART0 t...
                SYNCHRONIZED
                • Last Sync Date: