Sub Modules | |
CPDMA Configuration | |
CPDMA Packet Definitions | |
Functions | |
void | EnetCpdma_initRxChParams (EnetCpdma_OpenRxChPrms *pRxChPrms) |
Initialize RX channel open parameters. More... | |
EnetDma_RxChHandle | EnetCpdma_openRxCh (EnetDma_Handle hDma, const EnetCpdma_OpenRxChPrms *pRxChPrms) |
Enet DMA open RX channel. More... | |
int32_t | EnetCpdma_closeRxCh (EnetDma_RxChHandle hRxCh, EnetDma_PktQ *fq, EnetDma_PktQ *cq) |
Enet DMA close RX channel. More... | |
void | EnetCpdma_initTxChParams (EnetCpdma_OpenTxChPrms *pTxChPrms) |
Initialize TX channel open parameters. More... | |
EnetDma_TxChHandle | EnetCpdma_openTxCh (EnetDma_Handle hDma, const EnetCpdma_OpenTxChPrms *pTxChPrms) |
Enet DMA open TX channel. More... | |
int32_t | EnetCpdma_closeTxCh (EnetDma_TxChHandle hTxCh, EnetDma_PktQ *fq, EnetDma_PktQ *cq) |
Enet DMA close TX channel. More... | |
EnetDma_Handle | EnetCpdma_open (Enet_Type enetType, uint32_t instId, const EnetDma_Cfg *dmaCfg, uint32_t appCoreId) |
Set default data path parameters. More... | |
EnetDma_Handle | EnetCpdma_restoreCtxt (Enet_Type enetType, uint32_t instId, uint32_t appCoreId) |
Open DMA with default data path parameters. More... | |
int32_t | EnetCpdma_close (EnetDma_Handle hEnetDma) |
Close Enet DMA (data path). More... | |
int32_t | EnetCpdma_saveCtxt (EnetDma_Handle hEnetDma) |
Saves and closes Enet DMA (data path). More... | |
int32_t | EnetCpdma_rxThreshIsr (EnetDma_Handle hEnetDma) |
ENET CPDMA Rx Threshold interrupt service routine. More... | |
int32_t | EnetCpdma_rxIsr (EnetDma_Handle hEnetDma) |
ENET CPDMA Rx interrupt service routine. More... | |
int32_t | EnetCpdma_txIsr (EnetDma_Handle hEnetDma) |
ENET CPDMA Tx interrupt service routine. More... | |
int32_t | EnetCpdma_miscIsrGetStatus (EnetDma_Handle hEnetDma, uint32_t *pStatusMask) |
ENET CPDMA Miscellaneous interrupt service routine. More... | |
int32_t | EnetCpdma_ackMiscIsr (EnetDma_Handle hEnetDma) |
void | EnetCpdma_initParams (EnetDma_Cfg *pDmaConfig) |
Initialize CPDMA config params. More... | |
Typedefs | |
typedef EnetQ | EnetDma_PktQ |
Packet queue. More... | |
Macros | |
#define | ENET_CPDMA_CPSW_MAX_SG_LIST (4U) |
#define | ENET_CPDMA_CSUM_START_BYTE_SHIFT (16U) |
#define | ENET_CPDMA_CSUM_START_BYTE_MASK (((uint32_t) 0xFFU) << ENET_CPDMA_CSUM_START_BYTE_SHIFT) |
#define | ENET_CPDMA_CSUM_RESULT_BYTE_SHIFT (24U) |
#define | ENET_CPDMA_CSUM_RESULT_BYTE_MASK (((uint32_t) 0xFFU) << ENET_CPDMA_CSUM_RESULT_BYTE_SHIFT) |
#define | ENET_CPDMA_CSUM_BYTE_COUNT_SHIFT (0U) |
#define | ENET_CPDMA_CSUM_BYTE_COUNT_MASK (((uint32_t) 0x3FFU) << ENET_CPDMA_CSUM_BYTE_COUNT_SHIFT) |
#define | ENET_CPDMA_GET_CSUM_RESULT_BYTE(chkSumInfo) ENET_FEXT(chkSumInfo, ENET_CPDMA_CSUM_RESULT_BYTE) |
#define | ENET_CPDMA_GET_CSUM_START_BYTE(chkSumInfo) ENET_FEXT(chkSumInfo, ENET_CPDMA_CSUM_START_BYTE) |
#define | ENET_CPDMA_GET_CSUM_BYTE_COUNT(chkSumInfo) ENET_FEXT(chkSumInfo, ENET_CPDMA_CSUM_BYTE_COUNT) |
Enet CPDMA instance configuration | |
#define | ENET_CPDMA_CPSW_MAX_TX_CH (8U) |
Maximum number of CPSW TX DMA channels. More... | |
#define | ENET_CPDMA_CPSW_MAX_RX_CH (8U) |
Maximum number of CPSW RX DMA channels. More... | |
Enet DMA driver opaque handles | |
Enet DMA configuration structure. Opaque handle typedefs for Enet DMA driver objects. | |
typedef void(* | EnetDma_PktNotifyCb) (void *cbArg) |
Function pointer type for packet notify call back. More... | |
#define ENET_CPDMA_CPSW_MAX_TX_CH (8U) |
Maximum number of CPSW TX DMA channels.
#define ENET_CPDMA_CPSW_MAX_RX_CH (8U) |
Maximum number of CPSW RX DMA channels.
#define ENET_CPDMA_CPSW_MAX_SG_LIST (4U) |
Maximum number of scatter gather segements supported in a packet
#define ENET_CPDMA_CSUM_START_BYTE_SHIFT (16U) |
Utilities to read the ChksumInfo fields
#define ENET_CPDMA_CSUM_START_BYTE_MASK (((uint32_t) 0xFFU) << ENET_CPDMA_CSUM_START_BYTE_SHIFT) |
#define ENET_CPDMA_CSUM_RESULT_BYTE_SHIFT (24U) |
#define ENET_CPDMA_CSUM_RESULT_BYTE_MASK (((uint32_t) 0xFFU) << ENET_CPDMA_CSUM_RESULT_BYTE_SHIFT) |
#define ENET_CPDMA_CSUM_BYTE_COUNT_SHIFT (0U) |
#define ENET_CPDMA_CSUM_BYTE_COUNT_MASK (((uint32_t) 0x3FFU) << ENET_CPDMA_CSUM_BYTE_COUNT_SHIFT) |
#define ENET_CPDMA_GET_CSUM_RESULT_BYTE | ( | chkSumInfo | ) | ENET_FEXT(chkSumInfo, ENET_CPDMA_CSUM_RESULT_BYTE) |
#define ENET_CPDMA_GET_CSUM_START_BYTE | ( | chkSumInfo | ) | ENET_FEXT(chkSumInfo, ENET_CPDMA_CSUM_START_BYTE) |
#define ENET_CPDMA_GET_CSUM_BYTE_COUNT | ( | chkSumInfo | ) | ENET_FEXT(chkSumInfo, ENET_CPDMA_CSUM_BYTE_COUNT) |
typedef void(* EnetDma_PktNotifyCb) (void *cbArg) |
Function pointer type for packet notify call back.
This is called by driver when packet is received on the RX channel or transmission completed from TX channel.
typedef EnetQ EnetDma_PktQ |
Packet queue.
A queue of packets, which are used for managing the packets given to the DMA driver by an application. It can also be used by the translation or application layer to manage free packets pools.
void EnetCpdma_initRxChParams | ( | EnetCpdma_OpenRxChPrms * | pRxChPrms | ) |
Initialize RX channel open parameters.
Initializes RX channel parameters with default values. Refer to SOC DMA specific RX channel config structure for specific config details.
pRxChPrms | RX channel configuration parameters. |
EnetDma_RxChHandle EnetCpdma_openRxCh | ( | EnetDma_Handle | hDma, |
const EnetCpdma_OpenRxChPrms * | pRxChPrms | ||
) |
Enet DMA open RX channel.
Opens the Enet DMA RX channel based on the channel parameters. This function configures the DMA channel. This also configures event if notifyCb is not null. Refer to SOC DMA specific RX channel config structure for specific config details.
Enet DMA is peripheral-aware as peripherals in a given SoC may need different handling, i.e. DMA descriptor's extra fields having different meaning for two peripherals using same DMA engine. This peripheral-awareness is given to the RX channel/flow via EnetDma_Handle passed at open time.
hDma | Enet DMA handle |
pRxChPrms | RX channel configuration parameters. This parameter can't be NULL. |
int32_t EnetCpdma_closeRxCh | ( | EnetDma_RxChHandle | hRxCh, |
EnetDma_PktQ * | fq, | ||
EnetDma_PktQ * | cq | ||
) |
Enet DMA close RX channel.
Closes the Enet DMA RX channel and frees all associated resources. During close operation, we flush FQ taking all DMA descriptors with packet submitted in advance for reception and return to app. Also we retrieve all packets from the CQ (packets received between last EnetDma_retrieveRxPktQ() function call) and return those to app. App doesn't need to call function EnetDma_retrieveRxPktQ() explicitly to retrieve these packets.
hRxCh | [IN] Enet DMA channel handle. This parameter can't be NULL. |
fq | [OUT] Pointer to EnetDma_PktQ structure where packets from FQ (submitted for reception) are retrieved and returned to application. This parameter can't be NULL. |
cq | [OUT] Pointer to EnetDma_PktQ structure where packets from CQ (received packets) are retrieved and returned to application. This parameter can't be NULL. |
void EnetCpdma_initTxChParams | ( | EnetCpdma_OpenTxChPrms * | pTxChPrms | ) |
Initialize TX channel open parameters.
Initializes TX channel open parameters with default values. Refer to SOC DMA specific RX channel config structure for specific config details.
pTxChPrms | TX channel configuration parameters. |
EnetDma_TxChHandle EnetCpdma_openTxCh | ( | EnetDma_Handle | hDma, |
const EnetCpdma_OpenTxChPrms * | pTxChPrms | ||
) |
Enet DMA open TX channel.
Opens the DMA TX DMA channel based on the channel parameters. This function open TX channel using chNum provided in EnetDma_OpenTxChPrms() and configures TX channel. This also configures event if notifyCb is not null. Refer to SOC DMA specific RX channel config structure for specific config details.
Enet DMA is peripheral-aware as peripherals in a given SoC may need different handling, i.e. DMA descriptor's extra fields having different meaning for two peripherals using same DMA engine. This peripheral-awareness is given to the TX channel via EnetDma_Handle passed at open time.
hDma | Enet DMA handle |
pTxChPrms | TX channel configuration parameters. This parameter can't be NULL. |
int32_t EnetCpdma_closeTxCh | ( | EnetDma_TxChHandle | hTxCh, |
EnetDma_PktQ * | fq, | ||
EnetDma_PktQ * | cq | ||
) |
Enet DMA close TX channel.
Closes the Enet DMA TX channel and frees all associated resources. During close operation, we flush FQ taking all DMA descriptors with packet submitted but not yet transmitted and return to app. Also we retrieve all packets from the CQ (transmission completed packets) and return those to app. App doesn't need to call EnetDma_retrieveTxPktQ() explicitly to retrieve these packets.
hTxCh | [IN] Enet DMA TX Channel handle. This parameter can't be NULL. |
fq | [OUT] Pointer to EnetDma_PktQ structure where packets from FQ (TX ready - submitted for transmission) are retrieved and returned to application. This parameter can't be NULL. |
cq | [OUT] Pointer to EnetDma_PktQ structure where packets from CQ (TX free - transmitted packets) are retrieved and returned to application. This parameter can't be NULL. |
EnetDma_Handle EnetCpdma_open | ( | Enet_Type | enetType, |
uint32_t | instId, | ||
const EnetDma_Cfg * | dmaCfg, | ||
uint32_t | appCoreId | ||
) |
Set default data path parameters.
enetType | [IN] Enet Peripheral type |
instId | [IN] Enet Peripheral instance id |
dmaCfg | [IN] DMA module (data path) configuration pointer. |
appCoreId | [IN] Application core Id |
Enet | DMA handle if opened. Otherwise, NULL. |
EnetDma_Handle EnetCpdma_restoreCtxt | ( | Enet_Type | enetType, |
uint32_t | instId, | ||
uint32_t | appCoreId | ||
) |
Open DMA with default data path parameters.
enetType | [IN] Enet Peripheral type |
instId | [IN] Enet Peripheral instance id |
appCoreId | [IN] Application core Id |
Enet | DMA handle if opened. Otherwise, NULL. |
int32_t EnetCpdma_close | ( | EnetDma_Handle | hEnetDma | ) |
int32_t EnetCpdma_saveCtxt | ( | EnetDma_Handle | hEnetDma | ) |
int32_t EnetCpdma_rxThreshIsr | ( | EnetDma_Handle | hEnetDma | ) |
ENET CPDMA Rx Threshold interrupt service routine.
Processes Rx Threshold interrupt. This function retrieves the received packets from the linked CPPI descriptors and passes them to the receive queue when the number of received descriptors exceed the threshold
Requirement:
hEnetDma | [IN] Enet DMA Handle |
int32_t EnetCpdma_rxIsr | ( | EnetDma_Handle | hEnetDma | ) |
ENET CPDMA Rx interrupt service routine.
Processes Rx interrupt. This function retrieves the received packets from the linked CPPI descriptors and passes them to the receive queue when one or more packets has been received
Requirement:
hEnetDma | [IN] Enet DMA Handle |
int32_t EnetCpdma_txIsr | ( | EnetDma_Handle | hEnetDma | ) |
ENET CPDMA Tx interrupt service routine.
Processes Tx interrupt. This function retrieves the completed Tx packets from the linked CPPI descriptors and passes them to the free queue when one or more packets have been transmitted.
Requirement:
hEnetDma | [IN] Enet DMA Handle |
int32_t EnetCpdma_miscIsrGetStatus | ( | EnetDma_Handle | hEnetDma, |
uint32_t * | pStatusMask | ||
) |
ENET CPDMA Miscellaneous interrupt service routine.
Processes Miscellaneous interrupt. This function extracts the intrrupt status bit masks from MMR and pass it to the caller to process all masked interrupts.
Requirement:
hEnetDma | [IN] Enet DMA Handle |
pStatusMask | [IN] pointer to the interrupt status bit mask |
int32_t EnetCpdma_ackMiscIsr | ( | EnetDma_Handle | hEnetDma | ) |
EnetCpdma_ackMiscIsr
CPSW CPDMA Miscellaneous ISR ACK.
[in] | hEnetDma |
ENET_SOK |
void EnetCpdma_initParams | ( | EnetDma_Cfg * | pDmaConfig | ) |
Initialize CPDMA config params.
Initialize CPDMA config params to default values
Requirement:
pDmaConfig | [IN] pointer to the config structure |