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
173#ifdef HAL_ETH_USE_PTP
180 uint32_t NanoSeconds;
410#ifdef HAL_ETH_USE_PTP
416 HAL_ETH_PTP_POSITIVE_UPDATE = 0x00000000U,
417 HAL_ETH_PTP_NEGATIVE_UPDATE = 0x00000001U
418} ETH_PtpUpdateTypeDef;
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;
522#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
523typedef struct __ETH_HandleTypeDef
538#ifdef HAL_ETH_USE_PTP
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);
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;
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 0x00000023U
1197#define HAL_ETH_STATE_STARTED 0x00000023U
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__))
1797#define __HAL_ETH_MAC_GET_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->MACSR &\
1798 ( __INTERRUPT__)) == ( __INTERRUPT__))
1801#define ETH_WAKEUP_EXTI_LINE 0x00080000U
1809#define __HAL_ETH_WAKEUP_EXTI_ENABLE_IT(__EXTI_LINE__) (EXTI->IMR |= (__EXTI_LINE__))
1817#define __HAL_ETH_WAKEUP_EXTI_GET_FLAG(__EXTI_LINE__) (EXTI->PR & (__EXTI_LINE__))
1825#define __HAL_ETH_WAKEUP_EXTI_CLEAR_FLAG(__EXTI_LINE__) (EXTI->PR = (__EXTI_LINE__))
1833#define __HAL_ETH_WAKEUP_EXTI_ENABLE_RISING_EDGE(__EXTI_LINE__) (EXTI->FTSR &= ~(__EXTI_LINE__)); \
1834 (EXTI->RTSR |= (__EXTI_LINE__))
1842#define __HAL_ETH_WAKEUP_EXTI_ENABLE_FALLING_EDGE(__EXTI_LINE__) (EXTI->RTSR &= ~(__EXTI_LINE__));\
1843 (EXTI->FTSR |= (__EXTI_LINE__))
1851#define __HAL_ETH_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE(__EXTI_LINE__) (EXTI->RTSR |= (__EXTI_LINE__));\
1852 (EXTI->FTSR |= (__EXTI_LINE__))
1860#define __HAL_ETH_WAKEUP_EXTI_GENERATE_SWIT(__EXTI_LINE__) (EXTI->SWIER |= (__EXTI_LINE__))
1862#define __HAL_ETH_GET_PTP_CONTROL(__HANDLE__, __FLAG__) (((((__HANDLE__)->Instance->PTPTSCR) & \
1863 (__FLAG__)) == (__FLAG__)) ? SET : RESET)
1865#define __HAL_ETH_SET_PTP_CONTROL(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->PTPTSCR |= (__FLAG__))
1888#if (USE_HAL_ETH_REGISTER_CALLBACKS == 1)
1890 pETH_CallbackTypeDef pCallback);
1918#ifdef HAL_ETH_USE_PTP
1924 ETH_TimeTypeDef *timeoffset);
1938 uint32_t *pRegValue);
1967 uint32_t VLANIdentifier);
1974 const uint8_t *pMACAddr);
void HAL_ETH_MspDeInit(ETH_HandleTypeDef *heth)
DeInitializes ETH MSP.
void HAL_ETH_MspInit(ETH_HandleTypeDef *heth)
Initializes the ETH MSP.
HAL_StatusTypeDef HAL_ETH_Init(ETH_HandleTypeDef *heth)
Initialize the Ethernet peripheral registers.
HAL_StatusTypeDef HAL_ETH_DeInit(ETH_HandleTypeDef *heth)
DeInitializes the ETH peripheral.
void HAL_ETH_TxFreeCallback(uint32_t *buff)
Tx Free callback.
void HAL_ETH_RxAllocateCallback(uint8_t **buff)
Rx Allocate callback.
HAL_StatusTypeDef HAL_ETH_Transmit_IT(ETH_HandleTypeDef *heth, ETH_TxPacketConfigTypeDef *pTxConfig)
Sends an Ethernet Packet in interrupt mode.
HAL_StatusTypeDef HAL_ETH_Start(ETH_HandleTypeDef *heth)
Enables Ethernet MAC and DMA reception and transmission.
HAL_StatusTypeDef HAL_ETH_UnRegisterRxAllocateCallback(ETH_HandleTypeDef *heth)
Unregister the Rx alloc callback.
HAL_StatusTypeDef HAL_ETH_ReleaseTxPacket(ETH_HandleTypeDef *heth)
Release transmitted Tx packets.
HAL_StatusTypeDef HAL_ETH_Transmit(ETH_HandleTypeDef *heth, ETH_TxPacketConfigTypeDef *pTxConfig, uint32_t Timeout)
Sends an Ethernet Packet in polling mode.
HAL_StatusTypeDef HAL_ETH_Stop_IT(ETH_HandleTypeDef *heth)
Stop Ethernet MAC and DMA reception/transmission in Interrupt mode.
void HAL_ETH_TxPtpCallback(uint32_t *buff, ETH_TimeStampTypeDef *timestamp)
HAL_StatusTypeDef HAL_ETH_WritePHYRegister(const ETH_HandleTypeDef *heth, uint32_t PHYAddr, uint32_t PHYReg, uint32_t RegValue)
Writes to a PHY register.
HAL_StatusTypeDef HAL_ETH_RegisterRxLinkCallback(ETH_HandleTypeDef *heth, pETH_rxLinkCallbackTypeDef rxLinkCallback)
Set the Rx link data function.
HAL_StatusTypeDef HAL_ETH_RegisterTxFreeCallback(ETH_HandleTypeDef *heth, pETH_txFreeCallbackTypeDef txFreeCallback)
Set the Tx free function.
HAL_StatusTypeDef HAL_ETH_UnRegisterTxFreeCallback(ETH_HandleTypeDef *heth)
Unregister the Tx free callback.
HAL_StatusTypeDef HAL_ETH_RegisterRxAllocateCallback(ETH_HandleTypeDef *heth, pETH_rxAllocateCallbackTypeDef rxAllocateCallback)
Register the Rx alloc callback.
HAL_StatusTypeDef HAL_ETH_Start_IT(ETH_HandleTypeDef *heth)
Enables Ethernet MAC and DMA reception/transmission in Interrupt mode.
HAL_StatusTypeDef HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint32_t PHYAddr, uint32_t PHYReg, uint32_t *pRegValue)
Read a PHY register.
HAL_StatusTypeDef HAL_ETH_GetRxDataErrorCode(const ETH_HandleTypeDef *heth, uint32_t *pErrorCode)
Get the error state of the last received packet.
HAL_StatusTypeDef HAL_ETH_ReadData(ETH_HandleTypeDef *heth, void **pAppBuff)
Read a received packet.
void HAL_ETH_RxLinkCallback(void **pStart, void **pEnd, uint8_t *buff, uint16_t Length)
Rx Link callback.
void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth)
Rx Transfer completed callbacks.
void HAL_ETH_WakeUpCallback(ETH_HandleTypeDef *heth)
ETH WAKEUP interrupt callback.
void HAL_ETH_TxCpltCallback(ETH_HandleTypeDef *heth)
Tx Transfer completed callbacks.
void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth)
Ethernet transfer error callbacks.
void HAL_ETH_PMTCallback(ETH_HandleTypeDef *heth)
Ethernet Power Management module IT callback.
void HAL_ETH_IRQHandler(ETH_HandleTypeDef *heth)
This function handles ETH interrupt request.
HAL_StatusTypeDef HAL_ETH_UnRegisterRxLinkCallback(ETH_HandleTypeDef *heth)
Unregister the Rx link callback.
HAL_StatusTypeDef HAL_ETH_Stop(ETH_HandleTypeDef *heth)
Stop Ethernet MAC and DMA reception/transmission.
HAL_StatusTypeDef HAL_ETH_GetMACFilterConfig(const ETH_HandleTypeDef *heth, ETH_MACFilterConfigTypeDef *pFilterConfig)
Get the ETH MAC (L2) Filters configuration.
HAL_StatusTypeDef HAL_ETH_GetDMAConfig(const ETH_HandleTypeDef *heth, ETH_DMAConfigTypeDef *dmaconf)
Get the configuration of the DMA.
HAL_StatusTypeDef HAL_ETH_SetWakeUpFilter(ETH_HandleTypeDef *heth, uint32_t *pFilter, uint32_t Count)
Set the WakeUp filter.
HAL_StatusTypeDef HAL_ETH_GetMACConfig(const ETH_HandleTypeDef *heth, ETH_MACConfigTypeDef *macconf)
Get the configuration of the MAC and MTL subsystems.
HAL_StatusTypeDef HAL_ETH_SetMACFilterConfig(ETH_HandleTypeDef *heth, const ETH_MACFilterConfigTypeDef *pFilterConfig)
Set the ETH MAC (L2) Filters configuration.
HAL_StatusTypeDef HAL_ETH_SetDMAConfig(ETH_HandleTypeDef *heth, ETH_DMAConfigTypeDef *dmaconf)
Set the ETH DMA configuration.
void HAL_ETH_SetRxVLANIdentifier(ETH_HandleTypeDef *heth, uint32_t ComparisonBits, uint32_t VLANIdentifier)
Set the VLAN Identifier for Rx packets.
void HAL_ETH_EnterPowerDownMode(ETH_HandleTypeDef *heth, const ETH_PowerDownConfigTypeDef *pPowerDownConfig)
Enters the Power down mode.
void HAL_ETH_ExitPowerDownMode(ETH_HandleTypeDef *heth)
Exits from the Power down mode.
HAL_StatusTypeDef HAL_ETH_SetMACConfig(ETH_HandleTypeDef *heth, ETH_MACConfigTypeDef *macconf)
Set the MAC configuration.
void HAL_ETH_SetMDIOClockRange(ETH_HandleTypeDef *heth)
Configures the Clock range of ETH MDIO interface.
HAL_StatusTypeDef HAL_ETH_SetSourceMACAddrMatch(const ETH_HandleTypeDef *heth, uint32_t AddrNbr, const uint8_t *pMACAddr)
Set the source MAC Address to be matched.
HAL_StatusTypeDef HAL_ETH_SetHashTable(ETH_HandleTypeDef *heth, uint32_t *pHashTable)
Set the ETH Hash Table Value.
HAL_ETH_StateTypeDef HAL_ETH_GetState(const ETH_HandleTypeDef *heth)
Returns the ETH state.
uint32_t HAL_ETH_GetMACWakeUpSource(const ETH_HandleTypeDef *heth)
Returns the ETH MAC WakeUp event source.
uint32_t HAL_ETH_GetError(const ETH_HandleTypeDef *heth)
Returns the ETH error code.
uint32_t HAL_ETH_GetDMAError(const ETH_HandleTypeDef *heth)
Returns the ETH DMA error code.
uint32_t HAL_ETH_GetMACError(const ETH_HandleTypeDef *heth)
Returns the ETH MAC error code.
void(* pETH_rxAllocateCallbackTypeDef)(uint8_t **buffer)
HAL ETH Rx Get Buffer Function definition.
ETH_MediaInterfaceTypeDef
HAL ETH Media Interfaces enum definition.
void(* pETH_txFreeCallbackTypeDef)(uint32_t *buffer)
HAL ETH Tx Free Function definition.
void(* pETH_rxLinkCallbackTypeDef)(void **pStart, void **pEnd, uint8_t *buff, uint16_t Length)
HAL ETH Rx Set App Data Function definition.
void(* pETH_txPtpCallbackTypeDef)(uint32_t *buffer, ETH_TimeStampTypeDef *timestamp)
HAL ETH Tx Free Function definition.
struct __ETH_BufferTypeDef ETH_BufferTypeDef
ETH Buffers List structure definition.
uint32_t HAL_ETH_StateTypeDef
HAL State structures definition.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition
ETH DMA Configuration Structure definition.
FunctionalState ReceiveStoreForward
FunctionalState AddressAlignedBeats
uint32_t ReceiveThresholdControl
FunctionalState SecondFrameOperate
FunctionalState ForwardErrorFrames
uint32_t RxDMABurstLength
FunctionalState ForwardUndersizedGoodFrames
uint32_t TransmitThresholdControl
FunctionalState EnhancedDescriptorFormat
uint32_t DescriptorSkipLength
FunctionalState DropTCPIPChecksumErrorFrame
FunctionalState TransmitStoreForward
FunctionalState FlushRxPacket
uint32_t TxDMABurstLength
ETH DMA Descriptor structure definition.
ETH Handle Structure definition.
__IO HAL_ETH_StateTypeDef gState
__IO uint32_t MACErrorCode
__IO uint32_t IsPtpConfigured
__IO uint32_t DMAErrorCode
pETH_txFreeCallbackTypeDef txFreeCallback
pETH_rxLinkCallbackTypeDef rxLinkCallback
__IO uint32_t MACLPIEvent
ETH_TxDescListTypeDef TxDescList
ETH_RxDescListTypeDef RxDescList
pETH_txPtpCallbackTypeDef txPtpCallback
pETH_rxAllocateCallbackTypeDef rxAllocateCallback
__IO uint32_t MACWakeUpEvent
ETH Init Structure definition.
ETH_DMADescTypeDef * TxDesc
ETH_MediaInterfaceTypeDef MediaInterface
ETH_DMADescTypeDef * RxDesc
ETH MAC Configuration Structure definition.
FunctionalState AutomaticPadCRCStrip
FunctionalState UnicastPausePacketDetect
uint32_t PauseLowThreshold
FunctionalState ExtendedInterPacketGap
FunctionalState ReceiveOwn
FunctionalState RetryTransmission
FunctionalState LoopbackMode
uint32_t ExtendedInterPacketGapVal
FunctionalState JumboPacket
uint32_t InterPacketGapVal
uint32_t TransmitQueueMode
FunctionalState Support2KPacket
FunctionalState ForwardRxErrorPacket
FunctionalState ChecksumOffload
FunctionalState GiantPacketSizeLimitControl
FunctionalState DeferralCheck
FunctionalState ZeroQuantaPause
FunctionalState CRCStripTypePacket
uint32_t ReceiveQueueMode
FunctionalState ForwardRxUndersizedGoodPacket
FunctionalState ProgrammableWatchdog
FunctionalState ReceiveFlowControl
FunctionalState CRCCheckingRxPackets
uint32_t SourceAddrControl
FunctionalState CarrierSenseDuringTransmit
FunctionalState CarrierSenseBeforeTransmit
FunctionalState DropTCPIPChecksumErrorPacket
FunctionalState SlowProtocolDetect
FunctionalState TransmitFlowControl
uint32_t GiantPacketSizeLimit
ETH MAC filter structure definition.
FunctionalState SrcAddrFiltering
FunctionalState BroadcastFilter
uint32_t ControlPacketsFilter
FunctionalState SrcAddrInverseFiltering
FunctionalState PassAllMulticast
FunctionalState HachOrPerfectFilter
FunctionalState HashUnicast
FunctionalState ReceiveAllMode
FunctionalState DestAddrInverseFiltering
FunctionalState PromiscuousMode
FunctionalState HashMulticast
ETH Power Down structure definition.
FunctionalState WakeUpPacket
FunctionalState GlobalUnicast
FunctionalState MagicPacket
FunctionalState WakeUpForward
DMA Receive Descriptors Wrapper structure definition.
ETH_TimeStampTypeDef TimeStamp
ETH Timestamp structure definition.
DMA Transmit Descriptors Wrapper structure definition.
uint32_t * CurrentPacketAddress
Transmit Packet Configuration structure definition.
ETH_BufferTypeDef * TxBuffer
ETH Buffers List structure definition.
struct __ETH_BufferTypeDef * next