SAMV71 Xplained Ultra Software Package 1.4

GMAC Defines
[Gmac_module]

Collaboration diagram for GMAC Defines:

Data Structures

struct  sGmacRxDescriptor::_GmacRxAddr::_GmacRxAddrBM
union  sGmacRxDescriptor::_GmacRxStatus
struct  sGmacRxDescriptor::_GmacRxStatus::_GmacRxStatusBM
union  sGmacTxDescriptor::_GmacTxStatus
struct  sGmacTxDescriptor::_GmacTxStatus::_GmacTxStatusBM

Modules

 GMAC Data Structs

Defines

#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)

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)

Variables

struct
sGmacRxDescriptor::_GmacRxAddr::_GmacRxAddrBM 
sGmacRxDescriptor::_GmacRxAddr::bm
struct
sGmacRxDescriptor::_GmacRxStatus::_GmacRxStatusBM 
sGmacRxDescriptor::_GmacRxStatus::bm
union
sGmacRxDescriptor::_GmacRxStatus 
sGmacRxDescriptor::status
struct
sGmacTxDescriptor::_GmacTxStatus::_GmacTxStatusBM 
sGmacTxDescriptor::_GmacTxStatus::bm
union
sGmacTxDescriptor::_GmacTxStatus 
sGmacTxDescriptor::status

Define Documentation

#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.

Definition at line 120 of file gmac.h.


Function Documentation

void GMAC_ClearRxStatus ( Gmac pGmac,
uint32_t  dwStatus 
)

Clear receive status

Definition at line 268 of file gmac.c.

void GMAC_ClearStatistics ( Gmac pGmac  ) 

Clear all statistics registers

Definition at line 453 of file gmac.c.

void GMAC_ClearTxStatus ( Gmac pGmac,
uint32_t  dwStatus 
)

Clear transmit status

Definition at line 252 of file gmac.c.

void GMAC_Configure ( Gmac pGmac,
uint32_t  dwCfg 
)

Setup network configuration register

Definition at line 479 of file gmac.c.

void GMAC_DisableAllQueueIt ( Gmac pGmac,
uint32_t  dwSources 
)

Disable interrupt(s).

Definition at line 374 of file gmac.c.

void GMAC_DisableIt ( Gmac pGmac,
uint32_t  dwSources,
gmacQueList_t  queueIdx 
)

Disable interrupt(s).

Definition at line 394 of file gmac.c.

void GMAC_DisableMdio ( Gmac pGmac  ) 

Enable MDI with PHY.

Parameters:
pGmac Pointer to an Gmac instance.

Definition at line 135 of file gmac.c.

void GMAC_EnableAllQueueIt ( Gmac pGmac,
uint32_t  dwSources 
)

Disable interrupt(s).

Definition at line 384 of file gmac.c.

void GMAC_EnableGMII ( Gmac pGmac  ) 

Enable GMII mode for GMAC, called once after auto negotiate.

Parameters:
pGmac Pointer to an Gmac instance.

Definition at line 157 of file gmac.c.

void GMAC_EnableIt ( Gmac pGmac,
uint32_t  dwSources,
gmacQueList_t  queueIdx 
)

Enable interrupt(s).

Definition at line 362 of file gmac.c.

void GMAC_EnableMdio ( Gmac pGmac  ) 

Enable MDI with PHY.

Parameters:
pGmac Pointer to an Gmac instance.

Definition at line 124 of file gmac.c.

void GMAC_EnableMII ( Gmac pGmac  ) 

Enable MII mode for GMAC, called once after auto negotiate.

Parameters:
pGmac Pointer to an Gmac instance.

Definition at line 146 of file gmac.c.

void GMAC_EnableRGMII ( Gmac pGmac,
uint32_t  duplex,
uint32_t  speed 
)

Enable RGMII mode for GMAC, called once after auto negotiate.

Parameters:
pGmac Pointer to an Gmac instance.
duplex,: 1 full duplex 0 half duplex
speed,: 0 10M 1 100M

Definition at line 172 of file gmac.c.

uint32_t GMAC_GetConfigure ( Gmac pGmac  ) 

Return network configuration.

Definition at line 512 of file gmac.c.

uint32_t GMAC_GetDMAConfig ( Gmac pGmac,
gmacQueList_t  queueIdx 
)

Return DMA configuration register

Definition at line 500 of file gmac.c.

uint32_t GMAC_GetItMask ( Gmac pGmac,
gmacQueList_t  queueIdx 
)

Return interrupt mask.

Definition at line 231 of file gmac.c.

uint32_t GMAC_GetItStatus ( Gmac pGmac,
gmacQueList_t  queueIdx 
)

