This is UDMA driver init, deinit and common API.
|
| file | udma.h |
| | UDMA Driver API/interface file.
|
| |
|
| 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...
|
| |
◆ 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. |
◆ 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_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