Other Parts Discussed in Thread: SYSCONFIG,
Hi experts,
<Question>
What is the correct procedure for setting up UDMA (BCDMA) for transferring memory from a peripheral?
I followed the procedure below to initialize, and an error occurred in step (3).
(1) Enable PSIL of peripheral CSI_RX_IF(SHIM)
(2) Open the UDMA channel (Udma_chOpen)
・Channel type is UDMA_CH_TYPE_RX.
・Set CSL_PSILCFG_DMSS_CSI_PSILS_THREAD_OFFSET (0x4700) for channel parameter [peerChNum].
(3) Configure UDMA rx channel (Udma_chConfigRx)
・Initialize parameters using UdmaChRxPrms_init
Error: NAK response from SYSFW in RX flow control configuration, error occurred Sciclient_rmUdmapFlowCfg (udma_flow.c line:391).
The initialization code for UDMA is as follows.
void ConfigUdma0(void)
{
int32_t retVal = UDMA_SOK;
uint32_t chType;
Udma_ChHandle chHandle;
Udma_ChPrms chPrms;
Udma_ChRxPrms rxPrms;
Udma_DrvHandle drvHandle = &gUdmaDrvObj[CONFIG_UDMA0];
chHandle = &gConfigUdma0ChObj;
/* Init channel parameters */
chType = UDMA_CH_TYPE_RX; //PSIL-RX channel type
UdmaChPrms_init(&chPrms, chType);
chPrms.peerChNum = CSL_PSILCFG_DMSS_CSI_PSILS_THREAD_OFFSET;
chPrms.fqRingPrms.ringMem = gConfigUdma0BlkCopyCh0RingMem;
chPrms.fqRingPrms.ringMemSize = UDMA_CONFIG_UDMA0_CH_0_RING_MEM_SIZE;
chPrms.fqRingPrms.elemCnt = UDMA_CONFIG_UDMA0_PSIL_CHRING_ELEM_CNT;
/* Open channel for block copy */
retVal = Udma_chOpen(drvHandle, chHandle, chType, &chPrms); //OK(retVal == 0)
UdmaChRxPrms_init(&rxPrms, chType);
retVal = Udma_chConfigRx(chHandle, &rxPrms); //NG(retVal == -1)
}
The Trace log for SYSFW looks like this.
Configuring trace data version to: 0x03007 0x00421110: BasePort: TISCI_MSG_RECEIVED(TISCI Message interrupt handled): Queue ID: 2 Message ID: 1110 0x00820024: BasePort: TISCI_MSG_SENDER_HOST_ID(Message from secure host received): Queue ID: 2 Host ID: 36 0x4F8A00FF: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group given in RM boardcfg message: 0x00FF 0x4F8B0001: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group of configured resource: 0x0001 0x4F80001A: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device ID being validated: 26 0x4100001A: Resource Management: RING_CONFIGURE(Configure NavSS ring): RA device ID: 26 0x4F8A00FF: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group given in RM boardcfg message: 0x00FF 0x4F8B0001: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group of configured resource: 0x0001 0x4F80001A: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device ID being validated: 26 0x4100001A: Resource Management: RING_CONFIGURE(Configure NavSS ring): RA device ID: 26 0x41070000: Resource Management: RING_CONFIGURE(Configure NavSS ring): upper 16-bits of valid_params: 0x0000 0x410800BF: Resource Management: RING_CONFIGURE(Configure NavSS ring): lower 16-bits of valid_params: 0x00BF 0x4F8A00FF: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group given in RM boardcfg message: 0x00FF 0x4F8B0001: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group of configured resource: 0x0001 0x4F80001A: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device ID being validated: 26 0x4100001A: Resource Management: RING_CONFIGURE(Configure NavSS ring): RA device ID: 26 0x00421280: BasePort: TISCI_MSG_RECEIVED(TISCI Message interrupt handled): Queue ID: 2 Message ID: 1280 0x00820024: BasePort: TISCI_MSG_SENDER_HOST_ID(Message from secure host received): Queue ID: 2 Host ID: 36 0x4F8A00FF: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group given in RM boardcfg message: 0x00FF 0x4F8B0001: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group of configured resource: 0x0001 0x4F800019: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device ID being validated: 25 0x49000019: Resource Management: PSIL_PAIR(Pair NavSS PSI-L threads): PSI-L proxy device ID: 25 0x4A540024: Resource Management: PSIL_DRU_DST_OFFSET(DRU thread offset for UTC control programming): Unknown Sub-Action: 0x14 MSG:0x000024 0x4F8A00FF: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group given in RM boardcfg message: 0x00FF 0x4F8B0001: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group of configured resource: 0x0001 0x4F800019: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device ID being validated: 25 0x49000019: Resource Management: PSIL_PAIR(Pair NavSS PSI-L threads): PSI-L proxy device ID: 25 0x4F8A00FF: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group given in RM boardcfg message: 0x00FF 0x4F8B0001: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group of configured resource: 0x0001 0x4F800019: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device ID being validated: 25 0x49000019: Resource Management: PSIL_PAIR(Pair NavSS PSI-L threads): PSI-L proxy device ID: 25 0x4F8A00FF: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group given in RM boardcfg message: 0x00FF 0x4F8B0001: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group of configured resource: 0x0001 0x4F80001A: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device ID being validated: 26 0x4540001A: Resource Management: UDMAP_RX_CH_CFG(NavSS UDMAP RX channel configuration): UDMA device ID: 26 0x4A540024: Resource Management: PSIL_DRU_DST_OFFSET(DRU thread offset for UTC control programming): Unknown Sub-Action: 0x14 MSG:0x000024 0x4A530023: Resource Management: PSIL_DRU_DST_OFFSET(DRU thread offset for UTC control programming): Unknown Sub-Action: 0x13 MSG:0x000023 0x4A530024: Resource Management: PSIL_DRU_DST_OFFSET(DRU thread offset for UTC control programming): Unknown Sub-Action: 0x13 MSG:0x000024 0x4F8A00FF: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group given in RM boardcfg message: 0x00FF 0x4F8B0001: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group of configured resource: 0x0001 0x4F800019: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device ID being validated: 25 0x49000019: Resource Management: PSIL_PAIR(Pair NavSS PSI-L threads): PSI-L proxy device ID: 25 0x490A4700: Resource Management: PSIL_PAIR(Pair NavSS PSI-L threads): PSI-L source thread: 0x4700 0x490BA012: Resource Management: PSIL_PAIR(Pair NavSS PSI-L threads): PSI-L destination thread: 0xA012 0x451E4700: Resource Management: UDMAP_RX_CH_SET_THRD_ID(Set NavSS UDMAP RX channel thread ID): PSI-L thread ID: 0x4700 0x4F8A00FF: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group given in RM boardcfg message: 0x00FF 0x4F8B0001: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group of configured resource: 0x0001 0x4F80001A: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device ID being validated: 26 0x4500001A: Resource Management: UDMAP_RX_CH_SET_THRD_ID(Set NavSS UDMAP RX channel thread ID): Unknown Sub-Action: 0x00 MSG:0x00001A 0x45010012: Resource Management: UDMAP_RX_CH_SET_THRD_ID(Set NavSS UDMAP RX channel thread ID): index: 18 0x00421215: BasePort: TISCI_MSG_RECEIVED(TISCI Message interrupt handled): Queue ID: 2 Message ID: 1215 0x00820024: BasePort: TISCI_MSG_SENDER_HOST_ID(Message from secure host received): Queue ID: 2 Host ID: 36 0x4F8A00FF: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group given in RM boardcfg message: 0x00FF 0x4F8B0001: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device group of configured resource: 0x0001 0x4F80001A: Resource Management: DEVGRP_VALIDATE(Validating device group of resource): Device ID being validated: 26 0x4540001A: Resource Management: UDMAP_RX_CH_CFG(NavSS UDMAP RX channel configuration): UDMA device ID: 26
<Supplementary note>
・The environment is using mcu_plus_sdk_am62x_09_00_00_19.
・SDK:Code Composer Studio Version: 12.4.0.00007
・sysconfig 1.16.2
・SYSFW Trace is enabled.
・Goal: UDMA configuration for CSI_RX_IF peripheral in bare-metal environment.
