11#include "fsl_common.h"
12#if defined(FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET) && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
13#include "fsl_memory.h"
27#define FSL_ENET_DRIVER_VERSION (MAKE_VERSION(2, 6, 3))
33#ifndef FSL_FEATURE_ENET_QUEUE
34#define FSL_FEATURE_ENET_QUEUE 1
40#define ENET_BUFFDESCRIPTOR_RX_EMPTY_MASK 0x8000U
41#define ENET_BUFFDESCRIPTOR_RX_SOFTOWNER1_MASK 0x4000U
42#define ENET_BUFFDESCRIPTOR_RX_WRAP_MASK 0x2000U
43#define ENET_BUFFDESCRIPTOR_RX_SOFTOWNER2_Mask 0x1000U
44#define ENET_BUFFDESCRIPTOR_RX_LAST_MASK 0x0800U
45#define ENET_BUFFDESCRIPTOR_RX_MISS_MASK 0x0100U
46#define ENET_BUFFDESCRIPTOR_RX_BROADCAST_MASK 0x0080U
47#define ENET_BUFFDESCRIPTOR_RX_MULTICAST_MASK 0x0040U
48#define ENET_BUFFDESCRIPTOR_RX_LENVLIOLATE_MASK 0x0020U
49#define ENET_BUFFDESCRIPTOR_RX_NOOCTET_MASK 0x0010U
50#define ENET_BUFFDESCRIPTOR_RX_CRC_MASK 0x0004U
51#define ENET_BUFFDESCRIPTOR_RX_OVERRUN_MASK 0x0002U
52#define ENET_BUFFDESCRIPTOR_RX_TRUNC_MASK 0x0001U
57#define ENET_BUFFDESCRIPTOR_TX_READY_MASK 0x8000U
58#define ENET_BUFFDESCRIPTOR_TX_SOFTOWENER1_MASK 0x4000U
59#define ENET_BUFFDESCRIPTOR_TX_WRAP_MASK 0x2000U
60#define ENET_BUFFDESCRIPTOR_TX_SOFTOWENER2_MASK 0x1000U
61#define ENET_BUFFDESCRIPTOR_TX_LAST_MASK 0x0800U
62#define ENET_BUFFDESCRIPTOR_TX_TRANMITCRC_MASK 0x0400U
66#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
69#define ENET_BUFFDESCRIPTOR_RX_IPV4_MASK 0x0001U
70#define ENET_BUFFDESCRIPTOR_RX_IPV6_MASK 0x0002U
71#define ENET_BUFFDESCRIPTOR_RX_VLAN_MASK 0x0004U
72#define ENET_BUFFDESCRIPTOR_RX_PROTOCOLCHECKSUM_MASK 0x0010U
73#define ENET_BUFFDESCRIPTOR_RX_IPHEADCHECKSUM_MASK 0x0020U
78#define ENET_BUFFDESCRIPTOR_RX_INTERRUPT_MASK 0x0080U
79#define ENET_BUFFDESCRIPTOR_RX_UNICAST_MASK 0x0100U
80#define ENET_BUFFDESCRIPTOR_RX_COLLISION_MASK 0x0200U
81#define ENET_BUFFDESCRIPTOR_RX_PHYERR_MASK 0x0400U
82#define ENET_BUFFDESCRIPTOR_RX_MACERR_MASK 0x8000U
87#define ENET_BUFFDESCRIPTOR_TX_ERR_MASK 0x8000U
88#define ENET_BUFFDESCRIPTOR_TX_UNDERFLOWERR_MASK 0x2000U
89#define ENET_BUFFDESCRIPTOR_TX_EXCCOLLISIONERR_MASK 0x1000U
90#define ENET_BUFFDESCRIPTOR_TX_FRAMEERR_MASK 0x0800U
91#define ENET_BUFFDESCRIPTOR_TX_LATECOLLISIONERR_MASK 0x0400U
92#define ENET_BUFFDESCRIPTOR_TX_OVERFLOWERR_MASK 0x0200U
93#define ENET_BUFFDESCRIPTOR_TX_TIMESTAMPERR_MASK 0x0100U
98#define ENET_BUFFDESCRIPTOR_TX_INTERRUPT_MASK 0x4000U
99#define ENET_BUFFDESCRIPTOR_TX_TIMESTAMP_MASK 0x2000U
100#define ENET_BUFFDESCRIPTOR_TX_PROTOCHECKSUM_MASK 0x1000U
101#define ENET_BUFFDESCRIPTOR_TX_IPCHECKSUM_MASK 0x0800U
102#if defined(FSL_FEATURE_ENET_HAS_AVB) && FSL_FEATURE_ENET_HAS_AVB
103#define ENET_BUFFDESCRIPTOR_TX_USETXLAUNCHTIME_MASK 0x0100U
104#define ENET_BUFFDESCRIPTOR_TX_FRAMETYPE_MASK 0x00F0U
105#define ENET_BUFFDESCRIPTOR_TX_FRAMETYPE_SHIFT 4U
106#define ENET_BD_FTYPE(n) \
107 (((uint32_t)(n) << ENET_BUFFDESCRIPTOR_TX_FRAMETYPE_SHIFT) & ENET_BUFFDESCRIPTOR_TX_FRAMETYPE_MASK)
113#define ENET_BUFFDESCRIPTOR_RX_ERR_MASK \
114 (ENET_BUFFDESCRIPTOR_RX_TRUNC_MASK | ENET_BUFFDESCRIPTOR_RX_OVERRUN_MASK | \
115 ENET_BUFFDESCRIPTOR_RX_LENVLIOLATE_MASK | ENET_BUFFDESCRIPTOR_RX_NOOCTET_MASK | ENET_BUFFDESCRIPTOR_RX_CRC_MASK)
116#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
117#define ENET_BUFFDESCRIPTOR_RX_EXT_ERR_MASK \
118 (ENET_BUFFDESCRIPTOR_RX_MACERR_MASK | ENET_BUFFDESCRIPTOR_RX_PHYERR_MASK | ENET_BUFFDESCRIPTOR_RX_COLLISION_MASK)
123#define ENET_FRAME_MAX_FRAMELEN 1518U
124#define ENET_FRAME_VLAN_TAGLEN 4U
125#define ENET_FRAME_CRC_LEN 4U
126#define ENET_FRAME_TX_LEN_LIMITATION(x) \
127 ((((x)->RCR & ENET_RCR_MAX_FL_MASK) >> ENET_RCR_MAX_FL_SHIFT) - ENET_FRAME_CRC_LEN)
129#define ENET_FIFO_MIN_RX_FULL 5U
130#define ENET_RX_MIN_BUFFERSIZE 256U
131#define ENET_PHY_MAXADDRESS (ENET_MMFR_PA_MASK >> ENET_MMFR_PA_SHIFT)
133#if FSL_FEATURE_ENET_QUEUE > 1
134#define ENET_TX_INTERRUPT \
135 ((uint32_t)kENET_TxFrameInterrupt | (uint32_t)kENET_TxBufferInterrupt | (uint32_t)kENET_TxFrame1Interrupt | \
136 (uint32_t)kENET_TxBuffer1Interrupt | (uint32_t)kENET_TxFrame2Interrupt | \
137 (uint32_t)kENET_TxBuffer2Interrupt)
138#define ENET_RX_INTERRUPT \
139 ((uint32_t)kENET_RxFrameInterrupt | (uint32_t)kENET_RxBufferInterrupt | (uint32_t)kENET_RxFrame1Interrupt | \
140 (uint32_t)kENET_RxBuffer1Interrupt | (uint32_t)kENET_RxFrame2Interrupt | \
141 (uint32_t)kENET_RxBuffer2Interrupt)
143#define ENET_TX_INTERRUPT \
144 ((uint32_t)kENET_TxFrameInterrupt | (uint32_t)kENET_TxBufferInterrupt)
145#define ENET_RX_INTERRUPT \
146 ((uint32_t)kENET_RxFrameInterrupt | (uint32_t)kENET_RxBufferInterrupt)
148#define ENET_TS_INTERRUPT \
149 ((uint32_t)kENET_TsTimerInterrupt | (uint32_t)kENET_TsAvailInterrupt)
150#define ENET_ERR_INTERRUPT \
151 ((uint32_t)kENET_BabrInterrupt | (uint32_t)kENET_BabtInterrupt | (uint32_t)kENET_EBusERInterrupt | \
152 (uint32_t)kENET_LateCollisionInterrupt | (uint32_t)kENET_RetryLimitInterrupt | \
153 (uint32_t)kENET_UnderrunInterrupt | (uint32_t)kENET_PayloadRxInterrupt)
175#if defined(FSL_FEATURE_ENET_HAS_AVB) && FSL_FEATURE_ENET_HAS_AVB
188#if defined(FSL_FEATURE_ENET_HAS_AVB) && FSL_FEATURE_ENET_HAS_AVB
189 kENET_MiiSpeed1000M = 2U
214#if defined(FSL_FEATURE_ENET_HAS_EXTEND_MDIO) && FSL_FEATURE_ENET_HAS_EXTEND_MDIO
216typedef enum _enet_mii_extend_opcode
218 kENET_MiiAddrWrite_C45 = 0U,
219 kENET_MiiWriteFrame_C45 = 1U,
220 kENET_MiiReadFrame_C45 = 3U
221} enet_mii_extend_opcode;
248#if defined(FSL_FEATURE_ENET_HAS_AVB) && FSL_FEATURE_ENET_HAS_AVB
249 kENET_ControlSVLANEnable = 0x0400U,
250 kENET_ControlVLANUseSecondTag = 0x0800U
275#if FSL_FEATURE_ENET_QUEUE > 1
276 kENET_RxFlush2Interrupt = ENET_EIR_RXFLUSH_2_MASK,
277 kENET_RxFlush1Interrupt = ENET_EIR_RXFLUSH_1_MASK,
278 kENET_RxFlush0Interrupt = ENET_EIR_RXFLUSH_0_MASK,
279 kENET_TxFrame2Interrupt = ENET_EIR_TXF2_MASK,
280 kENET_TxBuffer2Interrupt = ENET_EIR_TXB2_MASK,
281 kENET_RxFrame2Interrupt = ENET_EIR_RXF2_MASK,
282 kENET_RxBuffer2Interrupt = ENET_EIR_RXB2_MASK,
283 kENET_TxFrame1Interrupt = ENET_EIR_TXF1_MASK,
284 kENET_TxBuffer1Interrupt = ENET_EIR_TXB1_MASK,
285 kENET_RxFrame1Interrupt = ENET_EIR_RXF1_MASK,
286 kENET_RxBuffer1Interrupt = ENET_EIR_RXB1_MASK,
303#if defined(FSL_FEATURE_ENET_HAS_AVB) && FSL_FEATURE_ENET_HAS_AVB
305typedef enum _enet_idle_slope
307 kENET_IdleSlope1 = 1U,
308 kENET_IdleSlope2 = 2U,
309 kENET_IdleSlope4 = 4U,
310 kENET_IdleSlope8 = 8U,
311 kENET_IdleSlope16 = 16U,
312 kENET_IdleSlope32 = 32U,
313 kENET_IdleSlope64 = 64U,
314 kENET_IdleSlope128 = 128U,
315 kENET_IdleSlope256 = 256U,
316 kENET_IdleSlope384 = 384U,
317 kENET_IdleSlope512 = 512U,
318 kENET_IdleSlope640 = 640U,
319 kENET_IdleSlope768 = 768U,
320 kENET_IdleSlope896 = 896U,
321 kENET_IdleSlope1024 = 1024U,
322 kENET_IdleSlope1152 = 1152U,
323 kENET_IdleSlope1280 = 1280U,
324 kENET_IdleSlope1408 = 1408U,
325 kENET_IdleSlope1536 = 1536U
347#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
349typedef enum _enet_ptp_event_type
351 kENET_PtpEventMsgType = 3U,
352 kENET_PtpSrcPortIdLen = 10U,
353 kENET_PtpEventPort = 319U,
354 kENET_PtpGnrlPort = 320U
355} enet_ptp_event_type_t;
358typedef enum _enet_ptp_timer_channel
360 kENET_PtpTimerChannel1 = 0U,
361 kENET_PtpTimerChannel2,
362 kENET_PtpTimerChannel3,
363 kENET_PtpTimerChannel4
364} enet_ptp_timer_channel_t;
367typedef enum _enet_ptp_timer_channel_mode
369 kENET_PtpChannelDisable = 0U,
370 kENET_PtpChannelRisingCapture = 1U,
371 kENET_PtpChannelFallingCapture = 2U,
372 kENET_PtpChannelBothCapture = 3U,
373 kENET_PtpChannelSoftCompare = 4U,
374 kENET_PtpChannelToggleCompare = 5U,
375 kENET_PtpChannelClearCompare = 6U,
376 kENET_PtpChannelSetCompare = 7U,
377 kENET_PtpChannelClearCompareSetOverflow = 10U,
378 kENET_PtpChannelSetCompareClearOverflow = 11U,
379 kENET_PtpChannelPulseLowonCompare = 14U,
380 kENET_PtpChannelPulseHighonCompare = 15U
381} enet_ptp_timer_channel_mode_t;
390#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
391 uint16_t controlExtend0;
392 uint16_t controlExtend1;
393 uint16_t payloadCheckSum;
394 uint8_t headerLength;
395 uint8_t protocolTyte;
397 uint16_t controlExtend2;
412#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
413 uint16_t controlExtend0;
414 uint16_t controlExtend1;
415#if defined(FSL_FEATURE_ENET_HAS_AVB) && FSL_FEATURE_ENET_HAS_AVB
416 uint16_t txLaunchTimeLow;
417 uint16_t txLaunchTimeHigh;
423 uint16_t controlExtend2;
440#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
441 uint32_t statsRxProtocolChecksumErr;
442 uint32_t statsRxIpHeadChecksumErr;
443 uint32_t statsRxMacErr;
444 uint32_t statsRxPhyErr;
445 uint32_t statsRxCollisionErr;
447 uint32_t statsTxFrameErr;
448 uint32_t statsTxOverFlowErr;
449 uint32_t statsTxLateCollisionErr;
450 uint32_t statsTxExcessCollisionErr;
451 uint32_t statsTxUnderFlowErr;
452 uint32_t statsTxTsErr;
466#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
467 bool statsRxCollisionErr : 1;
468 bool statsRxPhyErr : 1;
470 bool statsRxMacErr : 1;
489#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
491typedef struct _enet_ptp_time
498typedef struct _enet_ptp_time_data
501 uint8_t sourcePortId[kENET_PtpSrcPortIdLen];
504 enet_ptp_time_t timeStamp;
505} enet_ptp_time_data_t;
508typedef struct _enet_ptp_config
510 enet_ptp_timer_channel_t channel;
511 uint32_t ptp1588ClockSrc_Hz;
519#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
521 enet_ptp_time_t timeStamp;
536typedef void *(*enet_rx_alloc_callback_t)(
ENET_Type *base,
void *userData, uint8_t ringId);
573#if defined(FSL_FEATURE_ENET_HAS_INTERRUPT_COALESCE) && FSL_FEATURE_ENET_HAS_INTERRUPT_COALESCE
575typedef struct _enet_intcoalesce_config
577 uint8_t txCoalesceFrameCount[FSL_FEATURE_ENET_QUEUE];
578 uint16_t txCoalesceTimeCount[FSL_FEATURE_ENET_QUEUE];
579 uint8_t rxCoalesceFrameCount[FSL_FEATURE_ENET_QUEUE];
580 uint16_t rxCoalesceTimeCount[FSL_FEATURE_ENET_QUEUE];
581} enet_intcoalesce_config_t;
584#if defined(FSL_FEATURE_ENET_HAS_AVB) && FSL_FEATURE_ENET_HAS_AVB
595typedef struct _enet_avb_config
597 uint16_t rxClassifyMatch[FSL_FEATURE_ENET_QUEUE - 1];
598 enet_idle_slope_t idleSlope[FSL_FEATURE_ENET_QUEUE - 1];
608#if FSL_FEATURE_ENET_QUEUE > 1
658#if defined(FSL_FEATURE_ENET_HAS_RECEIVE_STATUS_THRESHOLD) && FSL_FEATURE_ENET_HAS_RECEIVE_STATUS_THRESHOLD
659 uint8_t rxFifoStatEmptyThreshold;
667#if defined(FSL_FEATURE_ENET_HAS_INTERRUPT_COALESCE) && FSL_FEATURE_ENET_HAS_INTERRUPT_COALESCE
668 enet_intcoalesce_config_t *intCoalesceCfg;
712#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
715 uint64_t msTimerSecond;
718#if defined(FSL_FEATURE_ENET_TIMESTAMP_CAPTURE_BIT_INVALID) && FSL_FEATURE_ENET_TIMESTAMP_CAPTURE_BIT_INVALID
720 uint32_t tsDelayCount;
733#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
746#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
747typedef struct _enet_tx_config_struct
751 bool autoProtocolChecksum : 1;
752 bool autoIPChecksum : 1;
753 uint8_t AVBFrameType : 4;
757} enet_tx_config_struct_t;
764#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
765 enet_tx_config_struct_t txConfig;
771#if FSL_FEATURE_ENET_QUEUE > 1
777#if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
779#if defined(FSL_FEATURE_ENET_HAS_EXTRA_CLOCK_GATE) && FSL_FEATURE_ENET_HAS_EXTRA_CLOCK_GATE
788#if defined(__cplusplus)
855 uint32_t srcClock_Hz);
890 uint32_t srcClock_Hz);
919static inline void ENET_Reset(
ENET_Type *base)
921 base->ECR |= ENET_ECR_RESET_MASK;
962static inline bool ENET_GetSMI(
ENET_Type *base)
964 return (0U != (base->MSCR & 0x7EU));
973static inline uint32_t ENET_ReadSMIData(
ENET_Type *base)
975 return (uint32_t)((base->MMFR & ENET_MMFR_DATA_MASK) >> ENET_MMFR_DATA_SHIFT);
991static inline void ENET_StartSMIWrite(
1040#if defined(FSL_FEATURE_ENET_HAS_EXTEND_MDIO) && FSL_FEATURE_ENET_HAS_EXTEND_MDIO
1053static inline void ENET_StartExtC45SMIWriteReg(
ENET_Type *base, uint8_t portAddr, uint8_t devAddr, uint16_t regAddr)
1071static inline void ENET_StartExtC45SMIWriteData(
ENET_Type *base, uint8_t portAddr, uint8_t devAddr, uint16_t data)
1088static inline void ENET_StartExtC45SMIReadData(
ENET_Type *base, uint8_t portAddr, uint8_t devAddr)
1105status_t ENET_MDIOC45Write(
ENET_Type *base, uint8_t portAddr, uint8_t devAddr, uint16_t regAddr, uint16_t data);
1118status_t ENET_MDIOC45Read(
ENET_Type *base, uint8_t portAddr, uint8_t devAddr, uint16_t regAddr, uint16_t *pData);
1121#if ((defined(FSL_FEATURE_ENET_HAS_RGMII_TXC_DELAY) && FSL_FEATURE_ENET_HAS_RGMII_TXC_DELAY) || \
1122 (defined(FSL_FEATURE_ENET_HAS_RGMII_RXC_DELAY) && FSL_FEATURE_ENET_HAS_RGMII_RXC_DELAY))
1130static inline void ENET_SetRGMIIClockDelay(
ENET_Type *base,
bool txEnabled,
bool rxEnabled)
1132 uint32_t ecrReg = base->ECR;
1134#if defined(FSL_FEATURE_ENET_HAS_RGMII_TXC_DELAY) && FSL_FEATURE_ENET_HAS_RGMII_TXC_DELAY
1138 ecrReg |= ENET_ECR_TXC_DLY_MASK;
1142 ecrReg &= ~ENET_ECR_TXC_DLY_MASK;
1146#if defined(FSL_FEATURE_ENET_HAS_RGMII_RXC_DELAY) && FSL_FEATURE_ENET_HAS_RGMII_RXC_DELAY
1150 ecrReg |= ENET_ECR_RXC_DLY_MASK;
1154 ecrReg &= ~ENET_ECR_RXC_DLY_MASK;
1209#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
1210#if defined(FSL_FEATURE_ENET_HAS_AVB) && FSL_FEATURE_ENET_HAS_AVB
1240static inline void ENET_ActiveRead(
ENET_Type *base)
1242 base->RDAR = ENET_RDAR_RDAR_MASK;
1243#if FSL_FEATURE_ENET_QUEUE > 1
1244 if (FSL_FEATURE_ENET_INSTANCE_QUEUEn(base) > 1)
1246 base->RDAR1 = ENET_RDAR1_RDAR_MASK;
1247 base->RDAR2 = ENET_RDAR2_RDAR_MASK;
1261static inline void ENET_EnableSleepMode(
ENET_Type *base,
bool enable)
1266 base->ECR |= ENET_ECR_SLEEP_MASK | ENET_ECR_MAGICEN_MASK;
1270 base->ECR &= ~(ENET_ECR_SLEEP_MASK | ENET_ECR_MAGICEN_MASK);
1283static inline void ENET_GetAccelFunction(
ENET_Type *base, uint32_t *txAccelOption, uint32_t *rxAccelOption)
1285 assert(txAccelOption !=
NULL);
1286 assert(txAccelOption !=
NULL);
1288 *txAccelOption = base->TACC;
1289 *rxAccelOption = base->RACC;
1313static inline void ENET_EnableInterrupts(
ENET_Type *base, uint32_t mask)
1332static inline void ENET_DisableInterrupts(
ENET_Type *base, uint32_t mask)
1334 base->EIMR &= ~mask;
1344static inline uint32_t ENET_GetInterruptStatus(
ENET_Type *base)
1363static inline void ENET_ClearInterruptStatus(
ENET_Type *base, uint32_t mask)
1368#if FSL_FEATURE_ENET_QUEUE > 1
1411#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
1469#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
1584 const uint8_t *data,
1740 const uint8_t *data,
1746#if FSL_FEATURE_ENET_QUEUE > 1
1772void ENET_CommonFrame1IRQHandler(
ENET_Type *base);
1781void ENET_CommonFrame2IRQHandler(
ENET_Type *base);
1827#ifdef ENET_ENHANCEDBUFFERDESCRIPTOR_MODE
1860void ENET_Ptp1588StartTimer(
ENET_Type *base, uint32_t ptpClkSrc);
1868static inline void ENET_Ptp1588StopTimer(
ENET_Type *base)
1871 base->ATCR &= ~ENET_ATCR_EN_MASK;
1872 base->ATCR |= ENET_ATCR_RESTART_MASK;
1886void ENET_Ptp1588AdjustTimer(
ENET_Type *base, uint32_t corrIncrease, uint32_t corrPeriod);
1896static inline void ENET_Ptp1588SetChannelMode(
ENET_Type *base,
1897 enet_ptp_timer_channel_t channel,
1898 enet_ptp_timer_channel_mode_t mode,
1901 uint32_t tcrReg = 0;
1903 tcrReg =
ENET_TCSR_TMODE(mode) | (intEnable ? ENET_TCSR_TIE_MASK : 0U);
1906 base->CHANNEL[channel].TCSR = 0;
1907 base->CHANNEL[channel].TCSR = tcrReg;
1910#if defined(FSL_FEATURE_ENET_HAS_TIMER_PWCONTROL) && FSL_FEATURE_ENET_HAS_TIMER_PWCONTROL
1932static inline void ENET_Ptp1588SetChannelOutputPulseWidth(
1933 ENET_Type *base, enet_ptp_timer_channel_t channel,
bool isOutputLow, uint8_t pulseWidth,
bool intEnable)
1949 base->CHANNEL[channel].TCSR = 0;
1950 base->CHANNEL[channel].TCSR = tcrReg;
1961static inline void ENET_Ptp1588SetChannelCmpValue(
ENET_Type *base, enet_ptp_timer_channel_t channel, uint32_t cmpValue)
1963 base->CHANNEL[channel].TCCR = cmpValue;
1973static inline bool ENET_Ptp1588GetChannelStatus(
ENET_Type *base, enet_ptp_timer_channel_t channel)
1975 return (0U != (base->CHANNEL[channel].TCSR & ENET_TCSR_TF_MASK));
1984static inline void ENET_Ptp1588ClearChannelStatus(
ENET_Type *base, enet_ptp_timer_channel_t channel)
1986 base->CHANNEL[channel].TCSR |= ENET_TCSR_TF_MASK;
1987 base->TGSR = (1UL << (uint32_t)channel);
1995static inline uint32_t ENET_Ptp1588GetGlobalStatus(
ENET_Type *base)
2040#if defined(__cplusplus)
#define ENET_TCSR_TIE(x)
Definition: MIMXRT1052.h:20304
#define ENET_TCSR_TMODE(x)
Definition: MIMXRT1052.h:20296
#define ENET_MMFR_ST(x)
Definition: MIMXRT1052.h:18980
#define ENET_MMFR_RA(x)
Definition: MIMXRT1052.h:18962
#define ENET_MMFR_DATA(x)
Definition: MIMXRT1052.h:18950
#define ENET_MMFR_PA(x)
Definition: MIMXRT1052.h:18968
#define ENET_MMFR_OP(x)
Definition: MIMXRT1052.h:18974
#define ENET_TCSR_TPWC(x)
Definition: MIMXRT1052.h:20323
#define ENET_MMFR_TA(x)
Definition: MIMXRT1052.h:18956
enum _clock_ip_name clock_ip_name_t
CCM CCGR gate control for each module independently.
#define NULL
Requests a GPIO pin group configuration.
Definition: xil_types.h:54
struct _enet_config enet_config_t
Defines the basic configuration structure for the ENET device.
void ENET_ReleaseRxBuffer(ENET_Type *base, enet_handle_t *handle, void *buffer, uint8_t ringId)
Release receive buffer descriptor to DMA.
Definition: fsl_enet.c:2252
enet_rx_free_callback_t rxBuffFree
Definition: fsl_enet.h:673
enet_callback_t callback
Definition: fsl_enet.h:706
uint32_t statsTxFifoUnderRunErr
Definition: fsl_enet.h:486
enet_tx_bd_ring_t txBdRing[FSL_FEATURE_ENET_QUEUE]
Definition: fsl_enet.h:700
uint16_t txRingLen
Definition: fsl_enet.h:531
bool txMaintainEnable[FSL_FEATURE_ENET_QUEUE]
Definition: fsl_enet.h:704
void ENET_TransmitIRQHandler(ENET_Type *base, enet_handle_t *handle)
The transmit IRQ handler.
Definition: fsl_enet.c:3447
_enet_special_control_flag
Defines a special configuration for ENET MAC controller.
Definition: fsl_enet.h:237
struct _enet_data_error_stats enet_data_error_stats_t
Defines the ENET data error statistics structure.
_enet_mii_speed
Defines the 10/100/1000 Mbps speed for the MII data interface.
Definition: fsl_enet.h:185
uint16_t length
Definition: fsl_enet.h:387
status_t ENET_GetRxBuffer(ENET_Type *base, enet_handle_t *handle, void **buffer, uint32_t *length, uint8_t ringId, bool *isLastBuff, uint32_t *ts)
Get a receive buffer pointer of the ENET device for specified ring.
Definition: fsl_enet.c:2181
enet_tx_dirty_ring_t txDirtyRing[FSL_FEATURE_ENET_QUEUE]
Definition: fsl_enet.h:708
uint32_t statsTxCrcAlignErr
Definition: fsl_enet.h:485
uint32_t txBuffNum
Definition: fsl_enet.h:763
uint16_t txBuffSizeAlign[FSL_FEATURE_ENET_QUEUE]
Definition: fsl_enet.h:702
uint8_t ringNum
Definition: fsl_enet.h:671
uint32_t statsRxLenGreaterErr
Definition: fsl_enet.h:435
enum _enet_event enet_event_t
Defines the common interrupt event for callback use.
uint16_t txConsumIdx
Definition: fsl_enet.h:530
bool rxMaintainEnable
Definition: fsl_enet.h:568
void ENET_LeaveMulticastGroup(ENET_Type *base, uint8_t *address)
Moves the ENET device from a multicast group.
Definition: fsl_enet.c:3044
uint32_t statsTxFrameOk
Definition: fsl_enet.h:484
_enet_mii_mode
Defines the MII/RMII/RGMII mode for data interface between the MAC and the PHY.
Definition: fsl_enet.h:172
uint16_t txGenIdx
Definition: fsl_enet.h:529
uint32_t statsRxAlignErr
Definition: fsl_enet.h:480
_enet_event
Defines the common interrupt event for callback use.
Definition: fsl_enet.h:294
const clock_ip_name_t s_enetClock[]
Pointers to enet clocks for each instance.
Definition: fsl_enet.c:46
uint16_t length
Definition: fsl_enet.h:727
bool isFull
Definition: fsl_enet.h:532
enet_mii_duplex_t miiDuplex
Definition: fsl_enet.h:652
enet_rx_frame_attribute_t rxAttribute
Definition: fsl_enet.h:742
volatile enet_tx_bd_struct_t * txBdStartAddrAlign
Definition: fsl_enet.h:565
struct _enet_rx_bd_struct enet_rx_bd_struct_t
Defines the receive buffer descriptor structure for the little endian system.
uint16_t totLen
Definition: fsl_enet.h:741
uint16_t control
Definition: fsl_enet.h:388
void ENET_Ptp1588IRQHandler(ENET_Type *base)
the common IRQ handler for the 1588 irq handler.
Definition: fsl_enet.c:3751
status_t ENET_SendFrame(ENET_Type *base, enet_handle_t *handle, const uint8_t *data, uint32_t length, uint8_t ringId, bool tsFlag, void *context)
Transmits an ENET frame for specified ring.
Definition: fsl_enet.c:1866
uint8_t * txBufferAlign
Definition: fsl_enet.h:567
uint32_t interrupt
Definition: fsl_enet.h:648
enet_rx_bd_ring_t rxBdRing[FSL_FEATURE_ENET_QUEUE]
Definition: fsl_enet.h:699
uint32_t statsRxFrameCount
Definition: fsl_enet.h:477
uint16_t rxRingLen
Definition: fsl_enet.h:693
struct _enet_tx_dirty_ring enet_tx_dirty_ring_t
Defines the ENET transmit dirty addresses ring/queue structure.
void ENET_SetSMI(ENET_Type *base, uint32_t srcClock_Hz, bool isPreambleDisabled)
Sets the ENET SMI(serial management interface)- MII management interface.
Definition: fsl_enet.c:1250
_enet_interrupt_enable
List of interrupts supported by the peripheral. This enumeration uses one-bit encoding to allow a log...
Definition: fsl_enet.h:260
enum _enet_mii_speed enet_mii_speed_t
Defines the 10/100/1000 Mbps speed for the MII data interface.
uint32_t buffer
Definition: fsl_enet.h:411
uint32_t ENET_GetInstance(ENET_Type *base)
Get the ENET instance from peripheral base address.
Definition: fsl_enet.c:174
status_t ENET_Up(ENET_Type *base, enet_handle_t *handle, const enet_config_t *config, const enet_buffer_config_t *bufferConfig, uint8_t *macAddr, uint32_t srcClock_Hz)
Initializes the ENET module.
Definition: fsl_enet.c:257
uint32_t statsRxAlignErr
Definition: fsl_enet.h:436
uint16_t pauseDuration
Definition: fsl_enet.h:655
void * userData
Definition: fsl_enet.h:675
uint32_t statsRxCrcErr
Definition: fsl_enet.h:479
void ENET_AddMulticastGroup(ENET_Type *base, uint8_t *address)
Adds the ENET device to a multicast group.
Definition: fsl_enet.c:2991
uint32_t statsTxFrameCount
Definition: fsl_enet.h:483
enum _enet_mii_write enet_mii_write_t
Define the MII opcode for normal MDIO_CLAUSES_22 Frame.
volatile uint16_t txDescUsed
Definition: fsl_enet.h:684
enum _enet_mii_duplex enet_mii_duplex_t
Defines the half or full duplex for the MII data interface.
enet_frame_info_t * txDirtyBase
Definition: fsl_enet.h:528
_enet_mii_read
Defines the read operation for the MII management frame.
Definition: fsl_enet.h:209
uint32_t statsRxFcsErr
Definition: fsl_enet.h:437
void ENET_ErrorIRQHandler(ENET_Type *base, enet_handle_t *handle)
Some special IRQ handler including the error, mii, wakeup irq handler.
Definition: fsl_enet.c:3552
uint8_t txAccelerConfig
Definition: fsl_enet.h:654
enet_rx_free_callback_t rxBuffFree
Definition: fsl_enet.h:711
void(* enet_callback_t)(ENET_Type *base, enet_handle_t *handle, enet_event_t event, enet_frame_info_t *frameInfo, void *userData)
ENET callback function.
Definition: fsl_enet.h:606
uint8_t * rxBufferAlign
Definition: fsl_enet.h:566
bool rxMaintainEnable[FSL_FEATURE_ENET_QUEUE]
Definition: fsl_enet.h:703
uint8_t rxFifoFullThreshold
Definition: fsl_enet.h:663
uint8_t rxAccelerConfig
Definition: fsl_enet.h:653
void ENET_Deinit(ENET_Type *base)
Deinitializes the ENET module.
Definition: fsl_enet.c:378
void * context
Definition: fsl_enet.h:518
enet_callback_t callback
Definition: fsl_enet.h:674
enet_frame_info_t * txFrameInfo
Definition: fsl_enet.h:570
uint8_t txFifoWatermark
Definition: fsl_enet.h:665
uint16_t control
Definition: fsl_enet.h:410
uint32_t statsRxFifoOverflowErr
Definition: fsl_enet.h:482
enet_mii_mode_t miiMode
Definition: fsl_enet.h:650
enum _enet_tx_accelerator enet_tx_accelerator_t
Defines the transmit accelerator configuration.
void(* enet_rx_free_callback_t)(ENET_Type *base, void *buffer, void *userData, uint8_t ringId)
Defines the ENET Rx memory buffer free function pointer.
Definition: fsl_enet.h:539
void ENET_SetTxISRHandler(ENET_Type *base, enet_isr_t ISRHandler)
Set the second level Tx IRQ handler.
Definition: fsl_enet.c:430
uint16_t txBuffSizeAlign
Definition: fsl_enet.h:561
void(* enet_isr_t)(ENET_Type *base, enet_handle_t *handle)
Define interrupt IRQ handler.
Definition: fsl_enet.h:774
struct _enet_rx_frame_error enet_rx_frame_error_t
Defines the Rx frame error structure.
bool statsRxTruncateErr
Definition: fsl_enet.h:459
status_t ENET_MDIORead(ENET_Type *base, uint8_t phyAddr, uint8_t regAddr, uint16_t *pData)
MDIO read with IEEE802.3 Clause 22 format.
Definition: fsl_enet.c:1341
_enet_tx_accelerator
Defines the transmit accelerator configuration.
Definition: fsl_enet.h:331
void ENET_GetMacAddr(ENET_Type *base, uint8_t *macAddr)
Gets the ENET module Mac address.
Definition: fsl_enet.c:1222
struct _enet_buffer_config enet_buffer_config_t
Defines the receive buffer descriptor configuration structure.
void ENET_SetMII(ENET_Type *base, enet_mii_speed_t speed, enet_mii_duplex_t duplex)
Sets the ENET MII speed and duplex.
Definition: fsl_enet.c:1146
void ENET_SetMacAddr(ENET_Type *base, uint8_t *macAddr)
Sets the ENET module Mac address.
Definition: fsl_enet.c:1202
uint16_t rxBuffSizeAlign
Definition: fsl_enet.h:560
void * buffer
Definition: fsl_enet.h:726
enum _enet_mii_mode enet_mii_mode_t
Defines the MII/RMII/RGMII mode for data interface between the MAC and the PHY.
uint16_t rxMaxFrameLen
Definition: fsl_enet.h:649
uint16_t txBdNumber
Definition: fsl_enet.h:559
uint16_t length
Definition: fsl_enet.h:409
volatile enet_rx_bd_struct_t * rxBdBase
Definition: fsl_enet.h:691
bool statsRxOverRunErr
Definition: fsl_enet.h:460
void ENET_ReceiveIRQHandler(ENET_Type *base, enet_handle_t *handle)
The receive IRQ handler.
Definition: fsl_enet.c:3507
uint8_t ringNum
Definition: fsl_enet.h:705
struct enet_frame_info enet_frame_info_t
Defines the frame info structure.
struct _enet_tx_bd_ring enet_tx_bd_ring_t
Defines the ENET transmit buffer descriptor ring/queue structure.
void ENET_CommonFrame0IRQHandler(ENET_Type *base)
the common IRQ handler for the tx/rx/error etc irq handler.
Definition: fsl_enet.c:3649
void ENET_SetErrISRHandler(ENET_Type *base, enet_isr_t ISRHandler)
Set the second level Err IRQ handler.
Definition: fsl_enet.c:439
bool txMaintainEnable
Definition: fsl_enet.h:569
enet_buffer_struct_t * rxBuffArray
Definition: fsl_enet.h:740
status_t ENET_SetTxReclaim(enet_handle_t *handle, bool isEnable, uint8_t ringId)
Enable or disable tx descriptors reclaim mechanism.
Definition: fsl_enet.c:2084
status_t ENET_GetRxFrame(ENET_Type *base, enet_handle_t *handle, enet_rx_frame_struct_t *rxFrame, uint8_t ringId)
Receives one frame in specified BD ring with zero copy.
Definition: fsl_enet.c:2416
void ENET_GetStatistics(ENET_Type *base, enet_transfer_stats_t *statistics)
Gets statistical data in transfer.
Definition: fsl_enet.c:1565
bool txReclaimEnable[FSL_FEATURE_ENET_QUEUE]
Definition: fsl_enet.h:709
uint16_t txRingLen
Definition: fsl_enet.h:685
volatile enet_rx_bd_struct_t * rxBdStartAddrAlign
Definition: fsl_enet.h:563
bool statsRxLenGreaterErr
Definition: fsl_enet.h:464
status_t ENET_GetRxFrameSize(enet_handle_t *handle, uint32_t *length, uint8_t ringId)
Gets the size of the read frame for specified ring.
Definition: fsl_enet.c:1599
uint32_t statsRxOverRunErr
Definition: fsl_enet.h:438
uint32_t statsRxDropInvalidSFD
Definition: fsl_enet.h:481
void *(* enet_rx_alloc_callback_t)(ENET_Type *base, void *userData, uint8_t ringId)
Defines the ENET Rx memory buffer alloc function pointer.
Definition: fsl_enet.h:536
status_t ENET_ReadFrame(ENET_Type *base, enet_handle_t *handle, uint8_t *data, uint32_t length, uint8_t ringId, uint32_t *ts)
Reads a frame from the ENET device. This function reads a frame (both the data and the length) from t...
Definition: fsl_enet.c:1716
bool promiscuous
Definition: fsl_enet.h:732
_enet_mii_write
Define the MII opcode for normal MDIO_CLAUSES_22 Frame.
Definition: fsl_enet.h:202
void ENET_Down(ENET_Type *base)
Stops the ENET module.
Definition: fsl_enet.c:354
void * userData
Definition: fsl_enet.h:707
status_t ENET_SendFrameZeroCopy(ENET_Type *base, enet_handle_t *handle, const uint8_t *data, uint32_t length, uint8_t ringId, bool tsFlag, void *context)
Transmits an ENET frame for specified ring with zero-copy.
Definition: fsl_enet.c:2803
struct _enet_rx_bd_ring enet_rx_bd_ring_t
Defines the ENET receive buffer descriptor ring/queue structure.
enum _enet_rx_accelerator enet_rx_accelerator_t
Defines the receive accelerator configuration.
void ENET_ReclaimTxDescriptor(ENET_Type *base, enet_handle_t *handle, uint8_t ringId)
Reclaim tx descriptors. This function is used to update the tx descriptor status and store the tx tim...
Definition: fsl_enet.c:2125
enet_rx_frame_error_t rxFrameError
Definition: fsl_enet.h:743
struct _enet_tx_bd_struct enet_tx_bd_struct_t
Defines the enhanced transmit buffer descriptor structure for the little endian system.
void ENET_SetRxISRHandler(ENET_Type *base, enet_isr_t ISRHandler)
Set the second level Rx IRQ handler.
Definition: fsl_enet.c:422
enet_rx_alloc_callback_t rxBuffAlloc
Definition: fsl_enet.h:672
_enet_rx_accelerator
Defines the receive accelerator configuration.
Definition: fsl_enet.h:339
#define FSL_FEATURE_ENET_QUEUE
Defines the queue number.
Definition: fsl_enet.h:34
_enet_mii_duplex
Defines the half or full duplex for the MII data interface.
Definition: fsl_enet.h:195
status_t ENET_MDIOWrite(ENET_Type *base, uint8_t phyAddr, uint8_t regAddr, uint16_t data)
MDIO write with IEEE802.3 Clause 22 format.
Definition: fsl_enet.c:1309
uint16_t rxBuffSizeAlign[FSL_FEATURE_ENET_QUEUE]
Definition: fsl_enet.h:701
void * context
Definition: fsl_enet.h:767
uint8_t multicastCount[64]
Definition: fsl_enet.h:717
enet_mii_speed_t miiSpeed
Definition: fsl_enet.h:651
uint32_t buffer
Definition: fsl_enet.h:389
enet_buffer_struct_t * txBuffArray
Definition: fsl_enet.h:762
struct _enet_transfer_stats enet_transfer_stats_t
Defines the ENET transfer statistics structure.
void ENET_SetCallback(enet_handle_t *handle, enet_callback_t callback, void *userData)
Sets the callback function.
Definition: fsl_enet.c:396
enum _enet_interrupt_enable enet_interrupt_enable_t
List of interrupts supported by the peripheral. This enumeration uses one-bit encoding to allow a log...
void ENET_GetRxErrBeforeReadFrame(enet_handle_t *handle, enet_data_error_stats_t *eErrorStatic, uint8_t ringId)
Gets the error statistics of a received frame for ENET specified ring.
Definition: fsl_enet.c:1482
uint32_t macSpecialConfig
Definition: fsl_enet.h:647
uint32_t statsRxFrameOk
Definition: fsl_enet.h:478
uint16_t txConsumIdx
Definition: fsl_enet.h:683
enum _enet_special_control_flag enet_special_control_flag_t
Defines a special configuration for ENET MAC controller.
enum _enet_mii_read enet_mii_read_t
Defines the read operation for the MII management frame.
void ENET_GetDefaultConfig(enet_config_t *config)
Gets the ENET default configuration structure.
Definition: fsl_enet.c:206
status_t ENET_Init(ENET_Type *base, enet_handle_t *handle, const enet_config_t *config, const enet_buffer_config_t *bufferConfig, uint8_t *macAddr, uint32_t srcClock_Hz)
Initializes the ENET module.
Definition: fsl_enet.c:323
status_t ENET_StartTxFrame(ENET_Type *base, enet_handle_t *handle, enet_tx_frame_struct_t *txFrame, uint8_t ringId)
Sends one frame in specified BD ring with zero copy.
Definition: fsl_enet.c:2666
volatile enet_tx_bd_struct_t * txBdBase
Definition: fsl_enet.h:681
enet_rx_alloc_callback_t rxBuffAlloc
Definition: fsl_enet.h:710
bool statsRxAlignErr
Definition: fsl_enet.h:463
uint8_t rxFifoEmptyThreshold
Definition: fsl_enet.h:656
uint16_t txGenIdx
Definition: fsl_enet.h:682
bool statsRxFcsErr
Definition: fsl_enet.h:461
uint16_t rxGenIdx
Definition: fsl_enet.h:692
uint32_t statsRxTruncateErr
Definition: fsl_enet.h:439
uint16_t rxBdNumber
Definition: fsl_enet.h:558
@ kENET_ControlFlowControlEnable
Definition: fsl_enet.h:238
@ kENET_ControlVLANTagEnable
Definition: fsl_enet.h:247
@ kENET_ControlPromiscuousEnable
Definition: fsl_enet.h:245
@ kENET_ControlMIILoopEnable
Definition: fsl_enet.h:246
@ kENET_ControlSMIPreambleDisable
Definition: fsl_enet.h:244
@ kENET_ControlRxPayloadCheckEnable
Definition: fsl_enet.h:239
@ kENET_ControlRxPadRemoveEnable
Definition: fsl_enet.h:240
@ kENET_ControlStoreAndFwdDisable
Definition: fsl_enet.h:243
@ kENET_ControlMacAddrInsert
Definition: fsl_enet.h:242
@ kENET_ControlRxBroadCastRejectEnable
Definition: fsl_enet.h:241
@ kENET_MiiSpeed100M
Definition: fsl_enet.h:187
@ kENET_MiiSpeed10M
Definition: fsl_enet.h:186
@ kENET_MiiMode
Definition: fsl_enet.h:173
@ kENET_RmiiMode
Definition: fsl_enet.h:174
@ kENET_RxEvent
Definition: fsl_enet.h:295
@ kENET_ErrEvent
Definition: fsl_enet.h:297
@ kENET_TimeStampEvent
Definition: fsl_enet.h:299
@ kENET_TimeStampAvailEvent
Definition: fsl_enet.h:300
@ kENET_WakeUpEvent
Definition: fsl_enet.h:298
@ kENET_TxEvent
Definition: fsl_enet.h:296
@ kENET_BabtInterrupt
Definition: fsl_enet.h:262
@ kENET_LateCollisionInterrupt
Definition: fsl_enet.h:270
@ kENET_GraceStopInterrupt
Definition: fsl_enet.h:263
@ kENET_UnderrunInterrupt
Definition: fsl_enet.h:272
@ kENET_WakeupInterrupt
Definition: fsl_enet.h:274
@ kENET_BabrInterrupt
Definition: fsl_enet.h:261
@ kENET_RxFrameInterrupt
Definition: fsl_enet.h:266
@ kENET_RetryLimitInterrupt
Definition: fsl_enet.h:271
@ kENET_TxFrameInterrupt
Definition: fsl_enet.h:264
@ kENET_TsTimerInterrupt
Definition: fsl_enet.h:289
@ kENET_TsAvailInterrupt
Definition: fsl_enet.h:288
@ kENET_TxBufferInterrupt
Definition: fsl_enet.h:265
@ kENET_EBusERInterrupt
Definition: fsl_enet.h:269
@ kENET_PayloadRxInterrupt
Definition: fsl_enet.h:273
@ kENET_MiiInterrupt
Definition: fsl_enet.h:268
@ kENET_RxBufferInterrupt
Definition: fsl_enet.h:267
@ kStatus_ENET_TxFrameFail
Definition: fsl_enet.h:167
@ kStatus_ENET_RxFrameEmpty
Definition: fsl_enet.h:163
@ kStatus_ENET_RxFrameDrop
Definition: fsl_enet.h:164
@ kStatus_ENET_InitMemoryFail
Definition: fsl_enet.h:159
@ kStatus_ENET_RxFrameFail
Definition: fsl_enet.h:162
@ kStatus_ENET_TxFrameBusy
Definition: fsl_enet.h:166
@ kStatus_ENET_RxFrameError
Definition: fsl_enet.h:161
@ kStatus_ENET_TxFrameOverLen
Definition: fsl_enet.h:165
@ kENET_MiiReadValidFrame
Definition: fsl_enet.h:210
@ kENET_MiiReadNoCompliant
Definition: fsl_enet.h:211
@ kENET_TxAccelIsShift16Enabled
Definition: fsl_enet.h:332
@ kENET_TxAccelProtoCheckEnabled
Definition: fsl_enet.h:334
@ kENET_TxAccelIpCheckEnabled
Definition: fsl_enet.h:333
@ kENET_MiiWriteValidFrame
Definition: fsl_enet.h:204
@ kENET_MiiWriteNoCompliant
Definition: fsl_enet.h:203
@ kENET_RxAccelProtoCheckEnabled
Definition: fsl_enet.h:342
@ kENET_RxAccelMacCheckEnabled
Definition: fsl_enet.h:343
@ kENET_RxAccelIpCheckEnabled
Definition: fsl_enet.h:341
@ kENET_RxAccelPadRemoveEnabled
Definition: fsl_enet.h:340
@ kENET_RxAccelisShift16Enabled
Definition: fsl_enet.h:344
@ kENET_MiiFullDuplex
Definition: fsl_enet.h:197
@ kENET_MiiHalfDuplex
Definition: fsl_enet.h:196
int32_t status_t
Type used for all status and error return values.
Definition: fsl_common.h:225
#define MAKE_STATUS(group, code)
Construct a status code value from a group and code number.
Definition: fsl_common.h:47
@ kStatusGroup_ENET
Definition: fsl_common.h:116
rtems_termios_device_context * context
Definition: console-config.c:62
Definition: MIMXRT1052.h:18504
Defines the receive buffer descriptor configuration structure.
Definition: fsl_enet.h:557
Definition: fsl_enet.h:725
Defines the basic configuration structure for the ENET device.
Definition: fsl_enet.h:646
Defines the ENET data error statistics structure.
Definition: fsl_enet.h:434
Defines the ENET handler structure.
Definition: fsl_enet.h:698
Defines the ENET receive buffer descriptor ring/queue structure.
Definition: fsl_enet.h:690
Defines the receive buffer descriptor structure for the little endian system.
Definition: fsl_enet.h:386
Definition: fsl_enet.h:731
Defines the Rx frame error structure.
Definition: fsl_enet.h:458
Definition: fsl_enet.h:739
Defines the ENET transfer statistics structure.
Definition: fsl_enet.h:476
Defines the ENET transmit buffer descriptor ring/queue structure.
Definition: fsl_enet.h:680
Defines the enhanced transmit buffer descriptor structure for the little endian system.
Definition: fsl_enet.h:408
Defines the ENET transmit dirty addresses ring/queue structure.
Definition: fsl_enet.h:527
Definition: fsl_enet.h:761
Definition: deflate.c:114
Defines the frame info structure.
Definition: fsl_enet.h:517