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.

TDA4VM: TDA4VM MCU3_0 udma Sciclient_rmIrqSetRaw failed

Part Number: TDA4VM

Hi TI,

  I used your reference code (app_gpio_dma.c), and run on MCU2_0/1 is fine.

but i found failures when execute Sciclient_rmIrqSetRaw() on MCU3_0.

Then, i found that return flags of  function was always 0.

(Sciclient_readThread32(rxThread, 1U+gSecHeaderSizeWords);
Code: 
pdk_jacinto_07_03_00_29/packages/ti/drv/sciclient/src/sciclient/sciclient.c

int32_t Sciclient_serviceSecureProxy(const Sciclient_ReqPrm_t *pReqPrm,
                                     Sciclient_RespPrm_t      *pRespPrm)
{
   ...
    if(status == CSL_PASS)
    {
        numWords   = (uint32_t) (rxPayloadSize / 4U);
        trailBytes = (uint8_t) (rxPayloadSize - (numWords * 4U));
        /* Read the full message */
        pRespPrm->flags = Sciclient_readThread32(rxThread, 1U+gSecHeaderSizeWords);
        
        ...
    }
    ....
}

And my code is : (this function Input params : gpioidx = 25, chIdx = 0)
void App_setupGpioMuxIr(uint32_t gpioIdx,uint32_t chIdx)
{
	int32_t status;
	struct tisci_msg_rm_irq_set_req rmIrqReq;
	struct tisci_msg_rm_irq_set_resp rmIrqResp;

	memset(&rmIrqReq, 0x0, sizeof(rmIrqReq));
	memset(&rmIrqResp, 0x0, sizeof(rmIrqResp));

	rmIrqReq.valid_params = 0U;
	rmIrqReq.global_event = 0U;
	rmIrqReq.src_id = 0U;
	rmIrqReq.src_index = 0U;
	rmIrqReq.dst_id = 0U;
	rmIrqReq.dst_host_irq = 0U;
	rmIrqReq.ia_id = 0U;
	rmIrqReq.vint = 0U;
	rmIrqReq.vint_status_bit_index = 0U;
	rmIrqReq.secondary_host = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;

	rmIrqReq.secondary_host = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;

	rmIrqReq.src_id = TISCI_DEV_GPIOMUX_INTRTR0;
	rmIrqReq.src_index = gpioIdx;

	/* Set the destination based on the core */
	rmIrqReq.dst_id = TISCI_DEV_GPIOMUX_INTRTR0;
	rmIrqReq.dst_host_irq = GPIOMUX_INTRTR0_OUTP_START_R5FSS0 + chIdx;

	/* Set the destination interrupt */
	rmIrqReq.valid_params |= TISCI_MSG_VALUE_RM_DST_ID_VALID;
	rmIrqReq.valid_params |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;

	status = Sciclient_rmIrqSetRaw((const struct tisci_msg_rm_irq_set_req *)&rmIrqReq,&rmIrqResp,SCICLIENT_SERVICE_WAIT_FOREVER);

	if(status == CSL_PASS)
	{
		App_print ("Worked fine \n");
	}
	else
	{
		App_print ("Failed \n");
	}
}
 I think that these parameters  rmIrqReq.src_id ,rmIrqReq.dst_id and  rmIrqReq.dst_host_irq should be set correctly for MCU3_0.
But I hope you can give me some pointers.
Thanks.
Jerry