|
Various UDMA TR type supported
|
| uint32_t | UdmaUtils_getRingMemSize (uint8_t mode, uint32_t elemCnt, uint8_t elemSize) |
| | UDMA get ring size utility API. More...
|
| |
| static void | UdmaUtils_makeTrpd (void *pTrpd, uint32_t trType, uint32_t trCnt, uint32_t cqRingNum) |
| | UDMA utility API to make TRPD. Other TRPD make APIs should be called only after this API. More...
|
| |
| uint32_t | UdmaUtils_getTrSizeEncoded (uint32_t trType) |
| | Returns the size of TR (encoded) based on the type. More...
|
| |
| uint32_t | UdmaUtils_getTrSizeBytes (uint32_t trType) |
| | Returns the size of TR in bytes based on the type. More...
|
| |
| CSL_UdmapTR1 * | UdmaUtils_getTrpdTr1Pointer (uint8_t *trpdMem, uint32_t trIndex) |
| | Returns the TR1 pointer in the TRPD memory based on the index. More...
|
| |
| uint32_t | Udma_trGetEolVal (uint16_t icnt0, uint32_t triggerType) |
| | Get EOL (End of Line) value based on trigger type and transfer counts. More...
|
| |
| #define | UDMA_TR_TYPE_0 (CSL_UDMAP_TR_FLAGS_TYPE_1D_DATA_MOVE) |
| |
| #define | UDMA_TR_TYPE_1 (CSL_UDMAP_TR_FLAGS_TYPE_2D_DATA_MOVE) |
| |
| #define | UDMA_TR_TYPE_2 (CSL_UDMAP_TR_FLAGS_TYPE_3D_DATA_MOVE) |
| |
| #define | UDMA_TR_TYPE_3 (CSL_UDMAP_TR_FLAGS_TYPE_4D_DATA_MOVE) |
| |
| #define | UDMA_TR_TYPE_4 (CSL_UDMAP_TR_FLAGS_TYPE_4D_DATA_MOVE_FORMATTING) |
| |
| #define | UDMA_TR_TYPE_5 (CSL_UDMAP_TR_FLAGS_TYPE_4D_CACHE_WARM) |
| |
| #define | UDMA_TR_TYPE_8 (CSL_UDMAP_TR_FLAGS_TYPE_4D_BLOCK_MOVE) |
| |
| #define | UDMA_TR_TYPE_9 (CSL_UDMAP_TR_FLAGS_TYPE_4D_BLOCK_MOVE_REPACKING) |
| |
| #define | UDMA_TR_TYPE_10 (CSL_UDMAP_TR_FLAGS_TYPE_2D_BLOCK_MOVE) |
| |
| #define | UDMA_TR_TYPE_11 (CSL_UDMAP_TR_FLAGS_TYPE_2D_BLOCK_MOVE_REPACKING) |
| |
| #define | UDMA_TR_TYPE_15 (CSL_UDMAP_TR_FLAGS_TYPE_4D_BLOCK_MOVE_REPACKING_INDIRECTION) |
| |
| #define | UDMA_GET_TRPD_TR15_SIZE(n) (UDMA_ALIGN_SIZE(sizeof(CSL_UdmapTR15) + ((n) * (sizeof(CSL_UdmapTR15) + 4U)))) |
| | UDMA TR15 packet descriptor memory size in bytes. This contains the CSL_UdmapCppi5TRPD + Padding to sizeof(CSL_UdmapTR15) + N* Type_15 TR (CSL_UdmapTR15) + N* TR response of 4 bytes. Since CSL_UdmapCppi5TRPD header is less than CSL_UdmapTR15, CSL_UdmapTR15 itself is used for size alignment. More...
|
| |
| #define | UDMA_TR1_OFFSET (64U) |
| | Offset for TR1 type TR from TRPD start address. More...
|
| |
| uint32_t Udma_trGetEolVal |
( |
uint16_t |
icnt0, |
|
|
uint32_t |
triggerType |
|
) |
| |
Get EOL (End of Line) value based on trigger type and transfer counts.
Calculates the appropriate EOL value for UDMA transfer to prevent burst buffer stalls. For triggered transfers, returns the EOL value corresponding to the trigger dimension. Errata i2234/i2159: Returns appropriate EOL setting based on transfer trigger type. For triggered transfers, EOL is determined by trigger type. For non-triggered transfers, checks if icnt0 < 64B to flush burst buffer.
- Parameters
-
| icnt0 | [IN] Inner count dimension 0 (size in bytes for ICNT0 dimension) |
| triggerType | [IN] Trigger type. Refer CSL_UdmapTrFlagsTriggerType |
- Returns
- EOL value to be programmed in TR flags field. Usage: pTr->flags |= CSL_FMK(UDMAP_TR_FLAGS_EOL, Udma_trGetEolVal(pTr->icnt0, triggerType));