PDK API Guide for J721E
UDMA Driver UTILS API

Introduction

This is UDMA driver utilty parameters and API

Files

file  udma_utils.h
 UDMA utility API to make TR, get TR descriptor memory requirement.
 

Functions

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...
 

UDMA TR type

Various UDMA TR type supported

#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)
 

Macro Definition Documentation

◆ UDMA_TR_TYPE_0

#define UDMA_TR_TYPE_0   (CSL_UDMAP_TR_FLAGS_TYPE_1D_DATA_MOVE)

◆ UDMA_TR_TYPE_1

#define UDMA_TR_TYPE_1   (CSL_UDMAP_TR_FLAGS_TYPE_2D_DATA_MOVE)

◆ UDMA_TR_TYPE_2

#define UDMA_TR_TYPE_2   (CSL_UDMAP_TR_FLAGS_TYPE_3D_DATA_MOVE)

◆ UDMA_TR_TYPE_3

#define UDMA_TR_TYPE_3   (CSL_UDMAP_TR_FLAGS_TYPE_4D_DATA_MOVE)

◆ UDMA_TR_TYPE_4

#define UDMA_TR_TYPE_4   (CSL_UDMAP_TR_FLAGS_TYPE_4D_DATA_MOVE_FORMATTING)

◆ UDMA_TR_TYPE_5

#define UDMA_TR_TYPE_5   (CSL_UDMAP_TR_FLAGS_TYPE_4D_CACHE_WARM)

◆ UDMA_TR_TYPE_8

#define UDMA_TR_TYPE_8   (CSL_UDMAP_TR_FLAGS_TYPE_4D_BLOCK_MOVE)

◆ UDMA_TR_TYPE_9

#define UDMA_TR_TYPE_9   (CSL_UDMAP_TR_FLAGS_TYPE_4D_BLOCK_MOVE_REPACKING)

◆ UDMA_TR_TYPE_10

#define UDMA_TR_TYPE_10   (CSL_UDMAP_TR_FLAGS_TYPE_2D_BLOCK_MOVE)

◆ UDMA_TR_TYPE_11

#define UDMA_TR_TYPE_11   (CSL_UDMAP_TR_FLAGS_TYPE_2D_BLOCK_MOVE_REPACKING)

◆ UDMA_TR_TYPE_15

Function Documentation

◆ UdmaUtils_getRingMemSize()

uint32_t UdmaUtils_getRingMemSize ( uint8_t  mode,
uint32_t  elemCnt,
uint8_t  elemSize 
)

UDMA get ring size utility API.

Parameters
mode[IN] Ring mode. Refer tisci_msg_rm_ring_cfg_req::mode
elemCnt[IN] Ring element count.
elemSize[IN] Ring element size. Refer Udma_RingElemSize
Returns
Size of the ring memory required in bytes

◆ UdmaUtils_makeTrpd()

static void UdmaUtils_makeTrpd ( void *  pTrpd,
uint32_t  trType,
uint32_t  trCnt,
uint32_t  cqRingNum 
)
inlinestatic

UDMA utility API to make TRPD. Other TRPD make APIs should be called only after this API.

Note: This sets the most commonly used value for all the fields. User can override the fields after calling this API if required.

Parameters
pTrpd[IN] Pointer to TRPD memory
trType[IN] TR type. Refer Udma_TrType
trCnt[IN] Number of TR entries present in the TRPD
cqRingNum[IN] Completion ring number where the TRPD is returned after processing

◆ UdmaUtils_getTrSizeEncoded()

uint32_t UdmaUtils_getTrSizeEncoded ( uint32_t  trType)

Returns the size of TR (encoded) based on the type.

Parameters
trType[IN] TR type. Refer Udma_TrType
Returns
Size of the TR record in encoded value to be programmed in TRPD.

◆ UdmaUtils_getTrSizeBytes()

uint32_t UdmaUtils_getTrSizeBytes ( uint32_t  trType)

Returns the size of TR in bytes based on the type.

Parameters
trType[IN] TR type. Refer Udma_TrType
Returns
Size of the TR record in bytes.