RTEMS
5.1
|
Modules | |
GMAC Data Structs | |
Data Structures | |
struct | _GmacRxDescriptor::_GmacRxAddr::_GmacRxAddrBM |
union | _GmacRxDescriptor::_GmacRxAddr |
struct | _GmacRxDescriptor::_GmacRxStatus::_GmacRxStatusBM |
union | _GmacRxDescriptor::_GmacRxStatus |
struct | _GmacTxDescriptor::_GmacTxStatus::_GmacTxStatusBM |
union | _GmacTxDescriptor::_GmacTxStatus |
Macros | |
#define | NUM_GMAC_QUEUES 3 |
#define | GMAC_DUPLEX_HALF 0 |
Board GMAC base address. | |
#define | GMAC_DUPLEX_FULL 1 |
#define | GMAC_SPEED_10M 0 |
#define | GMAC_SPEED_100M 1 |
#define | GMAC_SPEED_1000M 2 |
#define | GMAC_ADDRESS_MASK ((unsigned int)0xFFFFFFFC) |
#define | GMAC_LENGTH_FRAME ((unsigned int)0x3FFF) |
#define | GMAC_RX_OWNERSHIP_BIT (1u << 0) |
#define | GMAC_RX_WRAP_BIT (1u << 1) |
#define | GMAC_RX_SOF_BIT (1u << 14) |
#define | GMAC_RX_EOF_BIT (1u << 15) |
#define | GMAC_TX_LAST_BUFFER_BIT (1u << 15) |
#define | GMAC_TX_WRAP_BIT (1u << 30) |
#define | GMAC_TX_USED_BIT (1u << 31) |
#define | GMAC_TX_RLE_BIT (1u << 29) |
#define | GMAC_TX_UND_BIT (1u << 28) |
#define | GMAC_TX_ERR_BIT (1u << 27) |
#define | GMAC_TX_ERR_BITS (GMAC_TX_RLE_BIT | GMAC_TX_UND_BIT | GMAC_TX_ERR_BIT) |
#define | GMAC_INT_RX_BITS (GMAC_IER_RCOMP | GMAC_IER_RXUBR | GMAC_IER_ROVR) |
#define | GMAC_INT_TX_ERR_BITS (GMAC_IER_TUR | GMAC_IER_RLEX | GMAC_IER_TFC | GMAC_IER_HRESP) |
#define | GMAC_INT_TX_BITS (GMAC_INT_TX_ERR_BITS | GMAC_IER_TCOMP) |
#define | GMAC_INT_RX_STATUS_BITS (GMAC_ISR_RCOMP | GMAC_ISR_RXUBR | GMAC_ISR_ROVR) |
#define | GMAC_INT_TX_STATUS_ERR_BITS (GMAC_ISR_TUR | GMAC_ISR_RLEX | GMAC_ISR_TFC | GMAC_ISR_HRESP) |
#define | GMAC_RXDESC_ST_CKSUM_RESULT_NOT_CHECKED (0) |
#define | GMAC_RXDESC_ST_CKSUM_RESULT_IP_CHECKED (1) |
#define | GMAC_RXDESC_ST_CKSUM_RESULT_IP_AND_TCP_CHECKED (2) |
#define | GMAC_RXDESC_ST_CKSUM_RESULT_IP_AND_UDP_CHECKED (3) |
Functions | |
uint8_t | GMAC_IsIdle (Gmac *pGmac) |
void | GMAC_PHYMaintain (Gmac *pGmac, uint8_t bPhyAddr, uint8_t bRegAddr, uint8_t bRW, uint16_t wData) |
uint16_t | GMAC_PHYData (Gmac *pGmac) |
void | GMAC_ClearStatistics (Gmac *pGmac) |
void | GMAC_IncreaseStatistics (Gmac *pGmac) |
void | GMAC_StatisticsWriteEnable (Gmac *pGmac, uint8_t bEnaDis) |
uint8_t | GMAC_SetMdcClock (Gmac *pGmac, uint32_t mck) |
Set MDC clock according to current board clock. Per 802.3, MDC should be less then 2.5MHz. More... | |
void | GMAC_EnableMdio (Gmac *pGmac) |
Enable MDI with PHY. More... | |
void | GMAC_DisableMdio (Gmac *pGmac) |
Enable MDI with PHY. More... | |
void | GMAC_EnableMII (Gmac *pGmac) |
Enable MII mode for GMAC, called once after auto negotiate. More... | |
void | GMAC_EnableRMII (Gmac *pGmac) |
void | GMAC_EnableGMII (Gmac *pGmac) |
Enable GMII mode for GMAC, called once after auto negotiate. More... | |
void | GMAC_SetLinkSpeed (Gmac *pGmac, uint8_t speed, uint8_t fullduplex) |
Setup the GMAC for the link : speed 100M/10M and Full/Half duplex. More... | |
void | GMAC_EnableIt (Gmac *pGmac, uint32_t dwSources, gmacQueList_t queueIdx) |
void | GMAC_EnableAllQueueIt (Gmac *pGmac, uint32_t dwSources) |
void | GMAC_DisableIt (Gmac *pGmac, uint32_t dwSources, gmacQueList_t queueIdx) |
void | GMAC_DisableAllQueueIt (Gmac *pGmac, uint32_t dwSources) |
uint32_t | GMAC_GetItStatus (Gmac *pGmac, gmacQueList_t queueIdx) |
uint32_t | GMAC_GetItMask (Gmac *pGmac, gmacQueList_t queueIdx) |
uint32_t | GMAC_GetTxStatus (Gmac *pGmac) |
void | GMAC_ClearTxStatus (Gmac *pGmac, uint32_t dwStatus) |
uint32_t | GMAC_GetRxStatus (Gmac *pGmac) |
void | GMAC_ClearRxStatus (Gmac *pGmac, uint32_t dwStatus) |
void | GMAC_ReceiveEnable (Gmac *pGmac, uint8_t bEnaDis) |
void | GMAC_TransmitEnable (Gmac *pGmac, uint8_t bEnaDis) |
uint32_t | GMAC_SetLocalLoopBack (Gmac *pGmac) |
set local loop back More... | |
void | GMAC_SetRxQueue (Gmac *pGmac, uint32_t dwAddr, gmacQueList_t queueIdx) |
uint32_t | GMAC_GetRxQueue (Gmac *pGmac, gmacQueList_t queueIdx) |
void | GMAC_SetTxQueue (Gmac *pGmac, uint32_t dwAddr, gmacQueList_t queueIdx) |
uint32_t | GMAC_GetTxQueue (Gmac *pGmac, gmacQueList_t queueIdx) |
void | GMAC_NetworkControl (Gmac *pGmac, uint32_t bmNCR) |
uint32_t | GMAC_GetNetworkControl (Gmac *pGmac) |
void | GMAC_SetAddress (Gmac *pGmac, uint8_t bIndex, uint8_t *pMacAddr) |
void | GMAC_SetAddress32 (Gmac *pGmac, uint8_t bIndex, uint32_t dwMacT, uint32_t dwMacB) |
void | GMAC_SetAddress64 (Gmac *pGmac, uint8_t bIndex, uint64_t ddwMac) |
void | GMAC_Configure (Gmac *pGmac, uint32_t dwCfg) |
void | GMAC_SetDMAConfig (Gmac *pGmac, uint32_t dwDmaCfg, gmacQueList_t queueIdx) |
uint32_t | GMAC_GetDMAConfig (Gmac *pGmac, gmacQueList_t queueIdx) |
uint32_t | GMAC_GetConfigure (Gmac *pGmac) |
void | GMAC_TransmissionStart (Gmac *pGmac) |
void | GMAC_TransmissionHalt (Gmac *pGmac) |
void | GMAC_EnableRGMII (Gmac *pGmac, uint32_t duplex, uint32_t speed) |
Enable RGMII mode for GMAC, called once after auto negotiate. More... | |
void | GMAC_ClearScreener1Reg (Gmac *pGmac, gmacQueList_t queueIdx) |
void | GMAC_WriteScreener1Reg (Gmac *pGmac, gmacQueList_t queueIdx, uint32_t regVal) |
void | GMAC_ClearScreener2Reg (Gmac *pGmac, gmacQueList_t queueIdx) |
void | GMAC_WriteScreener2Reg (Gmac *pGmac, gmacQueList_t queueIdx, uint32_t regVal) |
void | GMAC_WriteEthTypeReg (Gmac *pGmac, gmacQueList_t queueIdx, uint16_t etherType) |
void | GMAC_WriteCompareReg (Gmac *pGmac, gmacQueList_t queueIdx, uint32_t c0Reg, uint16_t c1Reg) |
void | GMAC_EnableCbsQueA (Gmac *pGmac) |
void | GMAC_DisableCbsQueA (Gmac *pGmac) |
void | GMAC_EnableCbsQueB (Gmac *pGmac) |
void | GMAC_DisableCbsQueB (Gmac *pGmac) |
void | GMAC_ConfigIdleSlopeA (Gmac *pGmac, uint32_t idleSlopeA) |
void | GMAC_ConfigIdleSlopeB (Gmac *pGmac, uint32_t idleSlopeB) |
void | GMAC_SetTsuTmrIncReg (Gmac *pGmac, uint32_t nanoSec) |
uint16_t | GMAC_GetPtpEvtMsgRxdMsbSec (Gmac *pGmac) |
uint32_t | GMAC_GetPtpEvtMsgRxdLsbSec (Gmac *pGmac) |
uint32_t | GMAC_GetPtpEvtMsgRxdNanoSec (Gmac *pGmac) |
void | GMAC_SetTsuCompare (Gmac *pGmac, uint32_t seconds47, uint32_t seconds31, uint32_t nanosec) |
void | GMAC_SetTsuCompareNanoSec (Gmac *pGmac, uint32_t nanosec) |
void | GMAC_SetTsuCompareSec31 (Gmac *pGmac, uint32_t seconds31) |
void | GMAC_SetTsuCompareSec47 (Gmac *pGmac, uint16_t seconds47) |
uint32_t | GMAC_GetRxEvtFrameSec (Gmac *pGmac) |
uint32_t | GMAC_GetRxEvtFrameNsec (Gmac *pGmac) |
uint32_t | GMAC_GetRxPeerEvtFrameSec (Gmac *pGmac) |
uint32_t | GMAC_GetRxPeerEvtFrameNsec (Gmac *pGmac) |
uint32_t | GMAC_GetTxEvtFrameSec (Gmac *pGmac) |
uint32_t | GMAC_GetTxEvtFrameNsec (Gmac *pGmac) |
uint32_t | GMAC_GetTxPeerEvtFrameSec (Gmac *pGmac) |
uint32_t | GMAC_GetTxPeerEvtFrameNsec (Gmac *pGmac) |
#define GMAC_ADDRESS_MASK ((unsigned int)0xFFFFFFFC) |
The buffer addresses written into the descriptors must be aligned so the last few bits are zero. These bits have special meaning for the GMAC peripheral and cannot be used as part of the address.
void GMAC_ClearRxStatus | ( | Gmac * | pGmac, |
uint32_t | dwStatus | ||
) |
Clear receive status
void GMAC_ClearStatistics | ( | Gmac * | pGmac | ) |
Clear all statistics registers
void GMAC_ClearTxStatus | ( | Gmac * | pGmac, |
uint32_t | dwStatus | ||
) |
Clear transmit status
void GMAC_Configure | ( | Gmac * | pGmac, |
uint32_t | dwCfg | ||
) |
Setup network configuration register
void GMAC_DisableAllQueueIt | ( | Gmac * | pGmac, |
uint32_t | dwSources | ||
) |
Disable interrupt(s).
void GMAC_DisableIt | ( | Gmac * | pGmac, |
uint32_t | dwSources, | ||
gmacQueList_t | queueIdx | ||
) |
Disable interrupt(s).
void GMAC_DisableMdio | ( | Gmac * | pGmac | ) |
Enable MDI with PHY.
pGmac | Pointer to an Gmac instance. |
void GMAC_EnableAllQueueIt | ( | Gmac * | pGmac, |
uint32_t | dwSources | ||
) |
Disable interrupt(s).
void GMAC_EnableGMII | ( | Gmac * | pGmac | ) |
Enable GMII mode for GMAC, called once after auto negotiate.
pGmac | Pointer to an Gmac instance. |
void GMAC_EnableIt | ( | Gmac * | pGmac, |
uint32_t | dwSources, | ||
gmacQueList_t | queueIdx | ||
) |
Enable interrupt(s).
void GMAC_EnableMdio | ( | Gmac * | pGmac | ) |
Enable MDI with PHY.
pGmac | Pointer to an Gmac instance. |
void GMAC_EnableMII | ( | Gmac * | pGmac | ) |
Enable MII mode for GMAC, called once after auto negotiate.
pGmac | Pointer to an Gmac instance. |
void GMAC_EnableRGMII | ( | Gmac * | pGmac, |
uint32_t | duplex, | ||
uint32_t | speed | ||
) |
Enable RGMII mode for GMAC, called once after auto negotiate.
pGmac | Pointer to an Gmac instance. |
duplex | 1 full duplex 0 half duplex |
speed | 0 10M 1 100M |
uint32_t GMAC_GetConfigure | ( | Gmac * | pGmac | ) |
Return network configuration.
uint32_t GMAC_GetDMAConfig | ( | Gmac * | pGmac, |
gmacQueList_t | queueIdx | ||
) |
Return DMA configuration register
uint32_t GMAC_GetItMask | ( | Gmac * | pGmac, |
gmacQueList_t | queueIdx | ||
) |
Return interrupt mask.
uint32_t GMAC_GetItStatus | ( | Gmac * | pGmac, |
gmacQueList_t | queueIdx | ||
) |
Return interrupt status.
uint32_t GMAC_GetNetworkControl | ( | Gmac * | pGmac | ) |
Get control value
uint32_t GMAC_GetRxQueue | ( | Gmac * | pGmac, |
gmacQueList_t | queueIdx | ||
) |
Get Rx Queue Address
uint32_t GMAC_GetRxStatus | ( | Gmac * | pGmac | ) |
Return receive status
uint32_t GMAC_GetTxQueue | ( | Gmac * | pGmac, |
gmacQueList_t | queueIdx | ||
) |
Get Tx Queue
uint32_t GMAC_GetTxStatus | ( | Gmac * | pGmac | ) |
Return transmit status
void GMAC_IncreaseStatistics | ( | Gmac * | pGmac | ) |
Increase all statistics registers
uint8_t GMAC_IsIdle | ( | Gmac * | pGmac | ) |
Return 1 if PHY is idle
void GMAC_NetworkControl | ( | Gmac * | pGmac, |
uint32_t | bmNCR | ||
) |
Write control value
uint16_t GMAC_PHYData | ( | Gmac * | pGmac | ) |
Return PHY maintenance data returned
void GMAC_PHYMaintain | ( | Gmac * | pGmac, |
uint8_t | bPhyAddr, | ||
uint8_t | bRegAddr, | ||
uint8_t | bRW, | ||
uint16_t | wData | ||
) |
Execute PHY maintenance command
void GMAC_ReceiveEnable | ( | Gmac * | pGmac, |
uint8_t | bEnaDis | ||
) |
Enable/Disable GMAC receive.
void GMAC_SetAddress | ( | Gmac * | pGmac, |
uint8_t | bIndex, | ||
uint8_t * | pMacAddr | ||
) |
Set MAC Address
void GMAC_SetAddress32 | ( | Gmac * | pGmac, |
uint8_t | bIndex, | ||
uint32_t | dwMacT, | ||
uint32_t | dwMacB | ||
) |
Set MAC Address via 2 DW
void GMAC_SetAddress64 | ( | Gmac * | pGmac, |
uint8_t | bIndex, | ||
uint64_t | ddwMac | ||
) |
Set MAC Address via int64
void GMAC_SetDMAConfig | ( | Gmac * | pGmac, |
uint32_t | dwDmaCfg, | ||
gmacQueList_t | queueIdx | ||
) |
Setup DMA configuration register
void GMAC_SetLinkSpeed | ( | Gmac * | pGmac, |
uint8_t | speed, | ||
uint8_t | fullduplex | ||
) |
Setup the GMAC for the link : speed 100M/10M and Full/Half duplex.
pGmac | Pointer to an Gmac instance. |
speed | Link speed, 0 for 10M, 1 for 100M |
fullduplex | 1 for Full Duplex mode |
uint32_t GMAC_SetLocalLoopBack | ( | Gmac * | pGmac | ) |
set local loop back
pGmac | Pointer to an Gmac instance. |
uint8_t GMAC_SetMdcClock | ( | Gmac * | pGmac, |
uint32_t | mck | ||
) |
Set MDC clock according to current board clock. Per 802.3, MDC should be less then 2.5MHz.
pGmac | Pointer to an Gmac instance. |
mck | Mdc clock |
void GMAC_SetRxQueue | ( | Gmac * | pGmac, |
uint32_t | dwAddr, | ||
gmacQueList_t | queueIdx | ||
) |
Set Rx Queue
void GMAC_SetTxQueue | ( | Gmac * | pGmac, |
uint32_t | dwAddr, | ||
gmacQueList_t | queueIdx | ||
) |
Set Tx Queue
void GMAC_StatisticsWriteEnable | ( | Gmac * | pGmac, |
uint8_t | bEnaDis | ||
) |
Enable/Disable statistics registers writing.
void GMAC_TransmissionHalt | ( | Gmac * | pGmac | ) |
Halt transmission
void GMAC_TransmissionStart | ( | Gmac * | pGmac | ) |
Start transmission
void GMAC_TransmitEnable | ( | Gmac * | pGmac, |
uint8_t | bEnaDis | ||
) |
Enable/Disable GMAC transmit.
union _GmacRxDescriptor::_GmacRxAddr _GmacRxDescriptor::addr |
Address, Wrap & Ownership
uint32_t _GmacRxDescriptor::_GmacRxAddr::_GmacRxAddrBM::addrDW |
Address in number of DW
uint32_t _GmacRxDescriptor::_GmacRxStatus::_GmacRxStatusBM::bBroadcastDetected |
Global all ones broadcast address detected
uint32_t _GmacRxDescriptor::_GmacRxStatus::_GmacRxStatusBM::bCFI |
End of frame
uint32_t _GmacRxDescriptor::_GmacRxStatus::_GmacRxStatusBM::bEof |
Start of frame
uint32_t _GmacTxDescriptor::_GmacTxStatus::_GmacTxStatusBM::bError |
Retry limit exceeded, error detected
uint32_t _GmacTxDescriptor::_GmacTxStatus::_GmacTxStatusBM::bExhausted |
Buffer exhausted in mid frame
uint32_t _GmacTxDescriptor::_GmacTxStatus::_GmacTxStatusBM::bLastBuffer |
Last buffer (in the current frame)
uint32_t _GmacRxDescriptor::_GmacRxStatus::_GmacRxStatusBM::bMultiHashMatch |
Multicast hash match
uint32_t _GmacTxDescriptor::_GmacTxStatus::_GmacTxStatusBM::bNoCRC |
No CRC
uint32_t _GmacRxDescriptor::_GmacRxAddr::_GmacRxAddrBM::bOwnership |
User clear, GMAC set this to one once it has successfully written a frame to memory
uint32_t _GmacRxDescriptor::_GmacRxStatus::_GmacRxStatusBM::bPriorityDetected |
VLAN priority (if VLAN detected)
uint32_t _GmacRxDescriptor::_GmacRxStatus::_GmacRxStatusBM::bSof |
Receive buffer offset, bits 13:12 of frame length for jumbo frame
uint32_t _GmacTxDescriptor::_GmacTxStatus::_GmacTxStatusBM::bUnderrun |
Transmit under run
uint32_t _GmacRxDescriptor::_GmacRxStatus::_GmacRxStatusBM::bUniHashMatch |
Unicast hash match
uint32_t _GmacTxDescriptor::_GmacTxStatus::_GmacTxStatusBM::bUsed |
User clear, GMAC sets this once a frame has been successfully transmitted
uint32_t _GmacRxDescriptor::_GmacRxStatus::_GmacRxStatusBM::bVlanDetected |
Priority tag detected VLAN tag detected
uint32_t _GmacRxDescriptor::_GmacRxAddr::_GmacRxAddrBM::bWrap |
Marks last descriptor in receive buffer
uint32_t _GmacTxDescriptor::_GmacTxStatus::_GmacTxStatusBM::bWrap |
Marks last descriptor in TD list
uint32_t _GmacTxDescriptor::_GmacTxStatus::_GmacTxStatusBM::len |
Length of buffer
uint32_t _GmacRxDescriptor::_GmacRxStatus::_GmacRxStatusBM::offset |
Length of frame including FCS
uint32_t _GmacRxDescriptor::_GmacRxStatus::_GmacRxStatusBM::vlanPriority |
Concatenation Format Indicator