![]() |
RTEMS 6.1
|
Modules | |
| GMAC Data Structs | |
Data Structures | |
| union | _GmacRxDescriptor::_GmacRxAddr |
| struct | _GmacRxDescriptor::_GmacRxAddr::_GmacRxAddrBM |
| union | _GmacRxDescriptor::_GmacRxStatus |
| struct | _GmacRxDescriptor::_GmacRxStatus::_GmacRxStatusBM |
| union | _GmacTxDescriptor::_GmacTxStatus |
| struct | _GmacTxDescriptor::_GmacTxStatus::_GmacTxStatusBM |
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. | |
| void | GMAC_EnableMdio (Gmac *pGmac) |
| Enable MDI with PHY. | |
| void | GMAC_DisableMdio (Gmac *pGmac) |
| Enable MDI with PHY. | |
| void | GMAC_EnableMII (Gmac *pGmac) |
| Enable MII mode for GMAC, called once after auto negotiate. | |
| void | GMAC_EnableRMII (Gmac *pGmac) |
| void | GMAC_EnableGMII (Gmac *pGmac) |
| Enable GMII mode for GMAC, called once after auto negotiate. | |
| void | GMAC_SetLinkSpeed (Gmac *pGmac, uint8_t speed, uint8_t fullduplex) |
| Setup the GMAC for the link : speed 100M/10M and Full/Half duplex. | |
| 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 | |
| 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. | |
| 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