PDK Documentation
UDMA Driver API

Introduction

This is UDMA driver init, deinit and common API.

Files

file  udma.h
 UDMA Driver API/interface file.
 

Data Structures

struct  Udma_InitPrms
 UDMA initialization parameters. More...
 
struct  Udma_DrvHandle
 UDMA driver object. More...
 

Functions

int32_t Udma_init (Udma_DrvHandle drvHandle, const Udma_InitPrms *initPrms)
 UDMA init function. More...
 
int32_t Udma_deinit (Udma_DrvHandle drvHandle)
 UDMA deinit function. More...
 
void UdmaInitPrms_init (uint32_t instId, Udma_InitPrms *initPrms)
 Udma_InitPrms structure init function. More...
 
static uint64_t Udma_defaultVirtToPhyFxn (const void *virtAddr, uint32_t chNum, void *appData)
 Default virtual to physical translation function. More...
 
static void * Udma_defaultPhyToVirtFxn (uint64_t phyAddr, uint32_t chNum, void *appData)
 Default physical to virtual translation function. More...
 

Typedefs

typedef uint64_t(* Udma_VirtToPhyFxn) (const void *virtAddr, uint32_t chNum, void *appData)
 UDMA Virtual to Physical address translation callback function. More...
 
typedef void *(* Udma_PhyToVirtFxn) (uint64_t phyAddr, uint32_t chNum, void *appData)
 UDMA Physical to Virtual address translation callback function. More...
 
typedef void(* Udma_PrintFxn) (const char *str)
 UDMA info/debug print function prototype. More...
 

Typedef Documentation

◆ Udma_VirtToPhyFxn

typedef uint64_t(* Udma_VirtToPhyFxn) (const void *virtAddr, uint32_t chNum, void *appData)

UDMA Virtual to Physical address translation callback function.

This function is used by the driver to convert virtual address to physical address.

Parameters
virtAddr[IN] Virtual address
chNum[IN] Channel number passed during channel open
appData[IN] Callback pointer passed during channel open
Returns
Corresponding physical address

◆ Udma_PhyToVirtFxn

typedef void*(* Udma_PhyToVirtFxn) (uint64_t phyAddr, uint32_t chNum, void *appData)

UDMA Physical to Virtual address translation callback function.

This function is used by the driver to convert physical address to virtual address.

Parameters
phyAddr[IN] Physical address
chNum[IN] Channel number passed during channel open
appData[IN] Callback pointer passed during channel open
Returns
Corresponding virtual address

◆ Udma_PrintFxn

typedef void(* Udma_PrintFxn) (const char *str)

UDMA info/debug print function prototype.

This function is used by the driver to print info/debug messages.

Parameters
str[OUT] Info string to print.

Function Documentation

◆ Udma_init()

int32_t Udma_init ( Udma_DrvHandle  drvHandle,
const Udma_InitPrms initPrms 
)

UDMA init function.

Initializes the UDMA drivers. This function should be called before calling any of driver API's and should be called only once.

Requirement: DOX_REQ_TAG(PDK-2576)

Parameters
drvHandle[IN] UDMA driver handle - static memory needs to allocated by caller. This is used by the driver to maintain the driver states. This cannot be NULL.
initPrms[IN] UDMA Initialization parameters. If NULL is passed, the default parameters will be assumed - address translation disabled.
Returns
Udma_ErrorCodes

◆ Udma_deinit()

int32_t Udma_deinit ( Udma_DrvHandle  drvHandle)

UDMA deinit function.

Uninitializes the drivers and the hardware and should be called during system shutdown. Should not be called if Udma_init() is not called.

Requirement: DOX_REQ_TAG(PDK-2577)

Parameters
drvHandle[IN] UDMA driver handle pointer passed during Udma_init
Returns
Udma_ErrorCodes

◆ UdmaInitPrms_init()

void UdmaInitPrms_init ( uint32_t  instId,
Udma_InitPrms initPrms 
)

Udma_InitPrms structure init function.

Parameters
instId[IN] Udma_InstanceId
initPrms[IN] Pointer to Udma_InitPrms structure.

◆ Udma_defaultVirtToPhyFxn()

static uint64_t Udma_defaultVirtToPhyFxn ( const void *  virtAddr,
uint32_t  chNum,
void *  appData 
)
inlinestatic

Default virtual to physical translation function.

Parameters
virtAddr[IN] Virtual address
chNum[IN] Channel number passed during channel open. Note: When called for functions which is not channel dependent (like ring alloc), this parameter will be set to UDMA_DMA_CH_INVALID.
appData[IN] Callback pointer passed during channel open. Note: When called for functions which is not channel dependent (like ring alloc), this parameter will be set to NULL.
Returns
Corresponding physical address

◆ Udma_defaultPhyToVirtFxn()

static void * Udma_defaultPhyToVirtFxn ( uint64_t  phyAddr,
uint32_t  chNum,
void *  appData 
)
inlinestatic

Default physical to virtual translation function.

Parameters
phyAddr[IN] Physical address
chNum[IN] Channel number passed during channel open. Note: When called for functions which is not channel dependent (like ring alloc), this parameter will be set to UDMA_DMA_CH_INVALID.
appData[IN] Callback pointer passed during channel open. Note: When called for functions which is not channel dependent (like ring alloc), this parameter will be set to NULL.
Returns
Corresponding virtual address