20#ifndef STM32H7xx_HAL_ETH_H
21#define STM32H7xx_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
49#ifndef ETH_SWRESET_TIMEOUT
50#define ETH_SWRESET_TIMEOUT 500U
53#ifndef ETH_MDIO_BUS_TIMEOUT
54#define ETH_MDIO_BUS_TIMEOUT 1000U
57#ifndef ETH_MAC_US_TICK
58#define ETH_MAC_US_TICK 1000000U
86typedef struct __ETH_BufferTypeDef
92 struct __ETH_BufferTypeDef *next;
103 uint32_t TxDesc[ETH_TX_DESC_CNT];
107 uint32_t *PacketAddress[ETH_TX_DESC_CNT];
109 uint32_t *CurrentPacketAddress;
111 uint32_t BuffersInUse;
113 uint32_t releaseIndex;
114} ETH_TxDescListTypeDef;
129 ETH_BufferTypeDef *TxBuffer;
131 uint32_t SrcAddrCtrl;
137 uint32_t ChecksumCtrl;
140 uint32_t MaxSegmentSize;
146 uint32_t TCPHeaderLen;
155 uint32_t InnerVlanTag;
158 uint32_t InnerVlanCtrl;
163} ETH_TxPacketConfigTypeDef;
173 uint32_t TimeStampLow;
174 uint32_t TimeStampHigh;
176} ETH_TimeStampTypeDef;
181#ifdef HAL_ETH_USE_PTP
188 uint32_t NanoSeconds;
200 uint32_t RxDesc[ETH_RX_DESC_CNT];
209 uint32_t RxDataLength;
211 uint32_t RxBuildDescIdx;
213 uint32_t RxBuildDescCnt;
215 uint32_t pRxLastRxDesc;
217 ETH_TimeStampTypeDef TimeStamp;
223} ETH_RxDescListTypeDef;
240 uint32_t InterPacketGapVal;
243 FunctionalState GiantPacketSizeLimitControl;
245 FunctionalState Support2KPacket;
247 FunctionalState CRCStripTypePacket;
249 FunctionalState AutomaticPadCRCStrip;
251 FunctionalState Watchdog;
253 FunctionalState Jabber;
255 FunctionalState JumboPacket;
265 FunctionalState LoopbackMode;
268 CarrierSenseBeforeTransmit;
270 FunctionalState ReceiveOwn;
273 CarrierSenseDuringTransmit;
278 uint32_t BackOffLimit;
289 UnicastSlowProtocolPacketDetect;
291 FunctionalState SlowProtocolDetect;
293 FunctionalState CRCCheckingRxPackets;
296 GiantPacketSizeLimit;
301 FunctionalState ExtendedInterPacketGap;
303 uint32_t ExtendedInterPacketGapVal;
306 FunctionalState ProgrammableWatchdog;
308 uint32_t WatchdogTimeout;
328 UnicastPausePacketDetect;
330 FunctionalState ReceiveFlowControl;
333 uint32_t TransmitQueueMode;
336 uint32_t ReceiveQueueMode;
339 FunctionalState DropTCPIPChecksumErrorPacket;
341 FunctionalState ForwardRxErrorPacket;
343 FunctionalState ForwardRxUndersizedGoodPacket;
344} ETH_MACConfigTypeDef;
354 uint32_t DMAArbitration;
357 FunctionalState AddressAlignedBeats;
362 FunctionalState RebuildINCRxBurst;
365 FunctionalState PBLx8Mode;
380 FunctionalState FlushRxPacket;
382 FunctionalState TCPSegmentation;
388} ETH_DMAConfigTypeDef;
398 HAL_ETH_MII_MODE = 0x00U,
399 HAL_ETH_RMII_MODE = 0x01U
400} ETH_MediaInterfaceTypeDef;
405#ifdef HAL_ETH_USE_PTP
411 HAL_ETH_PTP_POSITIVE_UPDATE = 0x00000000U,
412 HAL_ETH_PTP_NEGATIVE_UPDATE = 0x00000001U
413} ETH_PtpUpdateTypeDef;
427 ETH_MediaInterfaceTypeDef MediaInterface;
442#ifdef HAL_ETH_USE_PTP
449 uint32_t TimestampUpdateMode;
450 uint32_t TimestampInitialize;
451 uint32_t TimestampUpdate;
452 uint32_t TimestampAddendUpdate;
453 uint32_t TimestampAll;
454 uint32_t TimestampRolloverMode;
455 uint32_t TimestampV2;
456 uint32_t TimestampEthernet;
457 uint32_t TimestampIPv6;
458 uint32_t TimestampIPv4;
459 uint32_t TimestampEvent;
460 uint32_t TimestampMaster;
461 uint32_t TimestampSnapshots;
462 uint32_t TimestampFilter;
464 TimestampChecksumCorrection;
465 uint32_t TimestampStatusMode;
466 uint32_t TimestampAddend;
467 uint32_t TimestampSubsecondInc;
469} ETH_PTP_ConfigTypeDef;
478typedef uint32_t HAL_ETH_StateTypeDef;
486typedef void (*pETH_rxAllocateCallbackTypeDef)(uint8_t **buffer);
494typedef void (*pETH_rxLinkCallbackTypeDef)(
void **pStart,
void **pEnd, uint8_t *buff,
503typedef void (*pETH_txFreeCallbackTypeDef)(uint32_t *buffer);
511typedef void (*pETH_txPtpCallbackTypeDef)(uint32_t *buffer,
512 ETH_TimeStampTypeDef *timestamp);
520#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
521typedef struct __ETH_HandleTypeDef
528 ETH_InitTypeDef Init;
530 ETH_TxDescListTypeDef TxDescList;
533 ETH_RxDescListTypeDef RxDescList;
536#ifdef HAL_ETH_USE_PTP
537 ETH_TimeStampTypeDef TxTimestamp;
540 __IO HAL_ETH_StateTypeDef gState;
544 __IO uint32_t ErrorCode;
557 __IO uint32_t MACWakeUpEvent;
561 __IO uint32_t MACLPIEvent;
564 __IO uint32_t IsPtpConfigured;
568#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
570 void (* TxCpltCallback)(
struct __ETH_HandleTypeDef *heth);
571 void (* RxCpltCallback)(
struct __ETH_HandleTypeDef *heth);
572 void (* ErrorCallback)(
struct __ETH_HandleTypeDef *heth);
573 void (* PMTCallback)(
struct __ETH_HandleTypeDef *heth);
574 void (* EEECallback)(
struct __ETH_HandleTypeDef *heth);
575 void (* WakeUpCallback)(
struct __ETH_HandleTypeDef *heth);
577 void (* MspInitCallback)(
struct __ETH_HandleTypeDef *heth);
578 void (* MspDeInitCallback)(
struct __ETH_HandleTypeDef *heth);
582 pETH_rxAllocateCallbackTypeDef rxAllocateCallback;
583 pETH_rxLinkCallbackTypeDef rxLinkCallback;
584 pETH_txFreeCallbackTypeDef txFreeCallback;
585 pETH_txPtpCallbackTypeDef txPtpCallback;
592#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
598 HAL_ETH_MSPINIT_CB_ID = 0x00U,
599 HAL_ETH_MSPDEINIT_CB_ID = 0x01U,
600 HAL_ETH_TX_COMPLETE_CB_ID = 0x02U,
601 HAL_ETH_RX_COMPLETE_CB_ID = 0x03U,
602 HAL_ETH_ERROR_CB_ID = 0x04U,
603 HAL_ETH_PMT_CB_ID = 0x06U,
604 HAL_ETH_EEE_CB_ID = 0x07U,
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;
697#define ETH_DMATXNDESCRF_B1AP 0xFFFFFFFFU
702#define ETH_DMATXNDESCRF_B2AP 0xFFFFFFFFU
707#define ETH_DMATXNDESCRF_IOC 0x80000000U
708#define ETH_DMATXNDESCRF_TTSE 0x40000000U
709#define ETH_DMATXNDESCRF_B2L 0x3FFF0000U
710#define ETH_DMATXNDESCRF_VTIR 0x0000C000U
711#define ETH_DMATXNDESCRF_VTIR_DISABLE 0x00000000U
712#define ETH_DMATXNDESCRF_VTIR_REMOVE 0x00004000U
713#define ETH_DMATXNDESCRF_VTIR_INSERT 0x00008000U
714#define ETH_DMATXNDESCRF_VTIR_REPLACE 0x0000C000U
715#define ETH_DMATXNDESCRF_B1L 0x00003FFFU
716#define ETH_DMATXNDESCRF_HL 0x000003FFU
721#define ETH_DMATXNDESCRF_OWN 0x80000000U
722#define ETH_DMATXNDESCRF_CTXT 0x40000000U
723#define ETH_DMATXNDESCRF_FD 0x20000000U
724#define ETH_DMATXNDESCRF_LD 0x10000000U
725#define ETH_DMATXNDESCRF_CPC 0x0C000000U
726#define ETH_DMATXNDESCRF_CPC_CRCPAD_INSERT 0x00000000U
727#define ETH_DMATXNDESCRF_CPC_CRC_INSERT 0x04000000U
728#define ETH_DMATXNDESCRF_CPC_DISABLE 0x08000000U
729#define ETH_DMATXNDESCRF_CPC_CRC_REPLACE 0x0C000000U
730#define ETH_DMATXNDESCRF_SAIC 0x03800000U
731#define ETH_DMATXNDESCRF_SAIC_DISABLE 0x00000000U
732#define ETH_DMATXNDESCRF_SAIC_INSERT 0x00800000U
733#define ETH_DMATXNDESCRF_SAIC_REPLACE 0x01000000U
734#define ETH_DMATXNDESCRF_THL 0x00780000U
735#define ETH_DMATXNDESCRF_TSE 0x00040000U
736#define ETH_DMATXNDESCRF_CIC 0x00030000U
737#define ETH_DMATXNDESCRF_CIC_DISABLE 0x00000000U
738#define ETH_DMATXNDESCRF_CIC_IPHDR_INSERT 0x00010000U
739#define ETH_DMATXNDESCRF_CIC_IPHDR_PAYLOAD_INSERT 0x00020000U
743#define ETH_DMATXNDESCRF_CIC_IPHDR_PAYLOAD_INSERT_PHDR_CALC 0x00030000U
747#define ETH_DMATXNDESCRF_TPL 0x0003FFFFU
748#define ETH_DMATXNDESCRF_FL 0x00007FFFU
766#define ETH_DMATXNDESCWBF_TTSL 0xFFFFFFFFU
771#define ETH_DMATXNDESCWBF_TTSH 0xFFFFFFFFU
776#define ETH_DMATXNDESCWBF_OWN 0x80000000U
777#define ETH_DMATXNDESCWBF_CTXT 0x40000000U
778#define ETH_DMATXNDESCWBF_FD 0x20000000U
779#define ETH_DMATXNDESCWBF_LD 0x10000000U
780#define ETH_DMATXNDESCWBF_TTSS 0x00020000U
781#define ETH_DMATXNDESCWBF_DP 0x04000000U
782#define ETH_DMATXNDESCWBF_TTSE 0x02000000U
783#define ETH_DMATXNDESCWBF_ES 0x00008000U
784#define ETH_DMATXNDESCWBF_JT 0x00004000U
785#define ETH_DMATXNDESCWBF_FF 0x00002000U
786#define ETH_DMATXNDESCWBF_PCE 0x00001000U
787#define ETH_DMATXNDESCWBF_LCA 0x00000800U
788#define ETH_DMATXNDESCWBF_NC 0x00000400U
789#define ETH_DMATXNDESCWBF_LCO 0x00000200U
790#define ETH_DMATXNDESCWBF_EC 0x00000100U
791#define ETH_DMATXNDESCWBF_CC 0x000000F0U
792#define ETH_DMATXNDESCWBF_ED 0x00000008U
793#define ETH_DMATXNDESCWBF_UF 0x00000004U
794#define ETH_DMATXNDESCWBF_DB 0x00000002U
795#define ETH_DMATXNDESCWBF_IHE 0x00000004U
813#define ETH_DMATXCDESC_TTSL 0xFFFFFFFFU
818#define ETH_DMATXCDESC_TTSH 0xFFFFFFFFU
823#define ETH_DMATXCDESC_IVT 0xFFFF0000U
824#define ETH_DMATXCDESC_MSS 0x00003FFFU
829#define ETH_DMATXCDESC_OWN 0x80000000U
830#define ETH_DMATXCDESC_CTXT 0x40000000U
831#define ETH_DMATXCDESC_OSTC 0x08000000U
832#define ETH_DMATXCDESC_TCMSSV 0x04000000U
833#define ETH_DMATXCDESC_CDE 0x00800000U
834#define ETH_DMATXCDESC_IVTIR 0x000C0000U
835#define ETH_DMATXCDESC_IVTIR_DISABLE 0x00000000U
836#define ETH_DMATXCDESC_IVTIR_REMOVE 0x00040000U
837#define ETH_DMATXCDESC_IVTIR_INSERT 0x00080000U
838#define ETH_DMATXCDESC_IVTIR_REPLACE 0x000C0000U
839#define ETH_DMATXCDESC_IVLTV 0x00020000U
840#define ETH_DMATXCDESC_VLTV 0x00010000U
841#define ETH_DMATXCDESC_VT 0x0000FFFFU
868#define ETH_DMARXNDESCRF_BUF1AP 0xFFFFFFFFU
873#define ETH_DMARXNDESCRF_BUF2AP 0xFFFFFFFFU
878#define ETH_DMARXNDESCRF_OWN 0x80000000U
879#define ETH_DMARXNDESCRF_IOC 0x40000000U
880#define ETH_DMARXNDESCRF_BUF2V 0x02000000U
881#define ETH_DMARXNDESCRF_BUF1V 0x01000000U
899#define ETH_DMARXNDESCWBF_IVT 0xFFFF0000U
900#define ETH_DMARXNDESCWBF_OVT 0x0000FFFFU
905#define ETH_DMARXNDESCWBF_OPC 0xFFFF0000U
906#define ETH_DMARXNDESCWBF_TD 0x00008000U
907#define ETH_DMARXNDESCWBF_TSA 0x00004000U
908#define ETH_DMARXNDESCWBF_PV 0x00002000U
909#define ETH_DMARXNDESCWBF_PFT 0x00001000U
910#define ETH_DMARXNDESCWBF_PMT_NO 0x00000000U
911#define ETH_DMARXNDESCWBF_PMT_SYNC 0x00000100U
912#define ETH_DMARXNDESCWBF_PMT_FUP 0x00000200U
913#define ETH_DMARXNDESCWBF_PMT_DREQ 0x00000300U
914#define ETH_DMARXNDESCWBF_PMT_DRESP 0x00000400U
915#define ETH_DMARXNDESCWBF_PMT_PDREQ 0x00000500U
916#define ETH_DMARXNDESCWBF_PMT_PDRESP 0x00000600U
917#define ETH_DMARXNDESCWBF_PMT_PDRESPFUP 0x00000700U
918#define ETH_DMARXNDESCWBF_PMT_ANNOUNCE 0x00000800U
919#define ETH_DMARXNDESCWBF_PMT_MANAG 0x00000900U
920#define ETH_DMARXNDESCWBF_PMT_SIGN 0x00000A00U
921#define ETH_DMARXNDESCWBF_PMT_RESERVED 0x00000F00U
922#define ETH_DMARXNDESCWBF_IPCE 0x00000080U
923#define ETH_DMARXNDESCWBF_IPCB 0x00000040U
924#define ETH_DMARXNDESCWBF_IPV6 0x00000020U
925#define ETH_DMARXNDESCWBF_IPV4 0x00000010U
926#define ETH_DMARXNDESCWBF_IPHE 0x00000008U
927#define ETH_DMARXNDESCWBF_PT 0x00000003U
928#define ETH_DMARXNDESCWBF_PT_UNKNOWN 0x00000000U
929#define ETH_DMARXNDESCWBF_PT_UDP 0x00000001U
930#define ETH_DMARXNDESCWBF_PT_TCP 0x00000002U
931#define ETH_DMARXNDESCWBF_PT_ICMP 0x00000003U
936#define ETH_DMARXNDESCWBF_L3L4FM 0x20000000U
937#define ETH_DMARXNDESCWBF_L4FM 0x10000000U
938#define ETH_DMARXNDESCWBF_L3FM 0x08000000U
939#define ETH_DMARXNDESCWBF_MADRM 0x07F80000U
940#define ETH_DMARXNDESCWBF_HF 0x00040000U
941#define ETH_DMARXNDESCWBF_DAF 0x00020000U
942#define ETH_DMARXNDESCWBF_SAF 0x00010000U
943#define ETH_DMARXNDESCWBF_VF 0x00008000U
944#define ETH_DMARXNDESCWBF_ARPNR 0x00000400U
949#define ETH_DMARXNDESCWBF_OWN 0x80000000U
950#define ETH_DMARXNDESCWBF_CTXT 0x40000000U
951#define ETH_DMARXNDESCWBF_FD 0x20000000U
952#define ETH_DMARXNDESCWBF_LD 0x10000000U
953#define ETH_DMARXNDESCWBF_RS2V 0x08000000U
954#define ETH_DMARXNDESCWBF_RS1V 0x04000000U
955#define ETH_DMARXNDESCWBF_RS0V 0x02000000U
956#define ETH_DMARXNDESCWBF_CE 0x01000000U
957#define ETH_DMARXNDESCWBF_GP 0x00800000U
958#define ETH_DMARXNDESCWBF_RWT 0x00400000U
959#define ETH_DMARXNDESCWBF_OE 0x00200000U
960#define ETH_DMARXNDESCWBF_RE 0x00100000U
961#define ETH_DMARXNDESCWBF_DE 0x00080000U
962#define ETH_DMARXNDESCWBF_LT 0x00070000U
963#define ETH_DMARXNDESCWBF_LT_LP 0x00000000U
964#define ETH_DMARXNDESCWBF_LT_TP 0x00010000U
965#define ETH_DMARXNDESCWBF_LT_ARP 0x00030000U
966#define ETH_DMARXNDESCWBF_LT_VLAN 0x00040000U
967#define ETH_DMARXNDESCWBF_LT_DVLAN 0x00050000U
968#define ETH_DMARXNDESCWBF_LT_MAC 0x00060000U
969#define ETH_DMARXNDESCWBF_LT_OAM 0x00070000U
970#define ETH_DMARXNDESCWBF_ES 0x00008000U
971#define ETH_DMARXNDESCWBF_PL 0x00007FFFU
989#define ETH_DMARXCDESC_RTSL 0xFFFFFFFFU
994#define ETH_DMARXCDESC_RTSH 0xFFFFFFFFU
999#define ETH_DMARXCDESC_OWN 0x80000000U
1000#define ETH_DMARXCDESC_CTXT 0x40000000U
1010#define ETH_MAX_PACKET_SIZE 1528U
1011#define ETH_HEADER 14U
1013#define ETH_VLAN_TAG 4U
1014#define ETH_MIN_PAYLOAD 46U
1015#define ETH_MAX_PAYLOAD 1500U
1016#define ETH_JUMBO_FRAME_PAYLOAD 9000U
1025#define HAL_ETH_ERROR_NONE 0x00000000U
1026#define HAL_ETH_ERROR_PARAM 0x00000001U
1027#define HAL_ETH_ERROR_BUSY 0x00000002U
1028#define HAL_ETH_ERROR_TIMEOUT 0x00000004U
1029#define HAL_ETH_ERROR_DMA 0x00000008U
1030#define HAL_ETH_ERROR_MAC 0x00000010U
1031#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
1032#define HAL_ETH_ERROR_INVALID_CALLBACK 0x00000020U
1042#define ETH_TX_PACKETS_FEATURES_CSUM 0x00000001U
1043#define ETH_TX_PACKETS_FEATURES_SAIC 0x00000002U
1044#define ETH_TX_PACKETS_FEATURES_VLANTAG 0x00000004U
1045#define ETH_TX_PACKETS_FEATURES_INNERVLANTAG 0x00000008U
1046#define ETH_TX_PACKETS_FEATURES_TSO 0x00000010U
1047#define ETH_TX_PACKETS_FEATURES_CRCPAD 0x00000020U
1056#define ETH_SRC_ADDR_CONTROL_DISABLE ETH_DMATXNDESCRF_SAIC_DISABLE
1057#define ETH_SRC_ADDR_INSERT ETH_DMATXNDESCRF_SAIC_INSERT
1058#define ETH_SRC_ADDR_REPLACE ETH_DMATXNDESCRF_SAIC_REPLACE
1067#define ETH_CRC_PAD_DISABLE ETH_DMATXNDESCRF_CPC_DISABLE
1068#define ETH_CRC_PAD_INSERT ETH_DMATXNDESCRF_CPC_CRCPAD_INSERT
1069#define ETH_CRC_INSERT ETH_DMATXNDESCRF_CPC_CRC_INSERT
1070#define ETH_CRC_REPLACE ETH_DMATXNDESCRF_CPC_CRC_REPLACE
1079#define ETH_CHECKSUM_DISABLE ETH_DMATXNDESCRF_CIC_DISABLE
1080#define ETH_CHECKSUM_IPHDR_INSERT ETH_DMATXNDESCRF_CIC_IPHDR_INSERT
1081#define ETH_CHECKSUM_IPHDR_PAYLOAD_INSERT ETH_DMATXNDESCRF_CIC_IPHDR_PAYLOAD_INSERT
1082#define ETH_CHECKSUM_IPHDR_PAYLOAD_INSERT_PHDR_CALC ETH_DMATXNDESCRF_CIC_IPHDR_PAYLOAD_INSERT_PHDR_CALC
1091#define ETH_VLAN_DISABLE ETH_DMATXNDESCRF_VTIR_DISABLE
1092#define ETH_VLAN_REMOVE ETH_DMATXNDESCRF_VTIR_REMOVE
1093#define ETH_VLAN_INSERT ETH_DMATXNDESCRF_VTIR_INSERT
1094#define ETH_VLAN_REPLACE ETH_DMATXNDESCRF_VTIR_REPLACE
1103#define ETH_INNER_VLAN_DISABLE ETH_DMATXCDESC_IVTIR_DISABLE
1104#define ETH_INNER_VLAN_REMOVE ETH_DMATXCDESC_IVTIR_REMOVE
1105#define ETH_INNER_VLAN_INSERT ETH_DMATXCDESC_IVTIR_INSERT
1106#define ETH_INNER_VLAN_REPLACE ETH_DMATXCDESC_IVTIR_REPLACE
1115#define ETH_CHECKSUM_BYPASSED ETH_DMARXNDESCWBF_IPCB
1116#define ETH_CHECKSUM_IP_HEADER_ERROR ETH_DMARXNDESCWBF_IPHE
1117#define ETH_CHECKSUM_IP_PAYLOAD_ERROR ETH_DMARXNDESCWBF_IPCE
1126#define ETH_IP_HEADER_IPV4 ETH_DMARXNDESCWBF_IPV4
1127#define ETH_IP_HEADER_IPV6 ETH_DMARXNDESCWBF_IPV6
1136#define ETH_IP_PAYLOAD_UNKNOWN ETH_DMARXNDESCWBF_PT_UNKNOWN
1137#define ETH_IP_PAYLOAD_UDP ETH_DMARXNDESCWBF_PT_UDP
1138#define ETH_IP_PAYLOAD_TCP ETH_DMARXNDESCWBF_PT_TCP
1139#define ETH_IP_PAYLOAD_ICMPN ETH_DMARXNDESCWBF_PT_ICMP
1148#define ETH_HASH_FILTER_PASS ETH_DMARXNDESCWBF_HF
1149#define ETH_VLAN_FILTER_PASS ETH_DMARXNDESCWBF_VF
1150#define ETH_DEST_ADDRESS_FAIL ETH_DMARXNDESCWBF_DAF
1151#define ETH_SOURCE_ADDRESS_FAIL ETH_DMARXNDESCWBF_SAF
1159#define ETH_L3_FILTER0_MATCH ETH_DMARXNDESCWBF_L3FM
1160#define ETH_L3_FILTER1_MATCH (ETH_DMARXNDESCWBF_L3FM | ETH_DMARXNDESCWBF_L3L4FM)
1169#define ETH_L4_FILTER0_MATCH ETH_DMARXNDESCWBF_L4FM
1170#define ETH_L4_FILTER1_MATCH (ETH_DMARXNDESCWBF_L4FM | ETH_DMARXNDESCWBF_L3L4FM)
1179#define ETH_DRIBBLE_BIT_ERROR ETH_DMARXNDESCWBF_DE
1180#define ETH_RECEIVE_ERROR ETH_DMARXNDESCWBF_RE
1181#define ETH_RECEIVE_OVERFLOW ETH_DMARXNDESCWBF_OE
1182#define ETH_WATCHDOG_TIMEOUT ETH_DMARXNDESCWBF_RWT
1183#define ETH_GIANT_PACKET ETH_DMARXNDESCWBF_GP
1184#define ETH_CRC_ERROR ETH_DMARXNDESCWBF_CE
1193#define ETH_DMAARBITRATION_RX ETH_DMAMR_DA
1194#define ETH_DMAARBITRATION_RX1_TX1 0x00000000U
1195#define ETH_DMAARBITRATION_RX2_TX1 ETH_DMAMR_PR_2_1
1196#define ETH_DMAARBITRATION_RX3_TX1 ETH_DMAMR_PR_3_1
1197#define ETH_DMAARBITRATION_RX4_TX1 ETH_DMAMR_PR_4_1
1198#define ETH_DMAARBITRATION_RX5_TX1 ETH_DMAMR_PR_5_1
1199#define ETH_DMAARBITRATION_RX6_TX1 ETH_DMAMR_PR_6_1
1200#define ETH_DMAARBITRATION_RX7_TX1 ETH_DMAMR_PR_7_1
1201#define ETH_DMAARBITRATION_RX8_TX1 ETH_DMAMR_PR_8_1
1202#define ETH_DMAARBITRATION_TX (ETH_DMAMR_TXPR | ETH_DMAMR_DA)
1203#define ETH_DMAARBITRATION_TX1_RX1 0x00000000U
1204#define ETH_DMAARBITRATION_TX2_RX1 (ETH_DMAMR_TXPR | ETH_DMAMR_PR_2_1)
1205#define ETH_DMAARBITRATION_TX3_RX1 (ETH_DMAMR_TXPR | ETH_DMAMR_PR_3_1)
1206#define ETH_DMAARBITRATION_TX4_RX1 (ETH_DMAMR_TXPR | ETH_DMAMR_PR_4_1)
1207#define ETH_DMAARBITRATION_TX5_RX1 (ETH_DMAMR_TXPR | ETH_DMAMR_PR_5_1)
1208#define ETH_DMAARBITRATION_TX6_RX1 (ETH_DMAMR_TXPR | ETH_DMAMR_PR_6_1)
1209#define ETH_DMAARBITRATION_TX7_RX1 (ETH_DMAMR_TXPR | ETH_DMAMR_PR_7_1)
1210#define ETH_DMAARBITRATION_TX8_RX1 (ETH_DMAMR_TXPR | ETH_DMAMR_PR_8_1)
1219#define ETH_BURSTLENGTH_FIXED ETH_DMASBMR_FB
1220#define ETH_BURSTLENGTH_MIXED ETH_DMASBMR_MB
1221#define ETH_BURSTLENGTH_UNSPECIFIED 0x00000000U
1230#define ETH_TXDMABURSTLENGTH_1BEAT ETH_DMACTCR_TPBL_1PBL
1231#define ETH_TXDMABURSTLENGTH_2BEAT ETH_DMACTCR_TPBL_2PBL
1232#define ETH_TXDMABURSTLENGTH_4BEAT ETH_DMACTCR_TPBL_4PBL
1233#define ETH_TXDMABURSTLENGTH_8BEAT ETH_DMACTCR_TPBL_8PBL
1234#define ETH_TXDMABURSTLENGTH_16BEAT ETH_DMACTCR_TPBL_16PBL
1235#define ETH_TXDMABURSTLENGTH_32BEAT ETH_DMACTCR_TPBL_32PBL
1244#define ETH_RXDMABURSTLENGTH_1BEAT ETH_DMACRCR_RPBL_1PBL
1245#define ETH_RXDMABURSTLENGTH_2BEAT ETH_DMACRCR_RPBL_2PBL
1246#define ETH_RXDMABURSTLENGTH_4BEAT ETH_DMACRCR_RPBL_4PBL
1247#define ETH_RXDMABURSTLENGTH_8BEAT ETH_DMACRCR_RPBL_8PBL
1248#define ETH_RXDMABURSTLENGTH_16BEAT ETH_DMACRCR_RPBL_16PBL
1249#define ETH_RXDMABURSTLENGTH_32BEAT ETH_DMACRCR_RPBL_32PBL
1258#define ETH_DMA_NORMAL_IT ETH_DMACIER_NIE
1259#define ETH_DMA_ABNORMAL_IT ETH_DMACIER_AIE
1260#define ETH_DMA_CONTEXT_DESC_ERROR_IT ETH_DMACIER_CDEE
1261#define ETH_DMA_FATAL_BUS_ERROR_IT ETH_DMACIER_FBEE
1262#define ETH_DMA_EARLY_RX_IT ETH_DMACIER_ERIE
1263#define ETH_DMA_EARLY_TX_IT ETH_DMACIER_ETIE
1264#define ETH_DMA_RX_WATCHDOG_TIMEOUT_IT ETH_DMACIER_RWTE
1265#define ETH_DMA_RX_PROCESS_STOPPED_IT ETH_DMACIER_RSE
1266#define ETH_DMA_RX_BUFFER_UNAVAILABLE_IT ETH_DMACIER_RBUE
1267#define ETH_DMA_RX_IT ETH_DMACIER_RIE
1268#define ETH_DMA_TX_BUFFER_UNAVAILABLE_IT ETH_DMACIER_TBUE
1269#define ETH_DMA_TX_PROCESS_STOPPED_IT ETH_DMACIER_TXSE
1270#define ETH_DMA_TX_IT ETH_DMACIER_TIE
1279#define ETH_DMA_RX_NO_ERROR_FLAG 0x00000000U
1280#define ETH_DMA_RX_DESC_READ_ERROR_FLAG (ETH_DMACSR_REB_BIT_2 | ETH_DMACSR_REB_BIT_1 | ETH_DMACSR_REB_BIT_0)
1281#define ETH_DMA_RX_DESC_WRITE_ERROR_FLAG (ETH_DMACSR_REB_BIT_2 | ETH_DMACSR_REB_BIT_1)
1282#define ETH_DMA_RX_BUFFER_READ_ERROR_FLAG (ETH_DMACSR_REB_BIT_2 | ETH_DMACSR_REB_BIT_0)
1283#define ETH_DMA_RX_BUFFER_WRITE_ERROR_FLAG ETH_DMACSR_REB_BIT_2
1284#define ETH_DMA_TX_NO_ERROR_FLAG 0x00000000U
1285#define ETH_DMA_TX_DESC_READ_ERROR_FLAG (ETH_DMACSR_TEB_BIT_2 | ETH_DMACSR_TEB_BIT_1 | ETH_DMACSR_TEB_BIT_0)
1286#define ETH_DMA_TX_DESC_WRITE_ERROR_FLAG (ETH_DMACSR_TEB_BIT_2 | ETH_DMACSR_TEB_BIT_1)
1287#define ETH_DMA_TX_BUFFER_READ_ERROR_FLAG (ETH_DMACSR_TEB_BIT_2 | ETH_DMACSR_TEB_BIT_0)
1288#define ETH_DMA_TX_BUFFER_WRITE_ERROR_FLAG ETH_DMACSR_TEB_BIT_2
1289#define ETH_DMA_CONTEXT_DESC_ERROR_FLAG ETH_DMACSR_CDE
1290#define ETH_DMA_FATAL_BUS_ERROR_FLAG ETH_DMACSR_FBE
1291#define ETH_DMA_EARLY_TX_IT_FLAG ETH_DMACSR_ERI
1292#define ETH_DMA_RX_WATCHDOG_TIMEOUT_FLAG ETH_DMACSR_RWT
1293#define ETH_DMA_RX_PROCESS_STOPPED_FLAG ETH_DMACSR_RPS
1294#define ETH_DMA_RX_BUFFER_UNAVAILABLE_FLAG ETH_DMACSR_RBU
1295#define ETH_DMA_TX_PROCESS_STOPPED_FLAG ETH_DMACSR_TPS
1304#define ETH_TRANSMITSTOREFORWARD ETH_MTLTQOMR_TSF
1305#define ETH_TRANSMITTHRESHOLD_32 ETH_MTLTQOMR_TTC_32BITS
1306#define ETH_TRANSMITTHRESHOLD_64 ETH_MTLTQOMR_TTC_64BITS
1307#define ETH_TRANSMITTHRESHOLD_96 ETH_MTLTQOMR_TTC_96BITS
1308#define ETH_TRANSMITTHRESHOLD_128 ETH_MTLTQOMR_TTC_128BITS
1309#define ETH_TRANSMITTHRESHOLD_192 ETH_MTLTQOMR_TTC_192BITS
1310#define ETH_TRANSMITTHRESHOLD_256 ETH_MTLTQOMR_TTC_256BITS
1311#define ETH_TRANSMITTHRESHOLD_384 ETH_MTLTQOMR_TTC_384BITS
1312#define ETH_TRANSMITTHRESHOLD_512 ETH_MTLTQOMR_TTC_512BITS
1321#define ETH_RECEIVESTOREFORWARD ETH_MTLRQOMR_RSF
1322#define ETH_RECEIVETHRESHOLD8_64 ETH_MTLRQOMR_RTC_64BITS
1323#define ETH_RECEIVETHRESHOLD8_32 ETH_MTLRQOMR_RTC_32BITS
1324#define ETH_RECEIVETHRESHOLD8_96 ETH_MTLRQOMR_RTC_96BITS
1325#define ETH_RECEIVETHRESHOLD8_128 ETH_MTLRQOMR_RTC_128BITS
1334#define ETH_PAUSELOWTHRESHOLD_MINUS_4 ETH_MACTFCR_PLT_MINUS4
1335#define ETH_PAUSELOWTHRESHOLD_MINUS_28 ETH_MACTFCR_PLT_MINUS28
1336#define ETH_PAUSELOWTHRESHOLD_MINUS_36 ETH_MACTFCR_PLT_MINUS36
1337#define ETH_PAUSELOWTHRESHOLD_MINUS_144 ETH_MACTFCR_PLT_MINUS144
1338#define ETH_PAUSELOWTHRESHOLD_MINUS_256 ETH_MACTFCR_PLT_MINUS256
1339#define ETH_PAUSELOWTHRESHOLD_MINUS_512 ETH_MACTFCR_PLT_MINUS512
1348#define ETH_WATCHDOGTIMEOUT_2KB ETH_MACWTR_WTO_2KB
1349#define ETH_WATCHDOGTIMEOUT_3KB ETH_MACWTR_WTO_3KB
1350#define ETH_WATCHDOGTIMEOUT_4KB ETH_MACWTR_WTO_4KB
1351#define ETH_WATCHDOGTIMEOUT_5KB ETH_MACWTR_WTO_5KB
1352#define ETH_WATCHDOGTIMEOUT_6KB ETH_MACWTR_WTO_6KB
1353#define ETH_WATCHDOGTIMEOUT_7KB ETH_MACWTR_WTO_7KB
1354#define ETH_WATCHDOGTIMEOUT_8KB ETH_MACWTR_WTO_8KB
1355#define ETH_WATCHDOGTIMEOUT_9KB ETH_MACWTR_WTO_9KB
1356#define ETH_WATCHDOGTIMEOUT_10KB ETH_MACWTR_WTO_10KB
1357#define ETH_WATCHDOGTIMEOUT_11KB ETH_MACWTR_WTO_12KB
1358#define ETH_WATCHDOGTIMEOUT_12KB ETH_MACWTR_WTO_12KB
1359#define ETH_WATCHDOGTIMEOUT_13KB ETH_MACWTR_WTO_13KB
1360#define ETH_WATCHDOGTIMEOUT_14KB ETH_MACWTR_WTO_14KB
1361#define ETH_WATCHDOGTIMEOUT_15KB ETH_MACWTR_WTO_15KB
1362#define ETH_WATCHDOGTIMEOUT_16KB ETH_MACWTR_WTO_16KB
1371#define ETH_INTERPACKETGAP_96BIT ETH_MACCR_IPG_96BIT
1372#define ETH_INTERPACKETGAP_88BIT ETH_MACCR_IPG_88BIT
1373#define ETH_INTERPACKETGAP_80BIT ETH_MACCR_IPG_80BIT
1374#define ETH_INTERPACKETGAP_72BIT ETH_MACCR_IPG_72BIT
1375#define ETH_INTERPACKETGAP_64BIT ETH_MACCR_IPG_64BIT
1376#define ETH_INTERPACKETGAP_56BIT ETH_MACCR_IPG_56BIT
1377#define ETH_INTERPACKETGAP_48BIT ETH_MACCR_IPG_48BIT
1378#define ETH_INTERPACKETGAP_40BIT ETH_MACCR_IPG_40BIT
1387#define ETH_SPEED_10M 0x00000000U
1388#define ETH_SPEED_100M ETH_MACCR_FES
1397#define ETH_FULLDUPLEX_MODE ETH_MACCR_DM
1398#define ETH_HALFDUPLEX_MODE 0x00000000U
1407#define ETH_BACKOFFLIMIT_10 ETH_MACCR_BL_10
1408#define ETH_BACKOFFLIMIT_8 ETH_MACCR_BL_8
1409#define ETH_BACKOFFLIMIT_4 ETH_MACCR_BL_4
1410#define ETH_BACKOFFLIMIT_1 ETH_MACCR_BL_1
1419#define ETH_PREAMBLELENGTH_7 ETH_MACCR_PRELEN_7
1420#define ETH_PREAMBLELENGTH_5 ETH_MACCR_PRELEN_5
1421#define ETH_PREAMBLELENGTH_3 ETH_MACCR_PRELEN_3
1430#define ETH_SOURCEADDRESS_DISABLE 0x00000000U
1431#define ETH_SOURCEADDRESS_INSERT_ADDR0 ETH_MACCR_SARC_INSADDR0
1432#define ETH_SOURCEADDRESS_INSERT_ADDR1 ETH_MACCR_SARC_INSADDR1
1433#define ETH_SOURCEADDRESS_REPLACE_ADDR0 ETH_MACCR_SARC_REPADDR0
1434#define ETH_SOURCEADDRESS_REPLACE_ADDR1 ETH_MACCR_SARC_REPADDR1
1443#define ETH_CTRLPACKETS_BLOCK_ALL ETH_MACPFR_PCF_BLOCKALL
1444#define ETH_CTRLPACKETS_FORWARD_ALL_EXCEPT_PA ETH_MACPFR_PCF_FORWARDALLEXCEPTPA
1445#define ETH_CTRLPACKETS_FORWARD_ALL ETH_MACPFR_PCF_FORWARDALL
1446#define ETH_CTRLPACKETS_FORWARD_PASSED_ADDR_FILTER ETH_MACPFR_PCF_FORWARDPASSEDADDRFILTER
1455#define ETH_VLANTAGCOMPARISON_16BIT 0x00000000U
1456#define ETH_VLANTAGCOMPARISON_12BIT ETH_MACVTR_ETV
1465#define ETH_MAC_ADDRESS0 0x00000000U
1466#define ETH_MAC_ADDRESS1 0x00000008U
1467#define ETH_MAC_ADDRESS2 0x00000010U
1468#define ETH_MAC_ADDRESS3 0x00000018U
1477#define ETH_MAC_RX_STATUS_IT ETH_MACIER_RXSTSIE
1478#define ETH_MAC_TX_STATUS_IT ETH_MACIER_TXSTSIE
1479#define ETH_MAC_TIMESTAMP_IT ETH_MACIER_TSIE
1480#define ETH_MAC_LPI_IT ETH_MACIER_LPIIE
1481#define ETH_MAC_PMT_IT ETH_MACIER_PMTIE
1482#define ETH_MAC_PHY_IT ETH_MACIER_PHYIE
1491#define ETH_WAKEUP_PACKET_RECIEVED ETH_MACPCSR_RWKPRCVD
1492#define ETH_MAGIC_PACKET_RECIEVED ETH_MACPCSR_MGKPRCVD
1501#define ETH_RECEIVE_WATCHDOG_TIMEOUT ETH_MACRXTXSR_RWT
1502#define ETH_EXECESSIVE_COLLISIONS ETH_MACRXTXSR_EXCOL
1503#define ETH_LATE_COLLISIONS ETH_MACRXTXSR_LCOL
1504#define ETH_EXECESSIVE_DEFERRAL ETH_MACRXTXSR_EXDEF
1505#define ETH_LOSS_OF_CARRIER ETH_MACRXTXSR_LCARR
1506#define ETH_NO_CARRIER ETH_MACRXTXSR_NCARR
1507#define ETH_TRANSMIT_JABBR_TIMEOUT ETH_MACRXTXSR_TJT
1516#define HAL_ETH_STATE_RESET 0x00000000U
1517#define HAL_ETH_STATE_READY 0x00000010U
1518#define HAL_ETH_STATE_BUSY 0x00000023U
1519#define HAL_ETH_STATE_STARTED 0x00000023U
1520#define HAL_ETH_STATE_ERROR 0x000000E0U
1529#define HAL_ETH_PTP_NOT_CONFIGURED 0x00000000U
1530#define HAL_ETH_PTP_CONFIGURED 0x00000001U
1549#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
1550#define __HAL_ETH_RESET_HANDLE_STATE(__HANDLE__) do{ \
1551 (__HANDLE__)->gState = HAL_ETH_STATE_RESET; \
1552 (__HANDLE__)->MspInitCallback = NULL; \
1553 (__HANDLE__)->MspDeInitCallback = NULL; \
1556#define __HAL_ETH_RESET_HANDLE_STATE(__HANDLE__) do{ \
1557 (__HANDLE__)->gState = HAL_ETH_STATE_RESET; \
1568#define __HAL_ETH_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DMACIER |= (__INTERRUPT__))
1577#define __HAL_ETH_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DMACIER &= ~(__INTERRUPT__))
1585#define __HAL_ETH_DMA_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) \
1586 (((__HANDLE__)->Instance->DMACIER & (__INTERRUPT__)) == (__INTERRUPT__))
1594#define __HAL_ETH_DMA_GET_IT(__HANDLE__, __INTERRUPT__) \
1595 (((__HANDLE__)->Instance->DMACSR & (__INTERRUPT__)) == (__INTERRUPT__))
1603#define __HAL_ETH_DMA_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DMACSR = (__INTERRUPT__))
1611#define __HAL_ETH_DMA_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->DMACSR &( __FLAG__)) == ( __FLAG__))
1619#define __HAL_ETH_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->DMACSR = ( __FLAG__))
1629#define __HAL_ETH_MAC_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->MACIER |= (__INTERRUPT__))
1638#define __HAL_ETH_MAC_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->MACIER &= ~(__INTERRUPT__))
1646#define __HAL_ETH_MAC_GET_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->MACISR &\
1647 ( __INTERRUPT__)) == ( __INTERRUPT__))
1650#define ETH_WAKEUP_EXTI_LINE 0x00400000U
1658#define __HAL_ETH_WAKEUP_EXTI_ENABLE_IT(__EXTI_LINE__) (EXTI_D1->IMR3 |= (__EXTI_LINE__))
1666#define __HAL_ETH_WAKEUP_EXTI_GET_FLAG(__EXTI_LINE__) (EXTI_D1->PR3 & (__EXTI_LINE__))
1674#define __HAL_ETH_WAKEUP_EXTI_CLEAR_FLAG(__EXTI_LINE__) (EXTI_D1->PR3 = (__EXTI_LINE__))
1676#if defined(DUAL_CORE)
1683#define __HAL_ETH_WAKEUP_EXTID2_ENABLE_IT(__EXTI_LINE__) (EXTI_D2->IMR3 |= (__EXTI_LINE__))
1691#define __HAL_ETH_WAKEUP_EXTID2_GET_FLAG(__EXTI_LINE__) (EXTI_D2->PR3 & (__EXTI_LINE__))
1699#define __HAL_ETH_WAKEUP_EXTID2_CLEAR_FLAG(__EXTI_LINE__) (EXTI_D2->PR3 = (__EXTI_LINE__))
1708#define __HAL_ETH_WAKEUP_EXTI_ENABLE_RISING_EDGE(__EXTI_LINE__) (EXTI->FTSR3 &= ~(__EXTI_LINE__)); \
1709 (EXTI->RTSR3 |= (__EXTI_LINE__))
1717#define __HAL_ETH_WAKEUP_EXTI_ENABLE_FALLING_EDGE(__EXTI_LINE__) (EXTI->RTSR3 &= ~(__EXTI_LINE__));\
1718 (EXTI->FTSR3 |= (__EXTI_LINE__))
1726#define __HAL_ETH_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE(__EXTI_LINE__) (EXTI->RTSR3 |= (__EXTI_LINE__));\
1727 (EXTI->FTSR3 |= (__EXTI_LINE__))
1735#define __HAL_ETH_WAKEUP_EXTI_GENERATE_SWIT(__EXTI_LINE__) (EXTI->SWIER3 |= (__EXTI_LINE__))
1736#define __HAL_ETH_GET_PTP_CONTROL(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->MACTSCR) & \
1737 (__FLAG__)) == (__FLAG__)) ? SET : RESET)
1738#define __HAL_ETH_SET_PTP_CONTROL(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->MACTSCR |= (__FLAG__))
1759void HAL_ETH_MspInit(ETH_HandleTypeDef *heth);
1760void HAL_ETH_MspDeInit(ETH_HandleTypeDef *heth);
1763#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
1764HAL_StatusTypeDef HAL_ETH_RegisterCallback(ETH_HandleTypeDef *heth, HAL_ETH_CallbackIDTypeDef CallbackID,
1765 pETH_CallbackTypeDef pCallback);
1766HAL_StatusTypeDef HAL_ETH_UnRegisterCallback(ETH_HandleTypeDef *heth, HAL_ETH_CallbackIDTypeDef CallbackID);
1784 pETH_rxAllocateCallbackTypeDef rxAllocateCallback);
1786HAL_StatusTypeDef HAL_ETH_RegisterRxLinkCallback(ETH_HandleTypeDef *heth, pETH_rxLinkCallbackTypeDef rxLinkCallback);
1788HAL_StatusTypeDef HAL_ETH_GetRxDataErrorCode(
const ETH_HandleTypeDef *heth, uint32_t *pErrorCode);
1789HAL_StatusTypeDef HAL_ETH_RegisterTxFreeCallback(ETH_HandleTypeDef *heth, pETH_txFreeCallbackTypeDef txFreeCallback);
1793#ifdef HAL_ETH_USE_PTP
1794HAL_StatusTypeDef HAL_ETH_PTP_SetConfig(ETH_HandleTypeDef *heth, ETH_PTP_ConfigTypeDef *ptpconfig);
1795HAL_StatusTypeDef HAL_ETH_PTP_GetConfig(ETH_HandleTypeDef *heth, ETH_PTP_ConfigTypeDef *ptpconfig);
1796HAL_StatusTypeDef HAL_ETH_PTP_SetTime(ETH_HandleTypeDef *heth, ETH_TimeTypeDef *time);
1797HAL_StatusTypeDef HAL_ETH_PTP_GetTime(ETH_HandleTypeDef *heth, ETH_TimeTypeDef *time);
1798HAL_StatusTypeDef HAL_ETH_PTP_AddTimeOffset(ETH_HandleTypeDef *heth, ETH_PtpUpdateTypeDef ptpoffsettype,
1799 ETH_TimeTypeDef *timeoffset);
1801HAL_StatusTypeDef HAL_ETH_PTP_GetTxTimestamp(ETH_HandleTypeDef *heth, ETH_TimeStampTypeDef *timestamp);
1802HAL_StatusTypeDef HAL_ETH_PTP_GetRxTimestamp(ETH_HandleTypeDef *heth, ETH_TimeStampTypeDef *timestamp);
1803HAL_StatusTypeDef HAL_ETH_RegisterTxPtpCallback(ETH_HandleTypeDef *heth, pETH_txPtpCallbackTypeDef txPtpCallback);
1807HAL_StatusTypeDef HAL_ETH_Transmit(ETH_HandleTypeDef *heth, ETH_TxPacketConfigTypeDef *pTxConfig, uint32_t Timeout);
1808HAL_StatusTypeDef HAL_ETH_Transmit_IT(ETH_HandleTypeDef *heth, ETH_TxPacketConfigTypeDef *pTxConfig);
1810HAL_StatusTypeDef HAL_ETH_WritePHYRegister(
const ETH_HandleTypeDef *heth, uint32_t PHYAddr, uint32_t PHYReg,
1812HAL_StatusTypeDef HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint32_t PHYAddr, uint32_t PHYReg,
1813 uint32_t *pRegValue);
1815void HAL_ETH_IRQHandler(ETH_HandleTypeDef *heth);
1816void HAL_ETH_TxCpltCallback(ETH_HandleTypeDef *heth);
1817void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth);
1818void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth);
1819void HAL_ETH_PMTCallback(ETH_HandleTypeDef *heth);
1820void HAL_ETH_EEECallback(ETH_HandleTypeDef *heth);
1821void HAL_ETH_WakeUpCallback(ETH_HandleTypeDef *heth);
1822void HAL_ETH_RxAllocateCallback(uint8_t **buff);
1823void HAL_ETH_RxLinkCallback(
void **pStart,
void **pEnd, uint8_t *buff, uint16_t Length);
1824void HAL_ETH_TxFreeCallback(uint32_t *buff);
1825void HAL_ETH_TxPtpCallback(uint32_t *buff, ETH_TimeStampTypeDef *timestamp);
1835HAL_StatusTypeDef HAL_ETH_GetMACConfig(
const ETH_HandleTypeDef *heth, ETH_MACConfigTypeDef *macconf);
1836HAL_StatusTypeDef HAL_ETH_GetDMAConfig(
const ETH_HandleTypeDef *heth, ETH_DMAConfigTypeDef *dmaconf);
1837HAL_StatusTypeDef HAL_ETH_SetMACConfig(ETH_HandleTypeDef *heth, ETH_MACConfigTypeDef *macconf);
1838HAL_StatusTypeDef HAL_ETH_SetDMAConfig(ETH_HandleTypeDef *heth, ETH_DMAConfigTypeDef *dmaconf);
1839void HAL_ETH_SetMDIOClockRange(ETH_HandleTypeDef *heth);
1842void HAL_ETH_SetRxVLANIdentifier(ETH_HandleTypeDef *heth, uint32_t ComparisonBits,
1843 uint32_t VLANIdentifier);
1846HAL_StatusTypeDef HAL_ETH_GetMACFilterConfig(
const ETH_HandleTypeDef *heth, ETH_MACFilterConfigTypeDef *pFilterConfig);
1847HAL_StatusTypeDef HAL_ETH_SetMACFilterConfig(ETH_HandleTypeDef *heth,
const ETH_MACFilterConfigTypeDef *pFilterConfig);
1848HAL_StatusTypeDef HAL_ETH_SetHashTable(ETH_HandleTypeDef *heth, uint32_t *pHashTable);
1849HAL_StatusTypeDef HAL_ETH_SetSourceMACAddrMatch(
const ETH_HandleTypeDef *heth, uint32_t AddrNbr,
1850 const uint8_t *pMACAddr);
1853void HAL_ETH_EnterPowerDownMode(ETH_HandleTypeDef *heth,
1854 const ETH_PowerDownConfigTypeDef *pPowerDownConfig);
1855void HAL_ETH_ExitPowerDownMode(ETH_HandleTypeDef *heth);
1856HAL_StatusTypeDef HAL_ETH_SetWakeUpFilter(ETH_HandleTypeDef *heth, uint32_t *pFilter, uint32_t Count);
1866HAL_ETH_StateTypeDef HAL_ETH_GetState(
const ETH_HandleTypeDef *heth);
1867uint32_t HAL_ETH_GetError(
const ETH_HandleTypeDef *heth);
1868uint32_t HAL_ETH_GetDMAError(
const ETH_HandleTypeDef *heth);
1869uint32_t HAL_ETH_GetMACError(
const ETH_HandleTypeDef *heth);
1870uint32_t HAL_ETH_GetMACWakeUpSource(
const ETH_HandleTypeDef *heth);
#define __IO
Definition: core_cm4.h:239
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.
Definition: stm32h7xx_hal_def.h:47
Header file of ETH HAL Extended module.
Ethernet MAC.
Definition: stm32h723xx.h:717