Return interrupt status.

Definition at line 406 of file gmac.c.

uint32_t GMAC_GetNetworkControl ( Gmac pGmac  ) 

Get control value

Definition at line 354 of file gmac.c.

uint32_t GMAC_GetRxQueue ( Gmac pGmac,
gmacQueList_t  queueIdx 
)

Get Rx Queue Address

Definition at line 308 of file gmac.c.

uint32_t GMAC_GetRxStatus ( Gmac pGmac  ) 

Return receive status

Definition at line 260 of file gmac.c.

uint32_t GMAC_GetTxQueue ( Gmac pGmac,
gmacQueList_t  queueIdx 
)

Get Tx Queue

Definition at line 332 of file gmac.c.

uint32_t GMAC_GetTxStatus ( Gmac pGmac  ) 

Return transmit status

Definition at line 244 of file gmac.c.

void GMAC_IncreaseStatistics ( Gmac pGmac  ) 

Increase all statistics registers

Definition at line 461 of file gmac.c.

uint8_t GMAC_IsIdle ( Gmac pGmac  ) 

Return 1 if PHY is idle

Definition at line 53 of file gmac.c.

void GMAC_NetworkControl ( Gmac pGmac,
uint32_t  bmNCR 
)

Write control value

Definition at line 345 of file gmac.c.

uint16_t GMAC_PHYData ( Gmac pGmac  ) 

Return PHY maintenance data returned

Definition at line 82 of file gmac.c.

void GMAC_PHYMaintain ( Gmac pGmac,
uint8_t  bPhyAddr,
uint8_t  bRegAddr,
uint8_t  bRW,
uint16_t  wData 
)

Execute PHY maintenance command

Definition at line 62 of file gmac.c.

void GMAC_ReceiveEnable ( Gmac pGmac,
uint8_t  bEnaDis 
)

Enable/Disable GMAC receive.

Definition at line 277 of file gmac.c.

void GMAC_SetAddress ( Gmac pGmac,
uint8_t  bIndex,
uint8_t *  pMacAddr 
)

Set MAC Address

Definition at line 419 of file gmac.c.

void GMAC_SetAddress32 ( Gmac pGmac,
uint8_t  bIndex,
uint32_t  dwMacT,
uint32_t  dwMacB 
)

Set MAC Address via 2 DW

Definition at line 434 of file gmac.c.

void GMAC_SetAddress64 ( Gmac pGmac,
uint8_t  bIndex,
uint64_t  ddwMac 
)

Set MAC Address via int64

Definition at line 443 of file gmac.c.

void GMAC_SetDMAConfig ( Gmac pGmac,
uint32_t  dwDmaCfg,
gmacQueList_t  queueIdx 
)

Setup DMA configuration register

Definition at line 488 of file gmac.c.

void GMAC_SetLinkSpeed ( Gmac pGmac,
uint8_t  speed,
uint8_t  fullduplex 
)

Setup the GMAC for the link : speed 100M/10M and Full/Half duplex.

Parameters:
pGmac Pointer to an Gmac instance.
speed Link speed, 0 for 10M, 1 for 100M
fullduplex 1 for Full Duplex mode

Definition at line 203 of file gmac.c.

uint32_t GMAC_SetLocalLoopBack ( Gmac pGmac  ) 

set local loop back

Parameters:
pGmac Pointer to an Gmac instance.

Definition at line 222 of file gmac.c.

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.

Parameters:
pGmac Pointer to an Gmac instance.
mck Mdc clock
Returns:
1 if successfully, 0 if MDC clock not found.

Definition at line 97 of file gmac.c.

void GMAC_SetRxQueue ( Gmac pGmac,
uint32_t  dwAddr,
gmacQueList_t  queueIdx 
)

Set Rx Queue

Definition at line 296 of file gmac.c.

void GMAC_SetTxQueue ( Gmac pGmac,
uint32_t  dwAddr,
gmacQueList_t  queueIdx 
)

Set Tx Queue

Definition at line 320 of file gmac.c.

void GMAC_StatisticsWriteEnable ( Gmac pGmac,
uint8_t  bEnaDis 
)

Enable/Disable statistics registers writing.

Definition at line 469 of file gmac.c.

void GMAC_TransmissionHalt ( Gmac pGmac  ) 

Halt transmission

Definition at line 529 of file gmac.c.

void GMAC_TransmissionStart ( Gmac pGmac  ) 

Start transmission

Definition at line 521 of file gmac.c.

void GMAC_TransmitEnable ( Gmac pGmac,
uint8_t  bEnaDis 
)

Enable/Disable GMAC transmit.

Definition at line 286 of file gmac.c.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines