20#ifndef STM32F4xx_HAL_ETH_H
21#define STM32F4xx_HAL_ETH_H
41#ifndef ETH_TX_DESC_CNT
42#define ETH_TX_DESC_CNT 4U
45#ifndef ETH_RX_DESC_CNT
46#define ETH_RX_DESC_CNT 4U
78typedef struct __ETH_BufferTypeDef
84 struct __ETH_BufferTypeDef *next;
95 uint32_t TxDesc[ETH_TX_DESC_CNT];
99 uint32_t *PacketAddress[ETH_TX_DESC_CNT];
101 uint32_t *CurrentPacketAddress;
103 uint32_t BuffersInUse;
105 uint32_t releaseIndex;
106} ETH_TxDescListTypeDef;
121 ETH_BufferTypeDef *TxBuffer;
123 uint32_t SrcAddrCtrl;
129 uint32_t ChecksumCtrl;
132 uint32_t MaxSegmentSize;
138 uint32_t TCPHeaderLen;
147 uint32_t InnerVlanTag;
150 uint32_t InnerVlanCtrl;
155} ETH_TxPacketConfigTypeDef;
165 uint32_t TimeStampLow;
166 uint32_t TimeStampHigh;
168} ETH_TimeStampTypeDef;
173#ifdef HAL_ETH_USE_PTP
180 uint32_t NanoSeconds;
192 uint32_t RxDesc[ETH_RX_DESC_CNT];
201 uint32_t RxDataLength;
203 uint32_t RxBuildDescIdx;
205 uint32_t RxBuildDescCnt;
207 uint32_t pRxLastRxDesc;
209 ETH_TimeStampTypeDef TimeStamp;
215} ETH_RxDescListTypeDef;
232 uint32_t InterPacketGapVal;
235 FunctionalState GiantPacketSizeLimitControl;
237 FunctionalState Support2KPacket;
239 FunctionalState CRCStripTypePacket;
241 FunctionalState AutomaticPadCRCStrip;
243 FunctionalState Watchdog;
245 FunctionalState Jabber;
247 FunctionalState JumboPacket;
257 FunctionalState LoopbackMode;
260 CarrierSenseBeforeTransmit;
262 FunctionalState ReceiveOwn;
265 CarrierSenseDuringTransmit;
270 uint32_t BackOffLimit;
280 FunctionalState SlowProtocolDetect;
282 FunctionalState CRCCheckingRxPackets;
285 GiantPacketSizeLimit;
290 FunctionalState ExtendedInterPacketGap;
292 uint32_t ExtendedInterPacketGapVal;
295 FunctionalState ProgrammableWatchdog;
297 uint32_t WatchdogTimeout;
317 UnicastPausePacketDetect;
319 FunctionalState ReceiveFlowControl;
322 uint32_t TransmitQueueMode;
325 uint32_t ReceiveQueueMode;
328 FunctionalState DropTCPIPChecksumErrorPacket;
330 FunctionalState ForwardRxErrorPacket;
332 FunctionalState ForwardRxUndersizedGoodPacket;
333} ETH_MACConfigTypeDef;
343 uint32_t DMAArbitration;
346 FunctionalState AddressAlignedBeats;
351 FunctionalState DropTCPIPChecksumErrorFrame;
353 FunctionalState ReceiveStoreForward;
355 FunctionalState TransmitStoreForward;
362 uint32_t TransmitThresholdControl;
370 FunctionalState ForwardErrorFrames;
371 FunctionalState FlushRxPacket;
374 ForwardUndersizedGoodFrames;
378 uint32_t ReceiveThresholdControl;
387 FunctionalState EnhancedDescriptorFormat;
390 DescriptorSkipLength;
393} ETH_DMAConfigTypeDef;
403 HAL_ETH_MII_MODE = 0x00U,
404 HAL_ETH_RMII_MODE = SYSCFG_PMC_MII_RMII_SEL
405} ETH_MediaInterfaceTypeDef;
410#ifdef HAL_ETH_USE_PTP
416 HAL_ETH_PTP_POSITIVE_UPDATE = 0x00000000U,
417 HAL_ETH_PTP_NEGATIVE_UPDATE = 0x00000001U
418} ETH_PtpUpdateTypeDef;
432 ETH_MediaInterfaceTypeDef MediaInterface;
447#ifdef HAL_ETH_USE_PTP
454 uint32_t TimestampUpdateMode;
455 uint32_t TimestampInitialize;
456 uint32_t TimestampUpdate;
457 uint32_t TimestampAddendUpdate;
458 uint32_t TimestampAll;
459 uint32_t TimestampRolloverMode;
460 uint32_t TimestampV2;
461 uint32_t TimestampEthernet;
462 uint32_t TimestampIPv6;
463 uint32_t TimestampIPv4;
464 uint32_t TimestampEvent;
465 uint32_t TimestampMaster;
466 uint32_t TimestampFilter;
467 uint32_t TimestampClockType;
468 uint32_t TimestampAddend;
469 uint32_t TimestampSubsecondInc;
471} ETH_PTP_ConfigTypeDef;
480typedef uint32_t HAL_ETH_StateTypeDef;
488typedef void (*pETH_rxAllocateCallbackTypeDef)(uint8_t **buffer);
496typedef void (*pETH_rxLinkCallbackTypeDef)(
void **pStart,
void **pEnd, uint8_t *buff,
505typedef void (*pETH_txFreeCallbackTypeDef)(uint32_t *buffer);
513typedef void (*pETH_txPtpCallbackTypeDef)(uint32_t *buffer,
514 ETH_TimeStampTypeDef *timestamp);
522#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
523typedef struct __ETH_HandleTypeDef
528 ETH_TypeDef *Instance;
530 ETH_InitTypeDef Init;
532 ETH_TxDescListTypeDef TxDescList;
535 ETH_RxDescListTypeDef RxDescList;
538#ifdef HAL_ETH_USE_PTP
539 ETH_TimeStampTypeDef TxTimestamp;
542 __IO HAL_ETH_StateTypeDef gState;
546 __IO uint32_t ErrorCode;
559 __IO uint32_t MACWakeUpEvent;
563 __IO uint32_t MACLPIEvent;
566 __IO uint32_t IsPtpConfigured;
570#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
572 void (* TxCpltCallback)(
struct __ETH_HandleTypeDef *heth);
573 void (* RxCpltCallback)(
struct __ETH_HandleTypeDef *heth);
574 void (* ErrorCallback)(
struct __ETH_HandleTypeDef *heth);
575 void (* PMTCallback)(
struct __ETH_HandleTypeDef *heth);
576 void (* WakeUpCallback)(
struct __ETH_HandleTypeDef *heth);
578 void (* MspInitCallback)(
struct __ETH_HandleTypeDef *heth);
579 void (* MspDeInitCallback)(
struct __ETH_HandleTypeDef *heth);
583 pETH_rxAllocateCallbackTypeDef rxAllocateCallback;
584 pETH_rxLinkCallbackTypeDef rxLinkCallback;
585 pETH_txFreeCallbackTypeDef txFreeCallback;
586 pETH_txPtpCallbackTypeDef txPtpCallback;
593#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
599 HAL_ETH_MSPINIT_CB_ID = 0x00U,
600 HAL_ETH_MSPDEINIT_CB_ID = 0x01U,
601 HAL_ETH_TX_COMPLETE_CB_ID = 0x02U,
602 HAL_ETH_RX_COMPLETE_CB_ID = 0x03U,
603 HAL_ETH_ERROR_CB_ID = 0x04U,
604 HAL_ETH_PMT_CB_ID = 0x06U,
605 HAL_ETH_WAKEUP_CB_ID = 0x08U
607} HAL_ETH_CallbackIDTypeDef;
612typedef void (*pETH_CallbackTypeDef)(ETH_HandleTypeDef *heth);
621 FunctionalState PromiscuousMode;
623 FunctionalState ReceiveAllMode;
625 FunctionalState HachOrPerfectFilter;
627 FunctionalState HashUnicast;
629 FunctionalState HashMulticast;
631 FunctionalState PassAllMulticast;
633 FunctionalState SrcAddrFiltering;
635 FunctionalState SrcAddrInverseFiltering;
637 FunctionalState DestAddrInverseFiltering;
639 FunctionalState BroadcastFilter;
641 uint32_t ControlPacketsFilter;
643} ETH_MACFilterConfigTypeDef;
653 FunctionalState WakeUpPacket;
655 FunctionalState MagicPacket;
657 FunctionalState GlobalUnicast;
659 FunctionalState WakeUpForward;
661} ETH_PowerDownConfigTypeDef;
695#define ETH_DMATXDESC_OWN 0x80000000U
696#define ETH_DMATXDESC_IC 0x40000000U
697#define ETH_DMATXDESC_LS 0x20000000U
698#define ETH_DMATXDESC_FS 0x10000000U
699#define ETH_DMATXDESC_DC 0x08000000U
700#define ETH_DMATXDESC_DP 0x04000000U
701#define ETH_DMATXDESC_TTSE 0x02000000U
702#define ETH_DMATXDESC_CIC 0x00C00000U
703#define ETH_DMATXDESC_CIC_BYPASS 0x00000000U
704#define ETH_DMATXDESC_CIC_IPV4HEADER 0x00400000U
705#define ETH_DMATXDESC_CIC_TCPUDPICMP_SEGMENT 0x00800000U
706#define ETH_DMATXDESC_CIC_TCPUDPICMP_FULL 0x00C00000U
707#define ETH_DMATXDESC_TER 0x00200000U
708#define ETH_DMATXDESC_TCH 0x00100000U
709#define ETH_DMATXDESC_TTSS 0x00020000U
710#define ETH_DMATXDESC_IHE 0x00010000U
711#define ETH_DMATXDESC_ES 0x00008000U
712#define ETH_DMATXDESC_JT 0x00004000U
713#define ETH_DMATXDESC_FF 0x00002000U
714#define ETH_DMATXDESC_PCE 0x00001000U
715#define ETH_DMATXDESC_LCA 0x00000800U
716#define ETH_DMATXDESC_NC 0x00000400U
717#define ETH_DMATXDESC_LCO 0x00000200U
718#define ETH_DMATXDESC_EC 0x00000100U
719#define ETH_DMATXDESC_VF 0x00000080U
720#define ETH_DMATXDESC_CC 0x00000078U
721#define ETH_DMATXDESC_ED 0x00000004U
722#define ETH_DMATXDESC_UF 0x00000002U
723#define ETH_DMATXDESC_DB 0x00000001U
728#define ETH_DMATXDESC_TBS2 0x1FFF0000U
729#define ETH_DMATXDESC_TBS1 0x00001FFFU
734#define ETH_DMATXDESC_B1AP 0xFFFFFFFFU
739#define ETH_DMATXDESC_B2AP 0xFFFFFFFFU
748#define ETH_DMAPTPTXDESC_TTSL 0xFFFFFFFFU
751#define ETH_DMAPTPTXDESC_TTSH 0xFFFFFFFFU
777#define ETH_DMARXDESC_OWN 0x80000000U
778#define ETH_DMARXDESC_AFM 0x40000000U
779#define ETH_DMARXDESC_FL 0x3FFF0000U
780#define ETH_DMARXDESC_ES 0x00008000U
781#define ETH_DMARXDESC_DE 0x00004000U
782#define ETH_DMARXDESC_SAF 0x00002000U
783#define ETH_DMARXDESC_LE 0x00001000U
784#define ETH_DMARXDESC_OE 0x00000800U
785#define ETH_DMARXDESC_VLAN 0x00000400U
786#define ETH_DMARXDESC_FS 0x00000200U
787#define ETH_DMARXDESC_LS 0x00000100U
788#define ETH_DMARXDESC_IPV4HCE 0x00000080U
789#define ETH_DMARXDESC_LC 0x00000040U
790#define ETH_DMARXDESC_FT 0x00000020U
791#define ETH_DMARXDESC_RWT 0x00000010U
792#define ETH_DMARXDESC_RE 0x00000008U
793#define ETH_DMARXDESC_DBE 0x00000004U
794#define ETH_DMARXDESC_CE 0x00000002U
795#define ETH_DMARXDESC_MAMPCE 0x00000001U
800#define ETH_DMARXDESC_DIC 0x80000000U
801#define ETH_DMARXDESC_RBS2 0x1FFF0000U
802#define ETH_DMARXDESC_RER 0x00008000U
803#define ETH_DMARXDESC_RCH 0x00004000U
804#define ETH_DMARXDESC_RBS1 0x00001FFFU
809#define ETH_DMARXDESC_B1AP 0xFFFFFFFFU
814#define ETH_DMARXDESC_B2AP 0xFFFFFFFFU
827#define ETH_DMAPTPRXDESC_PTPV 0x00002000U
828#define ETH_DMAPTPRXDESC_PTPFT 0x00001000U
829#define ETH_DMAPTPRXDESC_PTPMT 0x00000F00U
830#define ETH_DMAPTPRXDESC_PTPMT_SYNC 0x00000100U
832#define ETH_DMAPTPRXDESC_PTPMT_FOLLOWUP 0x00000200U
834#define ETH_DMAPTPRXDESC_PTPMT_DELAYREQ 0x00000300U
836#define ETH_DMAPTPRXDESC_PTPMT_DELAYRESP 0x00000400U
838#define ETH_DMAPTPRXDESC_PTPMT_PDELAYREQ_ANNOUNCE 0x00000500U
842#define ETH_DMAPTPRXDESC_PTPMT_PDELAYRESP_MANAG 0x00000600U
846#define ETH_DMAPTPRXDESC_PTPMT_PDELAYRESPFOLLOWUP_SIGNAL 0x00000700U
850#define ETH_DMAPTPRXDESC_IPV6PR 0x00000080U
851#define ETH_DMAPTPRXDESC_IPV4PR 0x00000040U
852#define ETH_DMAPTPRXDESC_IPCB 0x00000020U
853#define ETH_DMAPTPRXDESC_IPPE 0x00000010U
854#define ETH_DMAPTPRXDESC_IPHE 0x00000008U
855#define ETH_DMAPTPRXDESC_IPPT 0x00000007U
856#define ETH_DMAPTPRXDESC_IPPT_UDP 0x00000001U
858#define ETH_DMAPTPRXDESC_IPPT_TCP 0x00000002U
860#define ETH_DMAPTPRXDESC_IPPT_ICMP 0x00000003U
864#define ETH_DMAPTPRXDESC_RTSL 0xFFFFFFFFU
867#define ETH_DMAPTPRXDESC_RTSH 0xFFFFFFFFU
876#define ETH_MAX_PACKET_SIZE 1528U
877#define ETH_HEADER 14U
879#define ETH_VLAN_TAG 4U
880#define ETH_MIN_PAYLOAD 46U
881#define ETH_MAX_PAYLOAD 1500U
882#define ETH_JUMBO_FRAME_PAYLOAD 9000U
890#define HAL_ETH_ERROR_NONE 0x00000000U
891#define HAL_ETH_ERROR_PARAM 0x00000001U
892#define HAL_ETH_ERROR_BUSY 0x00000002U
893#define HAL_ETH_ERROR_TIMEOUT 0x00000004U
894#define HAL_ETH_ERROR_DMA 0x00000008U
895#define HAL_ETH_ERROR_MAC 0x00000010U
896#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
897#define HAL_ETH_ERROR_INVALID_CALLBACK 0x00000020U
906#define ETH_TX_PACKETS_FEATURES_CSUM 0x00000001U
907#define ETH_TX_PACKETS_FEATURES_SAIC 0x00000002U
908#define ETH_TX_PACKETS_FEATURES_VLANTAG 0x00000004U
909#define ETH_TX_PACKETS_FEATURES_INNERVLANTAG 0x00000008U
910#define ETH_TX_PACKETS_FEATURES_TSO 0x00000010U
911#define ETH_TX_PACKETS_FEATURES_CRCPAD 0x00000020U
920#define ETH_CRC_PAD_DISABLE (uint32_t)(ETH_DMATXDESC_DP | ETH_DMATXDESC_DC)
921#define ETH_CRC_PAD_INSERT 0x00000000U
922#define ETH_CRC_INSERT ETH_DMATXDESC_DP
930#define ETH_CHECKSUM_DISABLE ETH_DMATXDESC_CIC_BYPASS
931#define ETH_CHECKSUM_IPHDR_INSERT ETH_DMATXDESC_CIC_IPV4HEADER
932#define ETH_CHECKSUM_IPHDR_PAYLOAD_INSERT ETH_DMATXDESC_CIC_TCPUDPICMP_SEGMENT
933#define ETH_CHECKSUM_IPHDR_PAYLOAD_INSERT_PHDR_CALC ETH_DMATXDESC_CIC_TCPUDPICMP_FULL
942#define ETH_VLAN_FILTER_PASS ETH_DMARXDESC_VLAN
943#define ETH_DEST_ADDRESS_FAIL ETH_DMARXDESC_AFM
944#define ETH_SOURCE_ADDRESS_FAIL ETH_DMARXDESC_SAF
952#define ETH_DRIBBLE_BIT_ERROR ETH_DMARXDESC_DBE
953#define ETH_RECEIVE_ERROR ETH_DMARXDESC_RE
954#define ETH_RECEIVE_OVERFLOW ETH_DMARXDESC_OE
955#define ETH_WATCHDOG_TIMEOUT ETH_DMARXDESC_RWT
956#define ETH_GIANT_PACKET ETH_DMARXDESC_IPV4HC
957#define ETH_CRC_ERROR ETH_DMARXDESC_CE
965#define ETH_DMAARBITRATION_RX ETH_DMABMR_DA
966#define ETH_DMAARBITRATION_RX1_TX1 0x00000000U
967#define ETH_DMAARBITRATION_RX2_TX1 ETH_DMABMR_RTPR_2_1
968#define ETH_DMAARBITRATION_RX3_TX1 ETH_DMABMR_RTPR_3_1
969#define ETH_DMAARBITRATION_RX4_TX1 ETH_DMABMR_RTPR_4_1
970#define ETH_DMAARBITRATION_TX (ETH_DMAMR_TXPR | ETH_DMAMR_DA)
971#define ETH_DMAARBITRATION_TX1_RX1 0x00000000U
972#define ETH_DMAARBITRATION_TX2_RX1 (ETH_DMAMR_TXPR | ETH_DMAMR_PR_2_1)
973#define ETH_DMAARBITRATION_TX3_RX1 (ETH_DMAMR_TXPR | ETH_DMAMR_PR_3_1)
974#define ETH_DMAARBITRATION_TX4_RX1 (ETH_DMAMR_TXPR | ETH_DMAMR_PR_4_1)
975#define ETH_DMAARBITRATION_TX5_RX1 (ETH_DMAMR_TXPR | ETH_DMAMR_PR_5_1)
976#define ETH_DMAARBITRATION_TX6_RX1 (ETH_DMAMR_TXPR | ETH_DMAMR_PR_6_1)
977#define ETH_DMAARBITRATION_TX7_RX1 (ETH_DMAMR_TXPR | ETH_DMAMR_PR_7_1)
978#define ETH_DMAARBITRATION_TX8_RX1 (ETH_DMAMR_TXPR | ETH_DMAMR_PR_8_1)
986#define ETH_BURSTLENGTH_FIXED ETH_DMABMR_FB
987#define ETH_BURSTLENGTH_MIXED ETH_DMABMR_MB
988#define ETH_BURSTLENGTH_UNSPECIFIED 0x00000000U
996#define ETH_TXDMABURSTLENGTH_1BEAT 0x00000100U
997#define ETH_TXDMABURSTLENGTH_2BEAT 0x00000200U
998#define ETH_TXDMABURSTLENGTH_4BEAT 0x00000400U
999#define ETH_TXDMABURSTLENGTH_8BEAT 0x00000800U
1000#define ETH_TXDMABURSTLENGTH_16BEAT 0x00001000U
1001#define ETH_TXDMABURSTLENGTH_32BEAT 0x00002000U
1002#define ETH_TXDMABURSTLENGTH_4XPBL_4BEAT 0x01000100U
1003#define ETH_TXDMABURSTLENGTH_4XPBL_8BEAT 0x01000200U
1004#define ETH_TXDMABURSTLENGTH_4XPBL_16BEAT 0x01000400U
1005#define ETH_TXDMABURSTLENGTH_4XPBL_32BEAT 0x01000800U
1006#define ETH_TXDMABURSTLENGTH_4XPBL_64BEAT 0x01001000U
1007#define ETH_TXDMABURSTLENGTH_4XPBL_128BEAT 0x01002000U
1015#define ETH_RXDMABURSTLENGTH_1BEAT 0x00020000U
1016#define ETH_RXDMABURSTLENGTH_2BEAT 0x00040000U
1017#define ETH_RXDMABURSTLENGTH_4BEAT 0x00080000U
1018#define ETH_RXDMABURSTLENGTH_8BEAT 0x00100000U
1019#define ETH_RXDMABURSTLENGTH_16BEAT 0x00200000U
1020#define ETH_RXDMABURSTLENGTH_32BEAT 0x00400000U
1021#define ETH_RXDMABURSTLENGTH_4XPBL_4BEAT 0x01020000U
1022#define ETH_RXDMABURSTLENGTH_4XPBL_8BEAT 0x01040000U
1023#define ETH_RXDMABURSTLENGTH_4XPBL_16BEAT 0x01080000U
1024#define ETH_RXDMABURSTLENGTH_4XPBL_32BEAT 0x01100000U
1025#define ETH_RXDMABURSTLENGTH_4XPBL_64BEAT 0x01200000U
1026#define ETH_RXDMABURSTLENGTH_4XPBL_128BEAT 0x01400000U
1034#define ETH_DMA_NORMAL_IT ETH_DMAIER_NISE
1035#define ETH_DMA_ABNORMAL_IT ETH_DMAIER_AISE
1036#define ETH_DMA_FATAL_BUS_ERROR_IT ETH_DMAIER_FBEIE
1037#define ETH_DMA_EARLY_RX_IT ETH_DMAIER_ERIE
1038#define ETH_DMA_EARLY_TX_IT ETH_DMAIER_ETIE
1039#define ETH_DMA_RX_WATCHDOG_TIMEOUT_IT ETH_DMAIER_RWTIE
1040#define ETH_DMA_RX_PROCESS_STOPPED_IT ETH_DMAIER_RPSIE
1041#define ETH_DMA_RX_BUFFER_UNAVAILABLE_IT ETH_DMAIER_RBUIE
1042#define ETH_DMA_RX_IT ETH_DMAIER_RIE
1043#define ETH_DMA_TX_BUFFER_UNAVAILABLE_IT ETH_DMAIER_TBUIE
1044#define ETH_DMA_TX_PROCESS_STOPPED_IT ETH_DMAIER_TPSIE
1045#define ETH_DMA_TX_IT ETH_DMAIER_TIE
1053#define ETH_DMA_NO_ERROR_FLAG 0x00000000U
1054#define ETH_DMA_TX_DATA_TRANS_ERROR_FLAG ETH_DMASR_EBS_DataTransfTx
1055#define ETH_DMA_RX_DATA_TRANS_ERROR_FLAG 0x00000000U
1056#define ETH_DMA_READ_TRANS_ERROR_FLAG ETH_DMASR_EBS_ReadTransf
1057#define ETH_DMA_WRITE_TRANS_ERROR_FLAG 0x00000000U
1058#define ETH_DMA_DESC_ACCESS_ERROR_FLAG ETH_DMASR_EBS_DescAccess
1059#define ETH_DMA_DATA_BUFF_ACCESS_ERROR_FLAG 0x00000000U
1060#define ETH_DMA_FATAL_BUS_ERROR_FLAG ETH_DMASR_FBES
1061#define ETH_DMA_EARLY_TX_IT_FLAG ETH_DMASR_ETS
1062#define ETH_DMA_RX_WATCHDOG_TIMEOUT_FLAG ETH_DMASR_RWTS
1063#define ETH_DMA_RX_PROCESS_STOPPED_FLAG ETH_DMASR_RPSS
1064#define ETH_DMA_RX_BUFFER_UNAVAILABLE_FLAG ETH_DMASR_RBUS
1065#define ETH_DMA_TX_PROCESS_STOPPED_FLAG ETH_DMASR_TPS
1073#define ETH_TRANSMITSTOREFORWARD ETH_DMAOMR_TSF
1074#define ETH_TRANSMITTHRESHOLD_16 ETH_DMAOMR_TTC_16Bytes
1075#define ETH_TRANSMITTHRESHOLD_24 ETH_DMAOMR_TTC_24Bytes
1076#define ETH_TRANSMITTHRESHOLD_32 ETH_DMAOMR_TTC_32Bytes
1077#define ETH_TRANSMITTHRESHOLD_40 ETH_DMAOMR_TTC_40Bytes
1078#define ETH_TRANSMITTHRESHOLD_64 ETH_DMAOMR_TTC_64Bytes
1079#define ETH_TRANSMITTHRESHOLD_128 ETH_DMAOMR_TTC_128Bytes
1080#define ETH_TRANSMITTHRESHOLD_192 ETH_DMAOMR_TTC_192Bytes
1081#define ETH_TRANSMITTHRESHOLD_256 ETH_DMAOMR_TTC_256Bytes
1089#define ETH_RECEIVESTOREFORWARD ETH_DMAOMR_RSF
1090#define ETH_RECEIVETHRESHOLD8_64 ETH_DMAOMR_RTC_64Bytes
1091#define ETH_RECEIVETHRESHOLD8_32 ETH_DMAOMR_RTC_32Bytes
1092#define ETH_RECEIVETHRESHOLD8_96 ETH_DMAOMR_RTC_96Bytes
1093#define ETH_RECEIVETHRESHOLD8_128 ETH_DMAOMR_RTC_128Bytes
1101#define ETH_PAUSELOWTHRESHOLD_MINUS_4 ETH_MACFCR_PLT_Minus4
1102#define ETH_PAUSELOWTHRESHOLD_MINUS_28 ETH_MACFCR_PLT_Minus28
1103#define ETH_PAUSELOWTHRESHOLD_MINUS_144 ETH_MACFCR_PLT_Minus144
1104#define ETH_PAUSELOWTHRESHOLD_MINUS_256 ETH_MACFCR_PLT_Minus256
1113#define ETH_SPEED_10M 0x00000000U
1114#define ETH_SPEED_100M 0x00004000U
1122#define ETH_FULLDUPLEX_MODE ETH_MACCR_DM
1123#define ETH_HALFDUPLEX_MODE 0x00000000U
1131#define ETH_BACKOFFLIMIT_10 0x00000000U
1132#define ETH_BACKOFFLIMIT_8 0x00000020U
1133#define ETH_BACKOFFLIMIT_4 0x00000040U
1134#define ETH_BACKOFFLIMIT_1 0x00000060U
1143#define ETH_SOURCEADDRESS_DISABLE 0x00000000U
1144#define ETH_SOURCEADDRESS_INSERT_ADDR0 ETH_MACCR_SARC_INSADDR0
1145#define ETH_SOURCEADDRESS_INSERT_ADDR1 ETH_MACCR_SARC_INSADDR1
1146#define ETH_SOURCEADDRESS_REPLACE_ADDR0 ETH_MACCR_SARC_REPADDR0
1147#define ETH_SOURCEADDRESS_REPLACE_ADDR1 ETH_MACCR_SARC_REPADDR1
1156#define ETH_VLANTAGCOMPARISON_12BIT 0x00010000U
1157#define ETH_VLANTAGCOMPARISON_16BIT 0x00000000U
1165#define ETH_MAC_ADDRESS0 0x00000000U
1166#define ETH_MAC_ADDRESS1 0x00000008U
1167#define ETH_MAC_ADDRESS2 0x00000010U
1168#define ETH_MAC_ADDRESS3 0x00000018U
1176#define ETH_MAC_PMT_IT ETH_MACSR_PMTS
1184#define ETH_WAKEUP_FRAME_RECIEVED ETH_MACPMTCSR_WFR
1185#define ETH_MAGIC_PACKET_RECIEVED ETH_MACPMTCSR_MPR
1194#define HAL_ETH_STATE_RESET 0x00000000U
1195#define HAL_ETH_STATE_READY 0x00000010U
1196#define HAL_ETH_STATE_BUSY 0x00000020U
1197#define HAL_ETH_STATE_STARTED 0x00000040U
1198#define HAL_ETH_STATE_ERROR 0x000000E0U
1206#define ETH_AUTONEGOTIATION_ENABLE 0x00000001U
1207#define ETH_AUTONEGOTIATION_DISABLE 0x00000000U
1215#define ETH_RXPOLLING_MODE 0x00000000U
1216#define ETH_RXINTERRUPT_MODE 0x00000001U
1224#define ETH_CHECKSUM_BY_HARDWARE 0x00000000U
1225#define ETH_CHECKSUM_BY_SOFTWARE 0x00000001U
1233#define ETH_MEDIA_INTERFACE_MII 0x00000000U
1234#define ETH_MEDIA_INTERFACE_RMII (SYSCFG_PMC_MII_RMII_SEL)
1242#define ETH_WATCHDOG_ENABLE 0x00000000U
1243#define ETH_WATCHDOG_DISABLE 0x00800000U
1251#define ETH_JABBER_ENABLE 0x00000000U
1252#define ETH_JABBER_DISABLE 0x00400000U
1260#define ETH_INTERFRAMEGAP_96BIT 0x00000000U
1261#define ETH_INTERFRAMEGAP_88BIT 0x00020000U
1262#define ETH_INTERFRAMEGAP_80BIT 0x00040000U
1263#define ETH_INTERFRAMEGAP_72BIT 0x00060000U
1264#define ETH_INTERFRAMEGAP_64BIT 0x00080000U
1265#define ETH_INTERFRAMEGAP_56BIT 0x000A0000U
1266#define ETH_INTERFRAMEGAP_48BIT 0x000C0000U
1267#define ETH_INTERFRAMEGAP_40BIT 0x000E0000U
1275#define ETH_CARRIERSENCE_ENABLE 0x00000000U
1276#define ETH_CARRIERSENCE_DISABLE 0x00010000U
1284#define ETH_RECEIVEOWN_ENABLE 0x00000000U
1285#define ETH_RECEIVEOWN_DISABLE 0x00002000U
1293#define ETH_LOOPBACKMODE_ENABLE 0x00001000U
1294#define ETH_LOOPBACKMODE_DISABLE 0x00000000U
1302#define ETH_CHECKSUMOFFLAOD_ENABLE 0x00000400U
1303#define ETH_CHECKSUMOFFLAOD_DISABLE 0x00000000U
1311#define ETH_RETRYTRANSMISSION_ENABLE 0x00000000U
1312#define ETH_RETRYTRANSMISSION_DISABLE 0x00000200U
1320#define ETH_AUTOMATICPADCRCSTRIP_ENABLE 0x00000080U
1321#define ETH_AUTOMATICPADCRCSTRIP_DISABLE 0x00000000U
1329#define ETH_DEFFERRALCHECK_ENABLE 0x00000010U
1330#define ETH_DEFFERRALCHECK_DISABLE 0x00000000U
1338#define ETH_RECEIVEALL_ENABLE 0x80000000U
1339#define ETH_RECEIVEALL_DISABLE 0x00000000U
1347#define ETH_SOURCEADDRFILTER_NORMAL_ENABLE 0x00000200U
1348#define ETH_SOURCEADDRFILTER_INVERSE_ENABLE 0x00000300U
1349#define ETH_SOURCEADDRFILTER_DISABLE 0x00000000U
1357#define ETH_PASSCONTROLFRAMES_BLOCKALL 0x00000040U
1358#define ETH_PASSCONTROLFRAMES_FORWARDALL 0x00000080U
1359#define ETH_PASSCONTROLFRAMES_FORWARDPASSEDADDRFILTER 0x000000C0U
1367#define ETH_BROADCASTFRAMESRECEPTION_ENABLE 0x00000000U
1368#define ETH_BROADCASTFRAMESRECEPTION_DISABLE 0x00000020U
1376#define ETH_DESTINATIONADDRFILTER_NORMAL 0x00000000U
1377#define ETH_DESTINATIONADDRFILTER_INVERSE 0x00000008U
1385#define ETH_PROMISCUOUS_MODE_ENABLE 0x00000001U
1386#define ETH_PROMISCUOUS_MODE_DISABLE 0x00000000U
1394#define ETH_MULTICASTFRAMESFILTER_PERFECTHASHTABLE 0x00000404U
1395#define ETH_MULTICASTFRAMESFILTER_HASHTABLE 0x00000004U
1396#define ETH_MULTICASTFRAMESFILTER_PERFECT 0x00000000U
1397#define ETH_MULTICASTFRAMESFILTER_NONE 0x00000010U
1405#define ETH_UNICASTFRAMESFILTER_PERFECTHASHTABLE 0x00000402U
1406#define ETH_UNICASTFRAMESFILTER_HASHTABLE 0x00000002U
1407#define ETH_UNICASTFRAMESFILTER_PERFECT 0x00000000U
1415#define ETH_ZEROQUANTAPAUSE_ENABLE 0x00000000U
1416#define ETH_ZEROQUANTAPAUSE_DISABLE 0x00000080U
1424#define ETH_PAUSELOWTHRESHOLD_MINUS4 0x00000000U
1425#define ETH_PAUSELOWTHRESHOLD_MINUS28 0x00000010U
1426#define ETH_PAUSELOWTHRESHOLD_MINUS144 0x00000020U
1427#define ETH_PAUSELOWTHRESHOLD_MINUS256 0x00000030U
1435#define ETH_UNICASTPAUSEFRAMEDETECT_ENABLE 0x00000008U
1436#define ETH_UNICASTPAUSEFRAMEDETECT_DISABLE 0x00000000U
1444#define ETH_RECEIVEFLOWCONTROL_ENABLE 0x00000004U
1445#define ETH_RECEIVEFLOWCONTROL_DISABLE 0x00000000U
1453#define ETH_TRANSMITFLOWCONTROL_ENABLE 0x00000002U
1454#define ETH_TRANSMITFLOWCONTROL_DISABLE 0x00000000U
1462#define ETH_MAC_ADDRESSFILTER_SA 0x00000000U
1463#define ETH_MAC_ADDRESSFILTER_DA 0x00000008U
1471#define ETH_MAC_ADDRESSMASK_BYTE6 0x20000000U
1472#define ETH_MAC_ADDRESSMASK_BYTE5 0x10000000U
1473#define ETH_MAC_ADDRESSMASK_BYTE4 0x08000000U
1474#define ETH_MAC_ADDRESSMASK_BYTE3 0x04000000U
1475#define ETH_MAC_ADDRESSMASK_BYTE2 0x02000000U
1476#define ETH_MAC_ADDRESSMASK_BYTE1 0x01000000U
1484#define ETH_TRANSMITTHRESHOLDCONTROL_64BYTES 0x00000000U
1485#define ETH_TRANSMITTHRESHOLDCONTROL_128BYTES 0x00004000U
1486#define ETH_TRANSMITTHRESHOLDCONTROL_192BYTES 0x00008000U
1487#define ETH_TRANSMITTHRESHOLDCONTROL_256BYTES 0x0000C000U
1488#define ETH_TRANSMITTHRESHOLDCONTROL_40BYTES 0x00010000U
1489#define ETH_TRANSMITTHRESHOLDCONTROL_32BYTES 0x00014000U
1490#define ETH_TRANSMITTHRESHOLDCONTROL_24BYTES 0x00018000U
1491#define ETH_TRANSMITTHRESHOLDCONTROL_16BYTES 0x0001C000U
1499#define ETH_RECEIVEDTHRESHOLDCONTROL_64BYTES 0x00000000U
1500#define ETH_RECEIVEDTHRESHOLDCONTROL_32BYTES 0x00000008U
1501#define ETH_RECEIVEDTHRESHOLDCONTROL_96BYTES 0x00000010U
1502#define ETH_RECEIVEDTHRESHOLDCONTROL_128BYTES 0x00000018U
1510#define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_1_1 0x00000000U
1511#define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_2_1 0x00004000U
1512#define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_3_1 0x00008000U
1513#define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_4_1 0x0000C000U
1514#define ETH_DMAARBITRATION_RXPRIORTX 0x00000002U
1522#define ETH_DMATXDESC_LASTSEGMENTS 0x40000000U
1523#define ETH_DMATXDESC_FIRSTSEGMENT 0x20000000U
1531#define ETH_DMATXDESC_CHECKSUMBYPASS 0x00000000U
1532#define ETH_DMATXDESC_CHECKSUMIPV4HEADER 0x00400000U
1533#define ETH_DMATXDESC_CHECKSUMTCPUDPICMPSEGMENT 0x00800000U
1534#define ETH_DMATXDESC_CHECKSUMTCPUDPICMPFULL 0x00C00000U
1542#define ETH_DMARXDESC_BUFFER1 0x00000000U
1543#define ETH_DMARXDESC_BUFFER2 0x00000001U
1551#define ETH_PMT_FLAG_WUFFRPR 0x80000000U
1552#define ETH_PMT_FLAG_WUFR 0x00000040U
1553#define ETH_PMT_FLAG_MPR 0x00000020U
1561#define ETH_MMC_IT_TGF 0x00200000U
1562#define ETH_MMC_IT_TGFMSC 0x00008000U
1563#define ETH_MMC_IT_TGFSC 0x00004000U
1571#define ETH_MMC_IT_RGUF 0x10020000U
1572#define ETH_MMC_IT_RFAE 0x10000040U
1573#define ETH_MMC_IT_RFCE 0x10000020U
1581#define ETH_MAC_FLAG_TST 0x00000200U
1582#define ETH_MAC_FLAG_MMCT 0x00000040U
1583#define ETH_MAC_FLAG_MMCR 0x00000020U
1584#define ETH_MAC_FLAG_MMC 0x00000010U
1585#define ETH_MAC_FLAG_PMT 0x00000008U
1593#define ETH_DMA_FLAG_TST 0x20000000U
1594#define ETH_DMA_FLAG_PMT 0x10000000U
1595#define ETH_DMA_FLAG_MMC 0x08000000U
1596#define ETH_DMA_FLAG_DATATRANSFERERROR 0x00800000U
1597#define ETH_DMA_FLAG_READWRITEERROR 0x01000000U
1598#define ETH_DMA_FLAG_ACCESSERROR 0x02000000U
1599#define ETH_DMA_FLAG_NIS 0x00010000U
1600#define ETH_DMA_FLAG_AIS 0x00008000U
1601#define ETH_DMA_FLAG_ER 0x00004000U
1602#define ETH_DMA_FLAG_FBE 0x00002000U
1603#define ETH_DMA_FLAG_ET 0x00000400U
1604#define ETH_DMA_FLAG_RWT 0x00000200U
1605#define ETH_DMA_FLAG_RPS 0x00000100U
1606#define ETH_DMA_FLAG_RBU 0x00000080U
1607#define ETH_DMA_FLAG_R 0x00000040U
1608#define ETH_DMA_FLAG_TU 0x00000020U
1609#define ETH_DMA_FLAG_RO 0x00000010U
1610#define ETH_DMA_FLAG_TJT 0x00000008U
1611#define ETH_DMA_FLAG_TBU 0x00000004U
1612#define ETH_DMA_FLAG_TPS 0x00000002U
1613#define ETH_DMA_FLAG_T 0x00000001U
1621#define ETH_MAC_IT_TST 0x00000200U
1622#define ETH_MAC_IT_MMCT 0x00000040U
1623#define ETH_MAC_IT_MMCR 0x00000020U
1624#define ETH_MAC_IT_MMC 0x00000010U
1625#define ETH_MAC_IT_PMT 0x00000008U
1633#define ETH_DMA_IT_TST 0x20000000U
1634#define ETH_DMA_IT_PMT 0x10000000U
1635#define ETH_DMA_IT_MMC 0x08000000U
1636#define ETH_DMA_IT_NIS 0x00010000U
1637#define ETH_DMA_IT_AIS 0x00008000U
1638#define ETH_DMA_IT_ER 0x00004000U
1639#define ETH_DMA_IT_FBE 0x00002000U
1640#define ETH_DMA_IT_ET 0x00000400U
1641#define ETH_DMA_IT_RWT 0x00000200U
1642#define ETH_DMA_IT_RPS 0x00000100U
1643#define ETH_DMA_IT_RBU 0x00000080U
1644#define ETH_DMA_IT_R 0x00000040U
1645#define ETH_DMA_IT_TU 0x00000020U
1646#define ETH_DMA_IT_RO 0x00000010U
1647#define ETH_DMA_IT_TJT 0x00000008U
1648#define ETH_DMA_IT_TBU 0x00000004U
1649#define ETH_DMA_IT_TPS 0x00000002U
1650#define ETH_DMA_IT_T 0x00000001U
1658#define ETH_DMA_TRANSMITPROCESS_STOPPED 0x00000000U
1659#define ETH_DMA_TRANSMITPROCESS_FETCHING 0x00100000U
1660#define ETH_DMA_TRANSMITPROCESS_WAITING 0x00200000U
1661#define ETH_DMA_TRANSMITPROCESS_READING 0x00300000U
1662#define ETH_DMA_TRANSMITPROCESS_SUSPENDED 0x00600000U
1663#define ETH_DMA_TRANSMITPROCESS_CLOSING 0x00700000U
1673#define ETH_DMA_RECEIVEPROCESS_STOPPED 0x00000000U
1674#define ETH_DMA_RECEIVEPROCESS_FETCHING 0x00020000U
1675#define ETH_DMA_RECEIVEPROCESS_WAITING 0x00060000U
1676#define ETH_DMA_RECEIVEPROCESS_SUSPENDED 0x00080000U
1677#define ETH_DMA_RECEIVEPROCESS_CLOSING 0x000A0000U
1678#define ETH_DMA_RECEIVEPROCESS_QUEUING 0x000E0000U
1687#define ETH_DMA_OVERFLOW_RXFIFOCOUNTER 0x10000000U
1688#define ETH_DMA_OVERFLOW_MISSEDFRAMECOUNTER 0x00010000U
1695#define HAL_ETH_PTP_NOT_CONFIGURED 0x00000000U
1696#define HAL_ETH_PTP_CONFIGURED 0x00000001U
1714#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
1715#define __HAL_ETH_RESET_HANDLE_STATE(__HANDLE__) do{ \
1716 (__HANDLE__)->gState = HAL_ETH_STATE_RESET; \
1717 (__HANDLE__)->MspInitCallback = NULL; \
1718 (__HANDLE__)->MspDeInitCallback = NULL; \
1721#define __HAL_ETH_RESET_HANDLE_STATE(__HANDLE__) do{ \
1722 (__HANDLE__)->gState = HAL_ETH_STATE_RESET; \
1733#define __HAL_ETH_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DMAIER \
1743#define __HAL_ETH_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DMAIER \
1744 &= ~(__INTERRUPT__))
1752#define __HAL_ETH_DMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->DMAIER &\
1753 (__INTERRUPT__)) == (__INTERRUPT__))
1761#define __HAL_ETH_DMA_GET_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->DMASR &\
1762 (__INTERRUPT__)) == (__INTERRUPT__))
1770#define __HAL_ETH_DMA_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DMASR = (__INTERRUPT__))
1778#define __HAL_ETH_DMA_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->DMASR &\
1779 ( __FLAG__)) == ( __FLAG__))
1787#define __HAL_ETH_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->DMASR = ( __FLAG__))
1796#define __HAL_ETH_MAC_GET_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->MACSR &\
1797 ( __INTERRUPT__)) == ( __INTERRUPT__))
1800#define ETH_WAKEUP_EXTI_LINE 0x00080000U
1808#define __HAL_ETH_WAKEUP_EXTI_ENABLE_IT(__EXTI_LINE__) (EXTI->IMR |= (__EXTI_LINE__))
1816#define __HAL_ETH_WAKEUP_EXTI_GET_FLAG(__EXTI_LINE__) (EXTI->PR & (__EXTI_LINE__))
1824#define __HAL_ETH_WAKEUP_EXTI_CLEAR_FLAG(__EXTI_LINE__) (EXTI->PR = (__EXTI_LINE__))
1832#define __HAL_ETH_WAKEUP_EXTI_ENABLE_RISING_EDGE(__EXTI_LINE__) (EXTI->FTSR &= ~(__EXTI_LINE__)); \
1833 (EXTI->RTSR |= (__EXTI_LINE__))
1841#define __HAL_ETH_WAKEUP_EXTI_ENABLE_FALLING_EDGE(__EXTI_LINE__) (EXTI->RTSR &= ~(__EXTI_LINE__));\
1842 (EXTI->FTSR |= (__EXTI_LINE__))
1850#define __HAL_ETH_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE(__EXTI_LINE__) (EXTI->RTSR |= (__EXTI_LINE__));\
1851 (EXTI->FTSR |= (__EXTI_LINE__))
1859#define __HAL_ETH_WAKEUP_EXTI_GENERATE_SWIT(__EXTI_LINE__) (EXTI->SWIER |= (__EXTI_LINE__))
1861#define __HAL_ETH_GET_PTP_CONTROL(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->PTPTSCR) & \
1862 (__FLAG__)) == (__FLAG__)) ? SET : RESET)
1864#define __HAL_ETH_SET_PTP_CONTROL(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->PTPTSCR |= (__FLAG__))
1883void HAL_ETH_MspInit(ETH_HandleTypeDef *heth);
1884void HAL_ETH_MspDeInit(ETH_HandleTypeDef *heth);
1887#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
1888HAL_StatusTypeDef HAL_ETH_RegisterCallback(ETH_HandleTypeDef *heth, HAL_ETH_CallbackIDTypeDef CallbackID,
1889 pETH_CallbackTypeDef pCallback);
1890HAL_StatusTypeDef HAL_ETH_UnRegisterCallback(ETH_HandleTypeDef *heth, HAL_ETH_CallbackIDTypeDef CallbackID);
1908 pETH_rxAllocateCallbackTypeDef rxAllocateCallback);
1910HAL_StatusTypeDef HAL_ETH_RegisterRxLinkCallback(ETH_HandleTypeDef *heth, pETH_rxLinkCallbackTypeDef rxLinkCallback);
1912HAL_StatusTypeDef HAL_ETH_GetRxDataErrorCode(
const ETH_HandleTypeDef *heth, uint32_t *pErrorCode);
1913HAL_StatusTypeDef HAL_ETH_RegisterTxFreeCallback(ETH_HandleTypeDef *heth, pETH_txFreeCallbackTypeDef txFreeCallback);
1917#ifdef HAL_ETH_USE_PTP
1918HAL_StatusTypeDef HAL_ETH_PTP_SetConfig(ETH_HandleTypeDef *heth, ETH_PTP_ConfigTypeDef *ptpconfig);
1919HAL_StatusTypeDef HAL_ETH_PTP_GetConfig(ETH_HandleTypeDef *heth, ETH_PTP_ConfigTypeDef *ptpconfig);
1920HAL_StatusTypeDef HAL_ETH_PTP_SetTime(ETH_HandleTypeDef *heth, ETH_TimeTypeDef *time);
1921HAL_StatusTypeDef HAL_ETH_PTP_GetTime(ETH_HandleTypeDef *heth, ETH_TimeTypeDef *time);
1922HAL_StatusTypeDef HAL_ETH_PTP_AddTimeOffset(ETH_HandleTypeDef *heth, ETH_PtpUpdateTypeDef ptpoffsettype,
1923 ETH_TimeTypeDef *timeoffset);
1925HAL_StatusTypeDef HAL_ETH_PTP_GetTxTimestamp(ETH_HandleTypeDef *heth, ETH_TimeStampTypeDef *timestamp);
1926HAL_StatusTypeDef HAL_ETH_PTP_GetRxTimestamp(ETH_HandleTypeDef *heth, ETH_TimeStampTypeDef *timestamp);
1927HAL_StatusTypeDef HAL_ETH_RegisterTxPtpCallback(ETH_HandleTypeDef *heth, pETH_txPtpCallbackTypeDef txPtpCallback);
1931HAL_StatusTypeDef HAL_ETH_Transmit(ETH_HandleTypeDef *heth, ETH_TxPacketConfigTypeDef *pTxConfig, uint32_t Timeout);
1932HAL_StatusTypeDef HAL_ETH_Transmit_IT(ETH_HandleTypeDef *heth, ETH_TxPacketConfigTypeDef *pTxConfig);
1934HAL_StatusTypeDef HAL_ETH_WritePHYRegister(
const ETH_HandleTypeDef *heth, uint32_t PHYAddr, uint32_t PHYReg,
1936HAL_StatusTypeDef HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint32_t PHYAddr, uint32_t PHYReg,
1937 uint32_t *pRegValue);
1939void HAL_ETH_IRQHandler(ETH_HandleTypeDef *heth);
1940void HAL_ETH_TxCpltCallback(ETH_HandleTypeDef *heth);
1941void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth);
1942void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth);
1943void HAL_ETH_PMTCallback(ETH_HandleTypeDef *heth);
1944void HAL_ETH_WakeUpCallback(ETH_HandleTypeDef *heth);
1945void HAL_ETH_RxAllocateCallback(uint8_t **buff);
1946void HAL_ETH_RxLinkCallback(
void **pStart,
void **pEnd, uint8_t *buff, uint16_t Length);
1947void HAL_ETH_TxFreeCallback(uint32_t *buff);
1948void HAL_ETH_TxPtpCallback(uint32_t *buff, ETH_TimeStampTypeDef *timestamp);
1958HAL_StatusTypeDef HAL_ETH_GetMACConfig(
const ETH_HandleTypeDef *heth, ETH_MACConfigTypeDef *macconf);
1959HAL_StatusTypeDef HAL_ETH_GetDMAConfig(
const ETH_HandleTypeDef *heth, ETH_DMAConfigTypeDef *dmaconf);
1960HAL_StatusTypeDef HAL_ETH_SetMACConfig(ETH_HandleTypeDef *heth, ETH_MACConfigTypeDef *macconf);
1961HAL_StatusTypeDef HAL_ETH_SetDMAConfig(ETH_HandleTypeDef *heth, ETH_DMAConfigTypeDef *dmaconf);
1962void HAL_ETH_SetMDIOClockRange(ETH_HandleTypeDef *heth);
1965void HAL_ETH_SetRxVLANIdentifier(ETH_HandleTypeDef *heth, uint32_t ComparisonBits,
1966 uint32_t VLANIdentifier);
1969HAL_StatusTypeDef HAL_ETH_GetMACFilterConfig(
const ETH_HandleTypeDef *heth, ETH_MACFilterConfigTypeDef *pFilterConfig);
1970HAL_StatusTypeDef HAL_ETH_SetMACFilterConfig(ETH_HandleTypeDef *heth,
const ETH_MACFilterConfigTypeDef *pFilterConfig);
1971HAL_StatusTypeDef HAL_ETH_SetHashTable(ETH_HandleTypeDef *heth, uint32_t *pHashTable);
1972HAL_StatusTypeDef HAL_ETH_SetSourceMACAddrMatch(
const ETH_HandleTypeDef *heth, uint32_t AddrNbr,
1973 const uint8_t *pMACAddr);
1976void HAL_ETH_EnterPowerDownMode(ETH_HandleTypeDef *heth,
1977 const ETH_PowerDownConfigTypeDef *pPowerDownConfig);
1978void HAL_ETH_ExitPowerDownMode(ETH_HandleTypeDef *heth);
1979HAL_StatusTypeDef HAL_ETH_SetWakeUpFilter(ETH_HandleTypeDef *heth, uint32_t *pFilter, uint32_t Count);
1989HAL_ETH_StateTypeDef HAL_ETH_GetState(
const ETH_HandleTypeDef *heth);
1990uint32_t HAL_ETH_GetError(
const ETH_HandleTypeDef *heth);
1991uint32_t HAL_ETH_GetDMAError(
const ETH_HandleTypeDef *heth);
1992uint32_t HAL_ETH_GetMACError(
const ETH_HandleTypeDef *heth);
1993uint32_t HAL_ETH_GetMACWakeUpSource(
const ETH_HandleTypeDef *heth);
1994uint32_t HAL_ETH_GetTxBuffersNumber(
const ETH_HandleTypeDef *heth);
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.