RTEMS
5.0.0
|
Functions | |
void | GMACD_Handler (sGmacd *pGmacd, gmacQueList_t queIdx) |
GMAC Interrupt handler. More... | |
void | GMACD_Init (sGmacd *pGmacd, Gmac *pHw, uint8_t bID, uint8_t enableCAF, uint8_t enableNBC) |
Initialize the GMAC with the Gmac controller address. More... | |
uint8_t | GMACD_InitTransfer (sGmacd *pGmacd, const sGmacInit *pInit, gmacQueList_t queIdx) |
void | GMACD_Reset (sGmacd *pGmacd) |
uint8_t | GMACD_SendSG (sGmacd *pGmacd, const sGmacSGList *sgl, fGmacdTransferCallback fTxCb, gmacQueList_t queIdx) |
Send a frame split into buffers. If the frame size is larger than transfer buffer size error returned. If frame transfer status is monitored, specify callback for each frame. More... | |
uint8_t | GMACD_Send (sGmacd *pGmacd, void *pBuffer, uint32_t size, fGmacdTransferCallback fTxCb, gmacQueList_t queIdx) |
Send a packet with GMAC. If the packet size is larger than transfer buffer size error returned. If packet transfer status is monitored, specify callback for each packet. More... | |
uint32_t | GMACD_TxLoad (sGmacd *pGmacd, gmacQueList_t queIdx) |
uint8_t | GMACD_Poll (sGmacd *pGmacd, uint8_t *pFrame, uint32_t frameSize, uint32_t *pRcvSize, gmacQueList_t queIdx) |
Receive a packet with GMAC. If not enough buffer for the packet, the remaining data is lost but right frame length is returned. More... | |
void | GMACD_SetRxCallback (sGmacd *pGmacd, fGmacdTransferCallback fRxCb, gmacQueList_t queIdx) |
Registers pRxCb callback. Callback will be invoked after the next received frame. When GMAC_Poll() returns GMAC_RX_NO_DATA the application task call GMAC_Set_RxCb() to register pRxCb() callback and enters suspend state. The callback is in charge to resume the task once a new frame has been received. The next time GMAC_Poll() is called, it will be successful. More... | |
uint8_t | GMACD_SetTxWakeupCallback (sGmacd *pGmacd, fGmacdWakeupCallback fWakeup, uint8_t bThreshold, gmacQueList_t queIdx) |
void | GMACD_TxPtpEvtMsgCBRegister (sGmacd *pGmacd, fGmacdTxPtpEvtCallBack pTxPtpEvtCb, gmacQueList_t queIdx) |
void GMACD_Handler | ( | sGmacd * | pGmacd, |
gmacQueList_t | queIdx | ||
) |
GMAC Interrupt handler.
pGmacd | Pointer to GMAC Driver instance. |
Initialize the GMAC with the Gmac controller address.
pGmacd | Pointer to GMAC Driver instance. |
pHw | Pointer to HW address for registers. |
bID | HW ID for power management |
enableCAF | Enable/Disable CopyAllFrame. |
enableNBC | Enable/Disable NoBroadCast. |
Initialize necessary allocated buffer lists for GMAC Driver to transfer data. Must be invoked after GMACD_Init() but before RX/TX start. Replace the deprecated GMACD_InitTransfer().
pGmacd | Pointer to GMAC Driver instance. |
pInit | Pointer to sGmacInit. |
pInit | Pointer to gmacQueList_t for different queue. |
uint8_t GMACD_Poll | ( | sGmacd * | pGmacd, |
uint8_t * | pFrame, | ||
uint32_t | frameSize, | ||
uint32_t * | pRcvSize, | ||
gmacQueList_t | queIdx | ||
) |
Receive a packet with GMAC. If not enough buffer for the packet, the remaining data is lost but right frame length is returned.
pGmacd | Pointer to GMAC Driver instance. |
pFrame | Buffer to store the frame |
frameSize | Size of the frame |
pRcvSize | Received size |
void GMACD_Reset | ( | sGmacd * | pGmacd | ) |
Reset TX & RX queue & statistics
pGmacd | Pointer to GMAC Driver instance. |
uint8_t GMACD_Send | ( | sGmacd * | pGmacd, |
void * | pBuffer, | ||
uint32_t | size, | ||
fGmacdTransferCallback | fTxCb, | ||
gmacQueList_t | queIdx | ||
) |
Send a packet with GMAC. If the packet size is larger than transfer buffer size error returned. If packet transfer status is monitored, specify callback for each packet.
pGmacd | Pointer to GMAC Driver instance. |
pBuffer | The buffer to be send |
size | The size of buffer to be send |
fTxCb | Threshold Wakeup callback |
uint8_t GMACD_SendSG | ( | sGmacd * | pGmacd, |
const sGmacSGList * | sgl, | ||
fGmacdTransferCallback | fTxCb, | ||
gmacQueList_t | queIdx | ||
) |
Send a frame split into buffers. If the frame size is larger than transfer buffer size error returned. If frame transfer status is monitored, specify callback for each frame.
pGmacd | Pointer to GMAC Driver instance. |
sgl | Pointer to a scatter-gather list describing the buffers of the ethernet frame. |
fTxCb | Pointer to callback function. |
void GMACD_SetRxCallback | ( | sGmacd * | pGmacd, |
fGmacdTransferCallback | fRxCb, | ||
gmacQueList_t | queIdx | ||
) |
Registers pRxCb callback. Callback will be invoked after the next received frame. When GMAC_Poll() returns GMAC_RX_NO_DATA the application task call GMAC_Set_RxCb() to register pRxCb() callback and enters suspend state. The callback is in charge to resume the task once a new frame has been received. The next time GMAC_Poll() is called, it will be successful.
pGmacd | Pointer to GMAC Driver instance. |
fRxCb | Pointer to callback function |
uint8_t GMACD_SetTxWakeupCallback | ( | sGmacd * | pGmacd, |
fGmacdWakeupCallback | fWakeup, | ||
uint8_t | bThreshold, | ||
gmacQueList_t | queIdx | ||
) |
Register/Clear TX wakeup callback.
When GMACD_Send() returns GMACD_TX_BUSY (all TD busy) the application task calls GMACD_SetTxWakeupCallback() to register fWakeup() callback and enters suspend state. The callback is in charge to resume the task once several TD have been released. The next time GMACD_Send() will be called, it shall be successful.
This function is usually invoked with NULL callback from the TX wakeup callback itself, to unregister. Once the callback has resumed the application task, there is no need to invoke the callback again.
pGmacd | Pointer to GMAC Driver instance. |
fWakeup | Wakeup callback. |
bThreshold | Number of free TD before wakeup callback invoked. |
uint32_t GMACD_TxLoad | ( | sGmacd * | pGmacd, |
gmacQueList_t | queIdx | ||
) |
Return current load of TX.
pGmacd | Pointer to GMAC Driver instance. |