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