39 #ifndef __STM32F4xx_HAL_ETH_H 40 #define __STM32F4xx_HAL_ETH_H 46 #if defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F427xx) || defined(STM32F437xx) ||\ 47 defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F469xx) || defined(STM32F479xx) 62 #define IS_ETH_PHY_ADDRESS(ADDRESS) ((ADDRESS) <= 0x20U) 63 #define IS_ETH_AUTONEGOTIATION(CMD) (((CMD) == ETH_AUTONEGOTIATION_ENABLE) || \ 64 ((CMD) == ETH_AUTONEGOTIATION_DISABLE)) 65 #define IS_ETH_SPEED(SPEED) (((SPEED) == ETH_SPEED_10M) || \ 66 ((SPEED) == ETH_SPEED_100M)) 67 #define IS_ETH_DUPLEX_MODE(MODE) (((MODE) == ETH_MODE_FULLDUPLEX) || \ 68 ((MODE) == ETH_MODE_HALFDUPLEX)) 69 #define IS_ETH_RX_MODE(MODE) (((MODE) == ETH_RXPOLLING_MODE) || \ 70 ((MODE) == ETH_RXINTERRUPT_MODE)) 71 #define IS_ETH_CHECKSUM_MODE(MODE) (((MODE) == ETH_CHECKSUM_BY_HARDWARE) || \ 72 ((MODE) == ETH_CHECKSUM_BY_SOFTWARE)) 73 #define IS_ETH_MEDIA_INTERFACE(MODE) (((MODE) == ETH_MEDIA_INTERFACE_MII) || \ 74 ((MODE) == ETH_MEDIA_INTERFACE_RMII)) 75 #define IS_ETH_WATCHDOG(CMD) (((CMD) == ETH_WATCHDOG_ENABLE) || \ 76 ((CMD) == ETH_WATCHDOG_DISABLE)) 77 #define IS_ETH_JABBER(CMD) (((CMD) == ETH_JABBER_ENABLE) || \ 78 ((CMD) == ETH_JABBER_DISABLE)) 79 #define IS_ETH_INTER_FRAME_GAP(GAP) (((GAP) == ETH_INTERFRAMEGAP_96BIT) || \ 80 ((GAP) == ETH_INTERFRAMEGAP_88BIT) || \ 81 ((GAP) == ETH_INTERFRAMEGAP_80BIT) || \ 82 ((GAP) == ETH_INTERFRAMEGAP_72BIT) || \ 83 ((GAP) == ETH_INTERFRAMEGAP_64BIT) || \ 84 ((GAP) == ETH_INTERFRAMEGAP_56BIT) || \ 85 ((GAP) == ETH_INTERFRAMEGAP_48BIT) || \ 86 ((GAP) == ETH_INTERFRAMEGAP_40BIT)) 87 #define IS_ETH_CARRIER_SENSE(CMD) (((CMD) == ETH_CARRIERSENCE_ENABLE) || \ 88 ((CMD) == ETH_CARRIERSENCE_DISABLE)) 89 #define IS_ETH_RECEIVE_OWN(CMD) (((CMD) == ETH_RECEIVEOWN_ENABLE) || \ 90 ((CMD) == ETH_RECEIVEOWN_DISABLE)) 91 #define IS_ETH_LOOPBACK_MODE(CMD) (((CMD) == ETH_LOOPBACKMODE_ENABLE) || \ 92 ((CMD) == ETH_LOOPBACKMODE_DISABLE)) 93 #define IS_ETH_CHECKSUM_OFFLOAD(CMD) (((CMD) == ETH_CHECKSUMOFFLAOD_ENABLE) || \ 94 ((CMD) == ETH_CHECKSUMOFFLAOD_DISABLE)) 95 #define IS_ETH_RETRY_TRANSMISSION(CMD) (((CMD) == ETH_RETRYTRANSMISSION_ENABLE) || \ 96 ((CMD) == ETH_RETRYTRANSMISSION_DISABLE)) 97 #define IS_ETH_AUTOMATIC_PADCRC_STRIP(CMD) (((CMD) == ETH_AUTOMATICPADCRCSTRIP_ENABLE) || \ 98 ((CMD) == ETH_AUTOMATICPADCRCSTRIP_DISABLE)) 99 #define IS_ETH_BACKOFF_LIMIT(LIMIT) (((LIMIT) == ETH_BACKOFFLIMIT_10) || \ 100 ((LIMIT) == ETH_BACKOFFLIMIT_8) || \ 101 ((LIMIT) == ETH_BACKOFFLIMIT_4) || \ 102 ((LIMIT) == ETH_BACKOFFLIMIT_1)) 103 #define IS_ETH_DEFERRAL_CHECK(CMD) (((CMD) == ETH_DEFFERRALCHECK_ENABLE) || \ 104 ((CMD) == ETH_DEFFERRALCHECK_DISABLE)) 105 #define IS_ETH_RECEIVE_ALL(CMD) (((CMD) == ETH_RECEIVEALL_ENABLE) || \ 106 ((CMD) == ETH_RECEIVEAll_DISABLE)) 107 #define IS_ETH_SOURCE_ADDR_FILTER(CMD) (((CMD) == ETH_SOURCEADDRFILTER_NORMAL_ENABLE) || \ 108 ((CMD) == ETH_SOURCEADDRFILTER_INVERSE_ENABLE) || \ 109 ((CMD) == ETH_SOURCEADDRFILTER_DISABLE)) 110 #define IS_ETH_CONTROL_FRAMES(PASS) (((PASS) == ETH_PASSCONTROLFRAMES_BLOCKALL) || \ 111 ((PASS) == ETH_PASSCONTROLFRAMES_FORWARDALL) || \ 112 ((PASS) == ETH_PASSCONTROLFRAMES_FORWARDPASSEDADDRFILTER)) 113 #define IS_ETH_BROADCAST_FRAMES_RECEPTION(CMD) (((CMD) == ETH_BROADCASTFRAMESRECEPTION_ENABLE) || \ 114 ((CMD) == ETH_BROADCASTFRAMESRECEPTION_DISABLE)) 115 #define IS_ETH_DESTINATION_ADDR_FILTER(FILTER) (((FILTER) == ETH_DESTINATIONADDRFILTER_NORMAL) || \ 116 ((FILTER) == ETH_DESTINATIONADDRFILTER_INVERSE)) 117 #define IS_ETH_PROMISCUOUS_MODE(CMD) (((CMD) == ETH_PROMISCUOUS_MODE_ENABLE) || \ 118 ((CMD) == ETH_PROMISCUOUS_MODE_DISABLE)) 119 #define IS_ETH_MULTICAST_FRAMES_FILTER(FILTER) (((FILTER) == ETH_MULTICASTFRAMESFILTER_PERFECTHASHTABLE) || \ 120 ((FILTER) == ETH_MULTICASTFRAMESFILTER_HASHTABLE) || \ 121 ((FILTER) == ETH_MULTICASTFRAMESFILTER_PERFECT) || \ 122 ((FILTER) == ETH_MULTICASTFRAMESFILTER_NONE)) 123 #define IS_ETH_UNICAST_FRAMES_FILTER(FILTER) (((FILTER) == ETH_UNICASTFRAMESFILTER_PERFECTHASHTABLE) || \ 124 ((FILTER) == ETH_UNICASTFRAMESFILTER_HASHTABLE) || \ 125 ((FILTER) == ETH_UNICASTFRAMESFILTER_PERFECT)) 126 #define IS_ETH_PAUSE_TIME(TIME) ((TIME) <= 0xFFFFU) 127 #define IS_ETH_ZEROQUANTA_PAUSE(CMD) (((CMD) == ETH_ZEROQUANTAPAUSE_ENABLE) || \ 128 ((CMD) == ETH_ZEROQUANTAPAUSE_DISABLE)) 129 #define IS_ETH_PAUSE_LOW_THRESHOLD(THRESHOLD) (((THRESHOLD) == ETH_PAUSELOWTHRESHOLD_MINUS4) || \ 130 ((THRESHOLD) == ETH_PAUSELOWTHRESHOLD_MINUS28) || \ 131 ((THRESHOLD) == ETH_PAUSELOWTHRESHOLD_MINUS144) || \ 132 ((THRESHOLD) == ETH_PAUSELOWTHRESHOLD_MINUS256)) 133 #define IS_ETH_UNICAST_PAUSE_FRAME_DETECT(CMD) (((CMD) == ETH_UNICASTPAUSEFRAMEDETECT_ENABLE) || \ 134 ((CMD) == ETH_UNICASTPAUSEFRAMEDETECT_DISABLE)) 135 #define IS_ETH_RECEIVE_FLOWCONTROL(CMD) (((CMD) == ETH_RECEIVEFLOWCONTROL_ENABLE) || \ 136 ((CMD) == ETH_RECEIVEFLOWCONTROL_DISABLE)) 137 #define IS_ETH_TRANSMIT_FLOWCONTROL(CMD) (((CMD) == ETH_TRANSMITFLOWCONTROL_ENABLE) || \ 138 ((CMD) == ETH_TRANSMITFLOWCONTROL_DISABLE)) 139 #define IS_ETH_VLAN_TAG_COMPARISON(COMPARISON) (((COMPARISON) == ETH_VLANTAGCOMPARISON_12BIT) || \ 140 ((COMPARISON) == ETH_VLANTAGCOMPARISON_16BIT)) 141 #define IS_ETH_VLAN_TAG_IDENTIFIER(IDENTIFIER) ((IDENTIFIER) <= 0xFFFFU) 142 #define IS_ETH_MAC_ADDRESS0123(ADDRESS) (((ADDRESS) == ETH_MAC_ADDRESS0) || \ 143 ((ADDRESS) == ETH_MAC_ADDRESS1) || \ 144 ((ADDRESS) == ETH_MAC_ADDRESS2) || \ 145 ((ADDRESS) == ETH_MAC_ADDRESS3)) 146 #define IS_ETH_MAC_ADDRESS123(ADDRESS) (((ADDRESS) == ETH_MAC_ADDRESS1) || \ 147 ((ADDRESS) == ETH_MAC_ADDRESS2) || \ 148 ((ADDRESS) == ETH_MAC_ADDRESS3)) 149 #define IS_ETH_MAC_ADDRESS_FILTER(FILTER) (((FILTER) == ETH_MAC_ADDRESSFILTER_SA) || \ 150 ((FILTER) == ETH_MAC_ADDRESSFILTER_DA)) 151 #define IS_ETH_MAC_ADDRESS_MASK(MASK) (((MASK) == ETH_MAC_ADDRESSMASK_BYTE6) || \ 152 ((MASK) == ETH_MAC_ADDRESSMASK_BYTE5) || \ 153 ((MASK) == ETH_MAC_ADDRESSMASK_BYTE4) || \ 154 ((MASK) == ETH_MAC_ADDRESSMASK_BYTE3) || \ 155 ((MASK) == ETH_MAC_ADDRESSMASK_BYTE2) || \ 156 ((MASK) == ETH_MAC_ADDRESSMASK_BYTE1)) 157 #define IS_ETH_DROP_TCPIP_CHECKSUM_FRAME(CMD) (((CMD) == ETH_DROPTCPIPCHECKSUMERRORFRAME_ENABLE) || \ 158 ((CMD) == ETH_DROPTCPIPCHECKSUMERRORFRAME_DISABLE)) 159 #define IS_ETH_RECEIVE_STORE_FORWARD(CMD) (((CMD) == ETH_RECEIVESTOREFORWARD_ENABLE) || \ 160 ((CMD) == ETH_RECEIVESTOREFORWARD_DISABLE)) 161 #define IS_ETH_FLUSH_RECEIVE_FRAME(CMD) (((CMD) == ETH_FLUSHRECEIVEDFRAME_ENABLE) || \ 162 ((CMD) == ETH_FLUSHRECEIVEDFRAME_DISABLE)) 163 #define IS_ETH_TRANSMIT_STORE_FORWARD(CMD) (((CMD) == ETH_TRANSMITSTOREFORWARD_ENABLE) || \ 164 ((CMD) == ETH_TRANSMITSTOREFORWARD_DISABLE)) 165 #define IS_ETH_TRANSMIT_THRESHOLD_CONTROL(THRESHOLD) (((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_64BYTES) || \ 166 ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_128BYTES) || \ 167 ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_192BYTES) || \ 168 ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_256BYTES) || \ 169 ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_40BYTES) || \ 170 ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_32BYTES) || \ 171 ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_24BYTES) || \ 172 ((THRESHOLD) == ETH_TRANSMITTHRESHOLDCONTROL_16BYTES)) 173 #define IS_ETH_FORWARD_ERROR_FRAMES(CMD) (((CMD) == ETH_FORWARDERRORFRAMES_ENABLE) || \ 174 ((CMD) == ETH_FORWARDERRORFRAMES_DISABLE)) 175 #define IS_ETH_FORWARD_UNDERSIZED_GOOD_FRAMES(CMD) (((CMD) == ETH_FORWARDUNDERSIZEDGOODFRAMES_ENABLE) || \ 176 ((CMD) == ETH_FORWARDUNDERSIZEDGOODFRAMES_DISABLE)) 177 #define IS_ETH_RECEIVE_THRESHOLD_CONTROL(THRESHOLD) (((THRESHOLD) == ETH_RECEIVEDTHRESHOLDCONTROL_64BYTES) || \ 178 ((THRESHOLD) == ETH_RECEIVEDTHRESHOLDCONTROL_32BYTES) || \ 179 ((THRESHOLD) == ETH_RECEIVEDTHRESHOLDCONTROL_96BYTES) || \ 180 ((THRESHOLD) == ETH_RECEIVEDTHRESHOLDCONTROL_128BYTES)) 181 #define IS_ETH_SECOND_FRAME_OPERATE(CMD) (((CMD) == ETH_SECONDFRAMEOPERARTE_ENABLE) || \ 182 ((CMD) == ETH_SECONDFRAMEOPERARTE_DISABLE)) 183 #define IS_ETH_ADDRESS_ALIGNED_BEATS(CMD) (((CMD) == ETH_ADDRESSALIGNEDBEATS_ENABLE) || \ 184 ((CMD) == ETH_ADDRESSALIGNEDBEATS_DISABLE)) 185 #define IS_ETH_FIXED_BURST(CMD) (((CMD) == ETH_FIXEDBURST_ENABLE) || \ 186 ((CMD) == ETH_FIXEDBURST_DISABLE)) 187 #define IS_ETH_RXDMA_BURST_LENGTH(LENGTH) (((LENGTH) == ETH_RXDMABURSTLENGTH_1BEAT) || \ 188 ((LENGTH) == ETH_RXDMABURSTLENGTH_2BEAT) || \ 189 ((LENGTH) == ETH_RXDMABURSTLENGTH_4BEAT) || \ 190 ((LENGTH) == ETH_RXDMABURSTLENGTH_8BEAT) || \ 191 ((LENGTH) == ETH_RXDMABURSTLENGTH_16BEAT) || \ 192 ((LENGTH) == ETH_RXDMABURSTLENGTH_32BEAT) || \ 193 ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_4BEAT) || \ 194 ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_8BEAT) || \ 195 ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_16BEAT) || \ 196 ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_32BEAT) || \ 197 ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_64BEAT) || \ 198 ((LENGTH) == ETH_RXDMABURSTLENGTH_4XPBL_128BEAT)) 199 #define IS_ETH_TXDMA_BURST_LENGTH(LENGTH) (((LENGTH) == ETH_TXDMABURSTLENGTH_1BEAT) || \ 200 ((LENGTH) == ETH_TXDMABURSTLENGTH_2BEAT) || \ 201 ((LENGTH) == ETH_TXDMABURSTLENGTH_4BEAT) || \ 202 ((LENGTH) == ETH_TXDMABURSTLENGTH_8BEAT) || \ 203 ((LENGTH) == ETH_TXDMABURSTLENGTH_16BEAT) || \ 204 ((LENGTH) == ETH_TXDMABURSTLENGTH_32BEAT) || \ 205 ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_4BEAT) || \ 206 ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_8BEAT) || \ 207 ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_16BEAT) || \ 208 ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_32BEAT) || \ 209 ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_64BEAT) || \ 210 ((LENGTH) == ETH_TXDMABURSTLENGTH_4XPBL_128BEAT)) 211 #define IS_ETH_DMA_DESC_SKIP_LENGTH(LENGTH) ((LENGTH) <= 0x1FU) 212 #define IS_ETH_DMA_ARBITRATION_ROUNDROBIN_RXTX(RATIO) (((RATIO) == ETH_DMAARBITRATION_ROUNDROBIN_RXTX_1_1) || \ 213 ((RATIO) == ETH_DMAARBITRATION_ROUNDROBIN_RXTX_2_1) || \ 214 ((RATIO) == ETH_DMAARBITRATION_ROUNDROBIN_RXTX_3_1) || \ 215 ((RATIO) == ETH_DMAARBITRATION_ROUNDROBIN_RXTX_4_1) || \ 216 ((RATIO) == ETH_DMAARBITRATION_RXPRIORTX)) 217 #define IS_ETH_DMATXDESC_GET_FLAG(FLAG) (((FLAG) == ETH_DMATXDESC_OWN) || \ 218 ((FLAG) == ETH_DMATXDESC_IC) || \ 219 ((FLAG) == ETH_DMATXDESC_LS) || \ 220 ((FLAG) == ETH_DMATXDESC_FS) || \ 221 ((FLAG) == ETH_DMATXDESC_DC) || \ 222 ((FLAG) == ETH_DMATXDESC_DP) || \ 223 ((FLAG) == ETH_DMATXDESC_TTSE) || \ 224 ((FLAG) == ETH_DMATXDESC_TER) || \ 225 ((FLAG) == ETH_DMATXDESC_TCH) || \ 226 ((FLAG) == ETH_DMATXDESC_TTSS) || \ 227 ((FLAG) == ETH_DMATXDESC_IHE) || \ 228 ((FLAG) == ETH_DMATXDESC_ES) || \ 229 ((FLAG) == ETH_DMATXDESC_JT) || \ 230 ((FLAG) == ETH_DMATXDESC_FF) || \ 231 ((FLAG) == ETH_DMATXDESC_PCE) || \ 232 ((FLAG) == ETH_DMATXDESC_LCA) || \ 233 ((FLAG) == ETH_DMATXDESC_NC) || \ 234 ((FLAG) == ETH_DMATXDESC_LCO) || \ 235 ((FLAG) == ETH_DMATXDESC_EC) || \ 236 ((FLAG) == ETH_DMATXDESC_VF) || \ 237 ((FLAG) == ETH_DMATXDESC_CC) || \ 238 ((FLAG) == ETH_DMATXDESC_ED) || \ 239 ((FLAG) == ETH_DMATXDESC_UF) || \ 240 ((FLAG) == ETH_DMATXDESC_DB)) 241 #define IS_ETH_DMA_TXDESC_SEGMENT(SEGMENT) (((SEGMENT) == ETH_DMATXDESC_LASTSEGMENTS) || \ 242 ((SEGMENT) == ETH_DMATXDESC_FIRSTSEGMENT)) 243 #define IS_ETH_DMA_TXDESC_CHECKSUM(CHECKSUM) (((CHECKSUM) == ETH_DMATXDESC_CHECKSUMBYPASS) || \ 244 ((CHECKSUM) == ETH_DMATXDESC_CHECKSUMIPV4HEADER) || \ 245 ((CHECKSUM) == ETH_DMATXDESC_CHECKSUMTCPUDPICMPSEGMENT) || \ 246 ((CHECKSUM) == ETH_DMATXDESC_CHECKSUMTCPUDPICMPFULL)) 247 #define IS_ETH_DMATXDESC_BUFFER_SIZE(SIZE) ((SIZE) <= 0x1FFFU) 248 #define IS_ETH_DMARXDESC_GET_FLAG(FLAG) (((FLAG) == ETH_DMARXDESC_OWN) || \ 249 ((FLAG) == ETH_DMARXDESC_AFM) || \ 250 ((FLAG) == ETH_DMARXDESC_ES) || \ 251 ((FLAG) == ETH_DMARXDESC_DE) || \ 252 ((FLAG) == ETH_DMARXDESC_SAF) || \ 253 ((FLAG) == ETH_DMARXDESC_LE) || \ 254 ((FLAG) == ETH_DMARXDESC_OE) || \ 255 ((FLAG) == ETH_DMARXDESC_VLAN) || \ 256 ((FLAG) == ETH_DMARXDESC_FS) || \ 257 ((FLAG) == ETH_DMARXDESC_LS) || \ 258 ((FLAG) == ETH_DMARXDESC_IPV4HCE) || \ 259 ((FLAG) == ETH_DMARXDESC_LC) || \ 260 ((FLAG) == ETH_DMARXDESC_FT) || \ 261 ((FLAG) == ETH_DMARXDESC_RWT) || \ 262 ((FLAG) == ETH_DMARXDESC_RE) || \ 263 ((FLAG) == ETH_DMARXDESC_DBE) || \ 264 ((FLAG) == ETH_DMARXDESC_CE) || \ 265 ((FLAG) == ETH_DMARXDESC_MAMPCE)) 266 #define IS_ETH_DMA_RXDESC_BUFFER(BUFFER) (((BUFFER) == ETH_DMARXDESC_BUFFER1) || \ 267 ((BUFFER) == ETH_DMARXDESC_BUFFER2)) 268 #define IS_ETH_PMT_GET_FLAG(FLAG) (((FLAG) == ETH_PMT_FLAG_WUFR) || \ 269 ((FLAG) == ETH_PMT_FLAG_MPR)) 270 #define IS_ETH_DMA_FLAG(FLAG) ((((FLAG) & (uint32_t)0xC7FE1800U) == 0x00U) && ((FLAG) != 0x00U)) 271 #define IS_ETH_DMA_GET_FLAG(FLAG) (((FLAG) == ETH_DMA_FLAG_TST) || ((FLAG) == ETH_DMA_FLAG_PMT) || \ 272 ((FLAG) == ETH_DMA_FLAG_MMC) || ((FLAG) == ETH_DMA_FLAG_DATATRANSFERERROR) || \ 273 ((FLAG) == ETH_DMA_FLAG_READWRITEERROR) || ((FLAG) == ETH_DMA_FLAG_ACCESSERROR) || \ 274 ((FLAG) == ETH_DMA_FLAG_NIS) || ((FLAG) == ETH_DMA_FLAG_AIS) || \ 275 ((FLAG) == ETH_DMA_FLAG_ER) || ((FLAG) == ETH_DMA_FLAG_FBE) || \ 276 ((FLAG) == ETH_DMA_FLAG_ET) || ((FLAG) == ETH_DMA_FLAG_RWT) || \ 277 ((FLAG) == ETH_DMA_FLAG_RPS) || ((FLAG) == ETH_DMA_FLAG_RBU) || \ 278 ((FLAG) == ETH_DMA_FLAG_R) || ((FLAG) == ETH_DMA_FLAG_TU) || \ 279 ((FLAG) == ETH_DMA_FLAG_RO) || ((FLAG) == ETH_DMA_FLAG_TJT) || \ 280 ((FLAG) == ETH_DMA_FLAG_TBU) || ((FLAG) == ETH_DMA_FLAG_TPS) || \ 281 ((FLAG) == ETH_DMA_FLAG_T)) 282 #define IS_ETH_MAC_IT(IT) ((((IT) & (uint32_t)0xFFFFFDF1U) == 0x00U) && ((IT) != 0x00U)) 283 #define IS_ETH_MAC_GET_IT(IT) (((IT) == ETH_MAC_IT_TST) || ((IT) == ETH_MAC_IT_MMCT) || \ 284 ((IT) == ETH_MAC_IT_MMCR) || ((IT) == ETH_MAC_IT_MMC) || \ 285 ((IT) == ETH_MAC_IT_PMT)) 286 #define IS_ETH_MAC_GET_FLAG(FLAG) (((FLAG) == ETH_MAC_FLAG_TST) || ((FLAG) == ETH_MAC_FLAG_MMCT) || \ 287 ((FLAG) == ETH_MAC_FLAG_MMCR) || ((FLAG) == ETH_MAC_FLAG_MMC) || \ 288 ((FLAG) == ETH_MAC_FLAG_PMT)) 289 #define IS_ETH_DMA_IT(IT) ((((IT) & (uint32_t)0xC7FE1800U) == 0x00U) && ((IT) != 0x00U)) 290 #define IS_ETH_DMA_GET_IT(IT) (((IT) == ETH_DMA_IT_TST) || ((IT) == ETH_DMA_IT_PMT) || \ 291 ((IT) == ETH_DMA_IT_MMC) || ((IT) == ETH_DMA_IT_NIS) || \ 292 ((IT) == ETH_DMA_IT_AIS) || ((IT) == ETH_DMA_IT_ER) || \ 293 ((IT) == ETH_DMA_IT_FBE) || ((IT) == ETH_DMA_IT_ET) || \ 294 ((IT) == ETH_DMA_IT_RWT) || ((IT) == ETH_DMA_IT_RPS) || \ 295 ((IT) == ETH_DMA_IT_RBU) || ((IT) == ETH_DMA_IT_R) || \ 296 ((IT) == ETH_DMA_IT_TU) || ((IT) == ETH_DMA_IT_RO) || \ 297 ((IT) == ETH_DMA_IT_TJT) || ((IT) == ETH_DMA_IT_TBU) || \ 298 ((IT) == ETH_DMA_IT_TPS) || ((IT) == ETH_DMA_IT_T)) 299 #define IS_ETH_DMA_GET_OVERFLOW(OVERFLOW) (((OVERFLOW) == ETH_DMA_OVERFLOW_RXFIFOCOUNTER) || \ 300 ((OVERFLOW) == ETH_DMA_OVERFLOW_MISSEDFRAMECOUNTER)) 301 #define IS_ETH_MMC_IT(IT) (((((IT) & (uint32_t)0xFFDF3FFFU) == 0x00U) || (((IT) & (uint32_t)0xEFFDFF9FU) == 0x00U)) && \ 303 #define IS_ETH_MMC_GET_IT(IT) (((IT) == ETH_MMC_IT_TGF) || ((IT) == ETH_MMC_IT_TGFMSC) || \ 304 ((IT) == ETH_MMC_IT_TGFSC) || ((IT) == ETH_MMC_IT_RGUF) || \ 305 ((IT) == ETH_MMC_IT_RFAE) || ((IT) == ETH_MMC_IT_RFCE)) 306 #define IS_ETH_ENHANCED_DESCRIPTOR_FORMAT(CMD) (((CMD) == ETH_DMAENHANCEDDESCRIPTOR_ENABLE) || \ 307 ((CMD) == ETH_DMAENHANCEDDESCRIPTOR_DISABLE)) 317 #define ETH_REG_WRITE_DELAY ((uint32_t)0x00000001U) 320 #define ETH_SUCCESS ((uint32_t)0U) 321 #define ETH_ERROR ((uint32_t)1U) 324 #define ETH_DMATXDESC_COLLISION_COUNTSHIFT ((uint32_t)3U) 327 #define ETH_DMATXDESC_BUFFER2_SIZESHIFT ((uint32_t)16U) 330 #define ETH_DMARXDESC_FRAME_LENGTHSHIFT ((uint32_t)16U) 333 #define ETH_DMARXDESC_BUFFER2_SIZESHIFT ((uint32_t)16U) 336 #define ETH_DMARXDESC_FRAMELENGTHSHIFT ((uint32_t)16U) 339 #define ETH_MAC_ADDR_HBASE (uint32_t)(ETH_MAC_BASE + (uint32_t)0x40U) 340 #define ETH_MAC_ADDR_LBASE (uint32_t)(ETH_MAC_BASE + (uint32_t)0x44U) 343 #define ETH_MACMIIAR_CR_MASK ((uint32_t)0xFFFFFFE3U) 346 #define ETH_MACCR_CLEAR_MASK ((uint32_t)0xFF20810FU) 349 #define ETH_MACFCR_CLEAR_MASK ((uint32_t)0x0000FF41U) 352 #define ETH_DMAOMR_CLEAR_MASK ((uint32_t)0xF8DE3F23U) 355 #define ETH_WAKEUP_REGISTER_LENGTH 8 358 #define ETH_DMA_RX_OVERFLOW_MISSEDFRAMES_COUNTERSHIFT 17U 373 HAL_ETH_STATE_RESET = 0x00U,
374 HAL_ETH_STATE_READY = 0x01U,
375 HAL_ETH_STATE_BUSY = 0x02U,
376 HAL_ETH_STATE_BUSY_TX = 0x12U,
377 HAL_ETH_STATE_BUSY_RX = 0x22U,
378 HAL_ETH_STATE_BUSY_TX_RX = 0x32U,
379 HAL_ETH_STATE_BUSY_WR = 0x42U,
380 HAL_ETH_STATE_BUSY_RD = 0x82U,
381 HAL_ETH_STATE_TIMEOUT = 0x03U,
382 HAL_ETH_STATE_ERROR = 0x04U
383 }HAL_ETH_StateTypeDef;
391 uint32_t AutoNegotiation;
410 uint32_t ChecksumMode;
413 uint32_t MediaInterface;
435 uint32_t InterFrameGap;
438 uint32_t CarrierSense;
446 uint32_t LoopbackMode;
449 uint32_t ChecksumOffload;
452 uint32_t RetryTransmission;
456 uint32_t AutomaticPadCRCStrip;
459 uint32_t BackOffLimit;
462 uint32_t DeferralCheck;
468 uint32_t SourceAddrFilter;
471 uint32_t PassControlFrames;
474 uint32_t BroadcastFramesReception;
477 uint32_t DestinationAddrFilter;
480 uint32_t PromiscuousMode;
483 uint32_t MulticastFramesFilter;
486 uint32_t UnicastFramesFilter;
489 uint32_t HashTableHigh;
492 uint32_t HashTableLow;
498 uint32_t ZeroQuantaPause;
501 uint32_t PauseLowThreshold;
505 uint32_t UnicastPauseFrameDetect;
509 uint32_t ReceiveFlowControl;
513 uint32_t TransmitFlowControl;
517 uint32_t VLANTagComparison;
521 uint32_t VLANTagIdentifier;
523 } ETH_MACInitTypeDef;
531 uint32_t DropTCPIPChecksumErrorFrame;
534 uint32_t ReceiveStoreForward;
537 uint32_t FlushReceivedFrame;
540 uint32_t TransmitStoreForward;
543 uint32_t TransmitThresholdControl;
546 uint32_t ForwardErrorFrames;
549 uint32_t ForwardUndersizedGoodFrames;
553 uint32_t ReceiveThresholdControl;
556 uint32_t SecondFrameOperate;
560 uint32_t AddressAlignedBeats;
566 uint32_t RxDMABurstLength;
569 uint32_t TxDMABurstLength;
572 uint32_t EnhancedDescriptorFormat;
575 uint32_t DescriptorSkipLength;
578 uint32_t DMAArbitration;
580 } ETH_DMAInitTypeDef;
589 __IO uint32_t Status;
591 uint32_t ControlBufferSize;
593 uint32_t Buffer1Addr;
595 uint32_t Buffer2NextDescAddr;
598 uint32_t ExtendedStatus;
602 uint32_t TimeStampLow;
604 uint32_t TimeStampHigh;
606 } ETH_DMADescTypeDef;
613 ETH_DMADescTypeDef *FSRxDesc;
615 ETH_DMADescTypeDef *LSRxDesc;
623 } ETH_DMARxFrameInfos;
633 ETH_InitTypeDef Init;
637 ETH_DMADescTypeDef *RxDesc;
639 ETH_DMADescTypeDef *TxDesc;
641 ETH_DMARxFrameInfos RxFrameInfos;
643 __IO HAL_ETH_StateTypeDef State;
661 #define ETH_MAX_PACKET_SIZE ((uint32_t)1524U) 662 #define ETH_HEADER ((uint32_t)14U) 663 #define ETH_CRC ((uint32_t)4U) 664 #define ETH_EXTRA ((uint32_t)2U) 665 #define ETH_VLAN_TAG ((uint32_t)4U) 666 #define ETH_MIN_ETH_PAYLOAD ((uint32_t)46U) 667 #define ETH_MAX_ETH_PAYLOAD ((uint32_t)1500U) 668 #define ETH_JUMBO_FRAME_PAYLOAD ((uint32_t)9000U) 687 #ifndef ETH_RX_BUF_SIZE 688 #define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE 693 #define ETH_RXBUFNB ((uint32_t)5U) 714 #ifndef ETH_TX_BUF_SIZE 715 #define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE 720 #define ETH_TXBUFNB ((uint32_t)5U) 747 #define ETH_DMATXDESC_OWN ((uint32_t)0x80000000U) 748 #define ETH_DMATXDESC_IC ((uint32_t)0x40000000U) 749 #define ETH_DMATXDESC_LS ((uint32_t)0x20000000U) 750 #define ETH_DMATXDESC_FS ((uint32_t)0x10000000U) 751 #define ETH_DMATXDESC_DC ((uint32_t)0x08000000U) 752 #define ETH_DMATXDESC_DP ((uint32_t)0x04000000U) 753 #define ETH_DMATXDESC_TTSE ((uint32_t)0x02000000U) 754 #define ETH_DMATXDESC_CIC ((uint32_t)0x00C00000U) 755 #define ETH_DMATXDESC_CIC_BYPASS ((uint32_t)0x00000000U) 756 #define ETH_DMATXDESC_CIC_IPV4HEADER ((uint32_t)0x00400000U) 757 #define ETH_DMATXDESC_CIC_TCPUDPICMP_SEGMENT ((uint32_t)0x00800000U) 758 #define ETH_DMATXDESC_CIC_TCPUDPICMP_FULL ((uint32_t)0x00C00000U) 759 #define ETH_DMATXDESC_TER ((uint32_t)0x00200000U) 760 #define ETH_DMATXDESC_TCH ((uint32_t)0x00100000U) 761 #define ETH_DMATXDESC_TTSS ((uint32_t)0x00020000U) 762 #define ETH_DMATXDESC_IHE ((uint32_t)0x00010000U) 763 #define ETH_DMATXDESC_ES ((uint32_t)0x00008000U) 764 #define ETH_DMATXDESC_JT ((uint32_t)0x00004000U) 765 #define ETH_DMATXDESC_FF ((uint32_t)0x00002000U) 766 #define ETH_DMATXDESC_PCE ((uint32_t)0x00001000U) 767 #define ETH_DMATXDESC_LCA ((uint32_t)0x00000800U) 768 #define ETH_DMATXDESC_NC ((uint32_t)0x00000400U) 769 #define ETH_DMATXDESC_LCO ((uint32_t)0x00000200U) 770 #define ETH_DMATXDESC_EC ((uint32_t)0x00000100U) 771 #define ETH_DMATXDESC_VF ((uint32_t)0x00000080U) 772 #define ETH_DMATXDESC_CC ((uint32_t)0x00000078U) 773 #define ETH_DMATXDESC_ED ((uint32_t)0x00000004U) 774 #define ETH_DMATXDESC_UF ((uint32_t)0x00000002U) 775 #define ETH_DMATXDESC_DB ((uint32_t)0x00000001U) 780 #define ETH_DMATXDESC_TBS2 ((uint32_t)0x1FFF0000U) 781 #define ETH_DMATXDESC_TBS1 ((uint32_t)0x00001FFFU) 786 #define ETH_DMATXDESC_B1AP ((uint32_t)0xFFFFFFFFU) 791 #define ETH_DMATXDESC_B2AP ((uint32_t)0xFFFFFFFFU) 800 #define ETH_DMAPTPTXDESC_TTSL ((uint32_t)0xFFFFFFFFU) 803 #define ETH_DMAPTPTXDESC_TTSH ((uint32_t)0xFFFFFFFFU) 828 #define ETH_DMARXDESC_OWN ((uint32_t)0x80000000U) 829 #define ETH_DMARXDESC_AFM ((uint32_t)0x40000000U) 830 #define ETH_DMARXDESC_FL ((uint32_t)0x3FFF0000U) 831 #define ETH_DMARXDESC_ES ((uint32_t)0x00008000U) 832 #define ETH_DMARXDESC_DE ((uint32_t)0x00004000U) 833 #define ETH_DMARXDESC_SAF ((uint32_t)0x00002000U) 834 #define ETH_DMARXDESC_LE ((uint32_t)0x00001000U) 835 #define ETH_DMARXDESC_OE ((uint32_t)0x00000800U) 836 #define ETH_DMARXDESC_VLAN ((uint32_t)0x00000400U) 837 #define ETH_DMARXDESC_FS ((uint32_t)0x00000200U) 838 #define ETH_DMARXDESC_LS ((uint32_t)0x00000100U) 839 #define ETH_DMARXDESC_IPV4HCE ((uint32_t)0x00000080U) 840 #define ETH_DMARXDESC_LC ((uint32_t)0x00000040U) 841 #define ETH_DMARXDESC_FT ((uint32_t)0x00000020U) 842 #define ETH_DMARXDESC_RWT ((uint32_t)0x00000010U) 843 #define ETH_DMARXDESC_RE ((uint32_t)0x00000008U) 844 #define ETH_DMARXDESC_DBE ((uint32_t)0x00000004U) 845 #define ETH_DMARXDESC_CE ((uint32_t)0x00000002U) 846 #define ETH_DMARXDESC_MAMPCE ((uint32_t)0x00000001U) 851 #define ETH_DMARXDESC_DIC ((uint32_t)0x80000000U) 852 #define ETH_DMARXDESC_RBS2 ((uint32_t)0x1FFF0000U) 853 #define ETH_DMARXDESC_RER ((uint32_t)0x00008000U) 854 #define ETH_DMARXDESC_RCH ((uint32_t)0x00004000U) 855 #define ETH_DMARXDESC_RBS1 ((uint32_t)0x00001FFFU) 860 #define ETH_DMARXDESC_B1AP ((uint32_t)0xFFFFFFFFU) 865 #define ETH_DMARXDESC_B2AP ((uint32_t)0xFFFFFFFFU) 878 #define ETH_DMAPTPRXDESC_PTPV ((uint32_t)0x00002000U) 879 #define ETH_DMAPTPRXDESC_PTPFT ((uint32_t)0x00001000U) 880 #define ETH_DMAPTPRXDESC_PTPMT ((uint32_t)0x00000F00U) 881 #define ETH_DMAPTPRXDESC_PTPMT_SYNC ((uint32_t)0x00000100U) 882 #define ETH_DMAPTPRXDESC_PTPMT_FOLLOWUP ((uint32_t)0x00000200U) 883 #define ETH_DMAPTPRXDESC_PTPMT_DELAYREQ ((uint32_t)0x00000300U) 884 #define ETH_DMAPTPRXDESC_PTPMT_DELAYRESP ((uint32_t)0x00000400U) 885 #define ETH_DMAPTPRXDESC_PTPMT_PDELAYREQ_ANNOUNCE ((uint32_t)0x00000500U) 886 #define ETH_DMAPTPRXDESC_PTPMT_PDELAYRESP_MANAG ((uint32_t)0x00000600U) 887 #define ETH_DMAPTPRXDESC_PTPMT_PDELAYRESPFOLLOWUP_SIGNAL ((uint32_t)0x00000700U) 888 #define ETH_DMAPTPRXDESC_IPV6PR ((uint32_t)0x00000080U) 889 #define ETH_DMAPTPRXDESC_IPV4PR ((uint32_t)0x00000040U) 890 #define ETH_DMAPTPRXDESC_IPCB ((uint32_t)0x00000020U) 891 #define ETH_DMAPTPRXDESC_IPPE ((uint32_t)0x00000010U) 892 #define ETH_DMAPTPRXDESC_IPHE ((uint32_t)0x00000008U) 893 #define ETH_DMAPTPRXDESC_IPPT ((uint32_t)0x00000007U) 894 #define ETH_DMAPTPRXDESC_IPPT_UDP ((uint32_t)0x00000001U) 895 #define ETH_DMAPTPRXDESC_IPPT_TCP ((uint32_t)0x00000002U) 896 #define ETH_DMAPTPRXDESC_IPPT_ICMP ((uint32_t)0x00000003U) 899 #define ETH_DMAPTPRXDESC_RTSL ((uint32_t)0xFFFFFFFFU) 902 #define ETH_DMAPTPRXDESC_RTSH ((uint32_t)0xFFFFFFFFU) 909 #define ETH_AUTONEGOTIATION_ENABLE ((uint32_t)0x00000001U) 910 #define ETH_AUTONEGOTIATION_DISABLE ((uint32_t)0x00000000U) 918 #define ETH_SPEED_10M ((uint32_t)0x00000000U) 919 #define ETH_SPEED_100M ((uint32_t)0x00004000U) 927 #define ETH_MODE_FULLDUPLEX ((uint32_t)0x00000800U) 928 #define ETH_MODE_HALFDUPLEX ((uint32_t)0x00000000U) 935 #define ETH_RXPOLLING_MODE ((uint32_t)0x00000000U) 936 #define ETH_RXINTERRUPT_MODE ((uint32_t)0x00000001U) 944 #define ETH_CHECKSUM_BY_HARDWARE ((uint32_t)0x00000000U) 945 #define ETH_CHECKSUM_BY_SOFTWARE ((uint32_t)0x00000001U) 953 #define ETH_MEDIA_INTERFACE_MII ((uint32_t)0x00000000U) 954 #define ETH_MEDIA_INTERFACE_RMII ((uint32_t)SYSCFG_PMC_MII_RMII_SEL) 962 #define ETH_WATCHDOG_ENABLE ((uint32_t)0x00000000U) 963 #define ETH_WATCHDOG_DISABLE ((uint32_t)0x00800000U) 971 #define ETH_JABBER_ENABLE ((uint32_t)0x00000000U) 972 #define ETH_JABBER_DISABLE ((uint32_t)0x00400000U) 980 #define ETH_INTERFRAMEGAP_96BIT ((uint32_t)0x00000000U) 981 #define ETH_INTERFRAMEGAP_88BIT ((uint32_t)0x00020000U) 982 #define ETH_INTERFRAMEGAP_80BIT ((uint32_t)0x00040000U) 983 #define ETH_INTERFRAMEGAP_72BIT ((uint32_t)0x00060000U) 984 #define ETH_INTERFRAMEGAP_64BIT ((uint32_t)0x00080000U) 985 #define ETH_INTERFRAMEGAP_56BIT ((uint32_t)0x000A0000U) 986 #define ETH_INTERFRAMEGAP_48BIT ((uint32_t)0x000C0000U) 987 #define ETH_INTERFRAMEGAP_40BIT ((uint32_t)0x000E0000U) 995 #define ETH_CARRIERSENCE_ENABLE ((uint32_t)0x00000000U) 996 #define ETH_CARRIERSENCE_DISABLE ((uint32_t)0x00010000U) 1004 #define ETH_RECEIVEOWN_ENABLE ((uint32_t)0x00000000U) 1005 #define ETH_RECEIVEOWN_DISABLE ((uint32_t)0x00002000U) 1013 #define ETH_LOOPBACKMODE_ENABLE ((uint32_t)0x00001000U) 1014 #define ETH_LOOPBACKMODE_DISABLE ((uint32_t)0x00000000U) 1022 #define ETH_CHECKSUMOFFLAOD_ENABLE ((uint32_t)0x00000400U) 1023 #define ETH_CHECKSUMOFFLAOD_DISABLE ((uint32_t)0x00000000U) 1031 #define ETH_RETRYTRANSMISSION_ENABLE ((uint32_t)0x00000000U) 1032 #define ETH_RETRYTRANSMISSION_DISABLE ((uint32_t)0x00000200U) 1040 #define ETH_AUTOMATICPADCRCSTRIP_ENABLE ((uint32_t)0x00000080U) 1041 #define ETH_AUTOMATICPADCRCSTRIP_DISABLE ((uint32_t)0x00000000U) 1049 #define ETH_BACKOFFLIMIT_10 ((uint32_t)0x00000000U) 1050 #define ETH_BACKOFFLIMIT_8 ((uint32_t)0x00000020U) 1051 #define ETH_BACKOFFLIMIT_4 ((uint32_t)0x00000040U) 1052 #define ETH_BACKOFFLIMIT_1 ((uint32_t)0x00000060U) 1060 #define ETH_DEFFERRALCHECK_ENABLE ((uint32_t)0x00000010U) 1061 #define ETH_DEFFERRALCHECK_DISABLE ((uint32_t)0x00000000U) 1069 #define ETH_RECEIVEALL_ENABLE ((uint32_t)0x80000000U) 1070 #define ETH_RECEIVEAll_DISABLE ((uint32_t)0x00000000U) 1078 #define ETH_SOURCEADDRFILTER_NORMAL_ENABLE ((uint32_t)0x00000200U) 1079 #define ETH_SOURCEADDRFILTER_INVERSE_ENABLE ((uint32_t)0x00000300U) 1080 #define ETH_SOURCEADDRFILTER_DISABLE ((uint32_t)0x00000000U) 1088 #define ETH_PASSCONTROLFRAMES_BLOCKALL ((uint32_t)0x00000040U) 1089 #define ETH_PASSCONTROLFRAMES_FORWARDALL ((uint32_t)0x00000080U) 1090 #define ETH_PASSCONTROLFRAMES_FORWARDPASSEDADDRFILTER ((uint32_t)0x000000C0U) 1098 #define ETH_BROADCASTFRAMESRECEPTION_ENABLE ((uint32_t)0x00000000U) 1099 #define ETH_BROADCASTFRAMESRECEPTION_DISABLE ((uint32_t)0x00000020U) 1107 #define ETH_DESTINATIONADDRFILTER_NORMAL ((uint32_t)0x00000000U) 1108 #define ETH_DESTINATIONADDRFILTER_INVERSE ((uint32_t)0x00000008U) 1116 #define ETH_PROMISCUOUS_MODE_ENABLE ((uint32_t)0x00000001U) 1117 #define ETH_PROMISCUOUS_MODE_DISABLE ((uint32_t)0x00000000U) 1125 #define ETH_MULTICASTFRAMESFILTER_PERFECTHASHTABLE ((uint32_t)0x00000404U) 1126 #define ETH_MULTICASTFRAMESFILTER_HASHTABLE ((uint32_t)0x00000004U) 1127 #define ETH_MULTICASTFRAMESFILTER_PERFECT ((uint32_t)0x00000000U) 1128 #define ETH_MULTICASTFRAMESFILTER_NONE ((uint32_t)0x00000010U) 1136 #define ETH_UNICASTFRAMESFILTER_PERFECTHASHTABLE ((uint32_t)0x00000402U) 1137 #define ETH_UNICASTFRAMESFILTER_HASHTABLE ((uint32_t)0x00000002U) 1138 #define ETH_UNICASTFRAMESFILTER_PERFECT ((uint32_t)0x00000000U) 1146 #define ETH_ZEROQUANTAPAUSE_ENABLE ((uint32_t)0x00000000U) 1147 #define ETH_ZEROQUANTAPAUSE_DISABLE ((uint32_t)0x00000080U) 1155 #define ETH_PAUSELOWTHRESHOLD_MINUS4 ((uint32_t)0x00000000U) 1156 #define ETH_PAUSELOWTHRESHOLD_MINUS28 ((uint32_t)0x00000010U) 1157 #define ETH_PAUSELOWTHRESHOLD_MINUS144 ((uint32_t)0x00000020U) 1158 #define ETH_PAUSELOWTHRESHOLD_MINUS256 ((uint32_t)0x00000030U) 1166 #define ETH_UNICASTPAUSEFRAMEDETECT_ENABLE ((uint32_t)0x00000008U) 1167 #define ETH_UNICASTPAUSEFRAMEDETECT_DISABLE ((uint32_t)0x00000000U) 1175 #define ETH_RECEIVEFLOWCONTROL_ENABLE ((uint32_t)0x00000004U) 1176 #define ETH_RECEIVEFLOWCONTROL_DISABLE ((uint32_t)0x00000000U) 1184 #define ETH_TRANSMITFLOWCONTROL_ENABLE ((uint32_t)0x00000002U) 1185 #define ETH_TRANSMITFLOWCONTROL_DISABLE ((uint32_t)0x00000000U) 1193 #define ETH_VLANTAGCOMPARISON_12BIT ((uint32_t)0x00010000U) 1194 #define ETH_VLANTAGCOMPARISON_16BIT ((uint32_t)0x00000000U) 1202 #define ETH_MAC_ADDRESS0 ((uint32_t)0x00000000U) 1203 #define ETH_MAC_ADDRESS1 ((uint32_t)0x00000008U) 1204 #define ETH_MAC_ADDRESS2 ((uint32_t)0x00000010U) 1205 #define ETH_MAC_ADDRESS3 ((uint32_t)0x00000018U) 1213 #define ETH_MAC_ADDRESSFILTER_SA ((uint32_t)0x00000000U) 1214 #define ETH_MAC_ADDRESSFILTER_DA ((uint32_t)0x00000008U) 1222 #define ETH_MAC_ADDRESSMASK_BYTE6 ((uint32_t)0x20000000U) 1223 #define ETH_MAC_ADDRESSMASK_BYTE5 ((uint32_t)0x10000000U) 1224 #define ETH_MAC_ADDRESSMASK_BYTE4 ((uint32_t)0x08000000U) 1225 #define ETH_MAC_ADDRESSMASK_BYTE3 ((uint32_t)0x04000000U) 1226 #define ETH_MAC_ADDRESSMASK_BYTE2 ((uint32_t)0x02000000U) 1227 #define ETH_MAC_ADDRESSMASK_BYTE1 ((uint32_t)0x01000000U) 1235 #define ETH_DROPTCPIPCHECKSUMERRORFRAME_ENABLE ((uint32_t)0x00000000U) 1236 #define ETH_DROPTCPIPCHECKSUMERRORFRAME_DISABLE ((uint32_t)0x04000000U) 1244 #define ETH_RECEIVESTOREFORWARD_ENABLE ((uint32_t)0x02000000U) 1245 #define ETH_RECEIVESTOREFORWARD_DISABLE ((uint32_t)0x00000000U) 1253 #define ETH_FLUSHRECEIVEDFRAME_ENABLE ((uint32_t)0x00000000U) 1254 #define ETH_FLUSHRECEIVEDFRAME_DISABLE ((uint32_t)0x01000000U) 1262 #define ETH_TRANSMITSTOREFORWARD_ENABLE ((uint32_t)0x00200000U) 1263 #define ETH_TRANSMITSTOREFORWARD_DISABLE ((uint32_t)0x00000000U) 1271 #define ETH_TRANSMITTHRESHOLDCONTROL_64BYTES ((uint32_t)0x00000000U) 1272 #define ETH_TRANSMITTHRESHOLDCONTROL_128BYTES ((uint32_t)0x00004000U) 1273 #define ETH_TRANSMITTHRESHOLDCONTROL_192BYTES ((uint32_t)0x00008000U) 1274 #define ETH_TRANSMITTHRESHOLDCONTROL_256BYTES ((uint32_t)0x0000C000U) 1275 #define ETH_TRANSMITTHRESHOLDCONTROL_40BYTES ((uint32_t)0x00010000U) 1276 #define ETH_TRANSMITTHRESHOLDCONTROL_32BYTES ((uint32_t)0x00014000U) 1277 #define ETH_TRANSMITTHRESHOLDCONTROL_24BYTES ((uint32_t)0x00018000U) 1278 #define ETH_TRANSMITTHRESHOLDCONTROL_16BYTES ((uint32_t)0x0001C000U) 1286 #define ETH_FORWARDERRORFRAMES_ENABLE ((uint32_t)0x00000080U) 1287 #define ETH_FORWARDERRORFRAMES_DISABLE ((uint32_t)0x00000000U) 1295 #define ETH_FORWARDUNDERSIZEDGOODFRAMES_ENABLE ((uint32_t)0x00000040U) 1296 #define ETH_FORWARDUNDERSIZEDGOODFRAMES_DISABLE ((uint32_t)0x00000000U) 1304 #define ETH_RECEIVEDTHRESHOLDCONTROL_64BYTES ((uint32_t)0x00000000U) 1305 #define ETH_RECEIVEDTHRESHOLDCONTROL_32BYTES ((uint32_t)0x00000008U) 1306 #define ETH_RECEIVEDTHRESHOLDCONTROL_96BYTES ((uint32_t)0x00000010U) 1307 #define ETH_RECEIVEDTHRESHOLDCONTROL_128BYTES ((uint32_t)0x00000018U) 1315 #define ETH_SECONDFRAMEOPERARTE_ENABLE ((uint32_t)0x00000004U) 1316 #define ETH_SECONDFRAMEOPERARTE_DISABLE ((uint32_t)0x00000000U) 1324 #define ETH_ADDRESSALIGNEDBEATS_ENABLE ((uint32_t)0x02000000U) 1325 #define ETH_ADDRESSALIGNEDBEATS_DISABLE ((uint32_t)0x00000000U) 1333 #define ETH_FIXEDBURST_ENABLE ((uint32_t)0x00010000U) 1334 #define ETH_FIXEDBURST_DISABLE ((uint32_t)0x00000000U) 1342 #define ETH_RXDMABURSTLENGTH_1BEAT ((uint32_t)0x00020000U) 1343 #define ETH_RXDMABURSTLENGTH_2BEAT ((uint32_t)0x00040000U) 1344 #define ETH_RXDMABURSTLENGTH_4BEAT ((uint32_t)0x00080000U) 1345 #define ETH_RXDMABURSTLENGTH_8BEAT ((uint32_t)0x00100000U) 1346 #define ETH_RXDMABURSTLENGTH_16BEAT ((uint32_t)0x00200000U) 1347 #define ETH_RXDMABURSTLENGTH_32BEAT ((uint32_t)0x00400000U) 1348 #define ETH_RXDMABURSTLENGTH_4XPBL_4BEAT ((uint32_t)0x01020000U) 1349 #define ETH_RXDMABURSTLENGTH_4XPBL_8BEAT ((uint32_t)0x01040000U) 1350 #define ETH_RXDMABURSTLENGTH_4XPBL_16BEAT ((uint32_t)0x01080000U) 1351 #define ETH_RXDMABURSTLENGTH_4XPBL_32BEAT ((uint32_t)0x01100000U) 1352 #define ETH_RXDMABURSTLENGTH_4XPBL_64BEAT ((uint32_t)0x01200000U) 1353 #define ETH_RXDMABURSTLENGTH_4XPBL_128BEAT ((uint32_t)0x01400000U) 1361 #define ETH_TXDMABURSTLENGTH_1BEAT ((uint32_t)0x00000100U) 1362 #define ETH_TXDMABURSTLENGTH_2BEAT ((uint32_t)0x00000200U) 1363 #define ETH_TXDMABURSTLENGTH_4BEAT ((uint32_t)0x00000400U) 1364 #define ETH_TXDMABURSTLENGTH_8BEAT ((uint32_t)0x00000800U) 1365 #define ETH_TXDMABURSTLENGTH_16BEAT ((uint32_t)0x00001000U) 1366 #define ETH_TXDMABURSTLENGTH_32BEAT ((uint32_t)0x00002000U) 1367 #define ETH_TXDMABURSTLENGTH_4XPBL_4BEAT ((uint32_t)0x01000100U) 1368 #define ETH_TXDMABURSTLENGTH_4XPBL_8BEAT ((uint32_t)0x01000200U) 1369 #define ETH_TXDMABURSTLENGTH_4XPBL_16BEAT ((uint32_t)0x01000400U) 1370 #define ETH_TXDMABURSTLENGTH_4XPBL_32BEAT ((uint32_t)0x01000800U) 1371 #define ETH_TXDMABURSTLENGTH_4XPBL_64BEAT ((uint32_t)0x01001000U) 1372 #define ETH_TXDMABURSTLENGTH_4XPBL_128BEAT ((uint32_t)0x01002000U) 1380 #define ETH_DMAENHANCEDDESCRIPTOR_ENABLE ((uint32_t)0x00000080U) 1381 #define ETH_DMAENHANCEDDESCRIPTOR_DISABLE ((uint32_t)0x00000000U) 1389 #define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_1_1 ((uint32_t)0x00000000U) 1390 #define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_2_1 ((uint32_t)0x00004000U) 1391 #define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_3_1 ((uint32_t)0x00008000U) 1392 #define ETH_DMAARBITRATION_ROUNDROBIN_RXTX_4_1 ((uint32_t)0x0000C000U) 1393 #define ETH_DMAARBITRATION_RXPRIORTX ((uint32_t)0x00000002U) 1401 #define ETH_DMATXDESC_LASTSEGMENTS ((uint32_t)0x40000000U) 1402 #define ETH_DMATXDESC_FIRSTSEGMENT ((uint32_t)0x20000000U) 1410 #define ETH_DMATXDESC_CHECKSUMBYPASS ((uint32_t)0x00000000U) 1411 #define ETH_DMATXDESC_CHECKSUMIPV4HEADER ((uint32_t)0x00400000U) 1412 #define ETH_DMATXDESC_CHECKSUMTCPUDPICMPSEGMENT ((uint32_t)0x00800000U) 1413 #define ETH_DMATXDESC_CHECKSUMTCPUDPICMPFULL ((uint32_t)0x00C00000U) 1421 #define ETH_DMARXDESC_BUFFER1 ((uint32_t)0x00000000U) 1422 #define ETH_DMARXDESC_BUFFER2 ((uint32_t)0x00000001U) 1430 #define ETH_PMT_FLAG_WUFFRPR ((uint32_t)0x80000000U) 1431 #define ETH_PMT_FLAG_WUFR ((uint32_t)0x00000040U) 1432 #define ETH_PMT_FLAG_MPR ((uint32_t)0x00000020U) 1440 #define ETH_MMC_IT_TGF ((uint32_t)0x00200000U) 1441 #define ETH_MMC_IT_TGFMSC ((uint32_t)0x00008000U) 1442 #define ETH_MMC_IT_TGFSC ((uint32_t)0x00004000U) 1450 #define ETH_MMC_IT_RGUF ((uint32_t)0x10020000U) 1451 #define ETH_MMC_IT_RFAE ((uint32_t)0x10000040U) 1452 #define ETH_MMC_IT_RFCE ((uint32_t)0x10000020U) 1460 #define ETH_MAC_FLAG_TST ((uint32_t)0x00000200U) 1461 #define ETH_MAC_FLAG_MMCT ((uint32_t)0x00000040U) 1462 #define ETH_MAC_FLAG_MMCR ((uint32_t)0x00000020U) 1463 #define ETH_MAC_FLAG_MMC ((uint32_t)0x00000010U) 1464 #define ETH_MAC_FLAG_PMT ((uint32_t)0x00000008U) 1472 #define ETH_DMA_FLAG_TST ((uint32_t)0x20000000U) 1473 #define ETH_DMA_FLAG_PMT ((uint32_t)0x10000000U) 1474 #define ETH_DMA_FLAG_MMC ((uint32_t)0x08000000U) 1475 #define ETH_DMA_FLAG_DATATRANSFERERROR ((uint32_t)0x00800000U) 1476 #define ETH_DMA_FLAG_READWRITEERROR ((uint32_t)0x01000000U) 1477 #define ETH_DMA_FLAG_ACCESSERROR ((uint32_t)0x02000000U) 1478 #define ETH_DMA_FLAG_NIS ((uint32_t)0x00010000U) 1479 #define ETH_DMA_FLAG_AIS ((uint32_t)0x00008000U) 1480 #define ETH_DMA_FLAG_ER ((uint32_t)0x00004000U) 1481 #define ETH_DMA_FLAG_FBE ((uint32_t)0x00002000U) 1482 #define ETH_DMA_FLAG_ET ((uint32_t)0x00000400U) 1483 #define ETH_DMA_FLAG_RWT ((uint32_t)0x00000200U) 1484 #define ETH_DMA_FLAG_RPS ((uint32_t)0x00000100U) 1485 #define ETH_DMA_FLAG_RBU ((uint32_t)0x00000080U) 1486 #define ETH_DMA_FLAG_R ((uint32_t)0x00000040U) 1487 #define ETH_DMA_FLAG_TU ((uint32_t)0x00000020U) 1488 #define ETH_DMA_FLAG_RO ((uint32_t)0x00000010U) 1489 #define ETH_DMA_FLAG_TJT ((uint32_t)0x00000008U) 1490 #define ETH_DMA_FLAG_TBU ((uint32_t)0x00000004U) 1491 #define ETH_DMA_FLAG_TPS ((uint32_t)0x00000002U) 1492 #define ETH_DMA_FLAG_T ((uint32_t)0x00000001U) 1500 #define ETH_MAC_IT_TST ((uint32_t)0x00000200U) 1501 #define ETH_MAC_IT_MMCT ((uint32_t)0x00000040U) 1502 #define ETH_MAC_IT_MMCR ((uint32_t)0x00000020U) 1503 #define ETH_MAC_IT_MMC ((uint32_t)0x00000010U) 1504 #define ETH_MAC_IT_PMT ((uint32_t)0x00000008U) 1512 #define ETH_DMA_IT_TST ((uint32_t)0x20000000U) 1513 #define ETH_DMA_IT_PMT ((uint32_t)0x10000000U) 1514 #define ETH_DMA_IT_MMC ((uint32_t)0x08000000U) 1515 #define ETH_DMA_IT_NIS ((uint32_t)0x00010000U) 1516 #define ETH_DMA_IT_AIS ((uint32_t)0x00008000U) 1517 #define ETH_DMA_IT_ER ((uint32_t)0x00004000U) 1518 #define ETH_DMA_IT_FBE ((uint32_t)0x00002000U) 1519 #define ETH_DMA_IT_ET ((uint32_t)0x00000400U) 1520 #define ETH_DMA_IT_RWT ((uint32_t)0x00000200U) 1521 #define ETH_DMA_IT_RPS ((uint32_t)0x00000100U) 1522 #define ETH_DMA_IT_RBU ((uint32_t)0x00000080U) 1523 #define ETH_DMA_IT_R ((uint32_t)0x00000040U) 1524 #define ETH_DMA_IT_TU ((uint32_t)0x00000020U) 1525 #define ETH_DMA_IT_RO ((uint32_t)0x00000010U) 1526 #define ETH_DMA_IT_TJT ((uint32_t)0x00000008U) 1527 #define ETH_DMA_IT_TBU ((uint32_t)0x00000004U) 1528 #define ETH_DMA_IT_TPS ((uint32_t)0x00000002U) 1529 #define ETH_DMA_IT_T ((uint32_t)0x00000001U) 1537 #define ETH_DMA_TRANSMITPROCESS_STOPPED ((uint32_t)0x00000000U) 1538 #define ETH_DMA_TRANSMITPROCESS_FETCHING ((uint32_t)0x00100000U) 1539 #define ETH_DMA_TRANSMITPROCESS_WAITING ((uint32_t)0x00200000U) 1540 #define ETH_DMA_TRANSMITPROCESS_READING ((uint32_t)0x00300000U) 1541 #define ETH_DMA_TRANSMITPROCESS_SUSPENDED ((uint32_t)0x00600000U) 1542 #define ETH_DMA_TRANSMITPROCESS_CLOSING ((uint32_t)0x00700000U) 1552 #define ETH_DMA_RECEIVEPROCESS_STOPPED ((uint32_t)0x00000000U) 1553 #define ETH_DMA_RECEIVEPROCESS_FETCHING ((uint32_t)0x00020000U) 1554 #define ETH_DMA_RECEIVEPROCESS_WAITING ((uint32_t)0x00060000U) 1555 #define ETH_DMA_RECEIVEPROCESS_SUSPENDED ((uint32_t)0x00080000U) 1556 #define ETH_DMA_RECEIVEPROCESS_CLOSING ((uint32_t)0x000A0000U) 1557 #define ETH_DMA_RECEIVEPROCESS_QUEUING ((uint32_t)0x000E0000U) 1566 #define ETH_DMA_OVERFLOW_RXFIFOCOUNTER ((uint32_t)0x10000000U) 1567 #define ETH_DMA_OVERFLOW_MISSEDFRAMECOUNTER ((uint32_t)0x00010000U) 1575 #define ETH_EXTI_LINE_WAKEUP ((uint32_t)0x00080000U) 1595 #define __HAL_ETH_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_ETH_STATE_RESET) 1603 #define __HAL_ETH_DMATXDESC_GET_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->TxDesc->Status & (__FLAG__) == (__FLAG__)) 1611 #define __HAL_ETH_DMARXDESC_GET_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->RxDesc->Status & (__FLAG__) == (__FLAG__)) 1618 #define __HAL_ETH_DMARXDESC_ENABLE_IT(__HANDLE__) ((__HANDLE__)->RxDesc->ControlBufferSize &=(~(uint32_t)ETH_DMARXDESC_DIC)) 1625 #define __HAL_ETH_DMARXDESC_DISABLE_IT(__HANDLE__) ((__HANDLE__)->RxDesc->ControlBufferSize |= ETH_DMARXDESC_DIC) 1632 #define __HAL_ETH_DMARXDESC_SET_OWN_BIT(__HANDLE__) ((__HANDLE__)->RxDesc->Status |= ETH_DMARXDESC_OWN) 1639 #define __HAL_ETH_DMATXDESC_GET_COLLISION_COUNT(__HANDLE__) (((__HANDLE__)->TxDesc->Status & ETH_DMATXDESC_CC) >> ETH_DMATXDESC_COLLISION_COUNTSHIFT) 1646 #define __HAL_ETH_DMATXDESC_SET_OWN_BIT(__HANDLE__) ((__HANDLE__)->TxDesc->Status |= ETH_DMATXDESC_OWN) 1653 #define __HAL_ETH_DMATXDESC_ENABLE_IT(__HANDLE__) ((__HANDLE__)->TxDesc->Status |= ETH_DMATXDESC_IC) 1660 #define __HAL_ETH_DMATXDESC_DISABLE_IT(__HANDLE__) ((__HANDLE__)->TxDesc->Status &= ~ETH_DMATXDESC_IC) 1673 #define __HAL_ETH_DMATXDESC_CHECKSUM_INSERTION(__HANDLE__, __CHECKSUM__) ((__HANDLE__)->TxDesc->Status |= (__CHECKSUM__)) 1680 #define __HAL_ETH_DMATXDESC_CRC_ENABLE(__HANDLE__) ((__HANDLE__)->TxDesc->Status &= ~ETH_DMATXDESC_DC) 1687 #define __HAL_ETH_DMATXDESC_CRC_DISABLE(__HANDLE__) ((__HANDLE__)->TxDesc->Status |= ETH_DMATXDESC_DC) 1694 #define __HAL_ETH_DMATXDESC_SHORT_FRAME_PADDING_ENABLE(__HANDLE__) ((__HANDLE__)->TxDesc->Status &= ~ETH_DMATXDESC_DP) 1701 #define __HAL_ETH_DMATXDESC_SHORT_FRAME_PADDING_DISABLE(__HANDLE__) ((__HANDLE__)->TxDesc->Status |= ETH_DMATXDESC_DP) 1713 #define __HAL_ETH_MAC_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->MACIMR |= (__INTERRUPT__)) 1725 #define __HAL_ETH_MAC_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->MACIMR &= ~(__INTERRUPT__)) 1732 #define __HAL_ETH_INITIATE_PAUSE_CONTROL_FRAME(__HANDLE__) ((__HANDLE__)->Instance->MACFCR |= ETH_MACFCR_FCBBPA) 1739 #define __HAL_ETH_GET_FLOW_CONTROL_BUSY_STATUS(__HANDLE__) (((__HANDLE__)->Instance->MACFCR & ETH_MACFCR_FCBBPA) == ETH_MACFCR_FCBBPA) 1746 #define __HAL_ETH_BACK_PRESSURE_ACTIVATION_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->MACFCR |= ETH_MACFCR_FCBBPA) 1753 #define __HAL_ETH_BACK_PRESSURE_ACTIVATION_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->MACFCR &= ~ETH_MACFCR_FCBBPA) 1767 #define __HAL_ETH_MAC_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->MACSR &( __FLAG__)) == ( __FLAG__)) 1776 #define __HAL_ETH_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DMAIER |= (__INTERRUPT__)) 1785 #define __HAL_ETH_DMA_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DMAIER &= ~(__INTERRUPT__)) 1793 #define __HAL_ETH_DMA_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DMASR =(__INTERRUPT__)) 1801 #define __HAL_ETH_DMA_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->DMASR &( __FLAG__)) == ( __FLAG__)) 1809 #define __HAL_ETH_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->DMASR = (__FLAG__)) 1820 #define __HAL_ETH_GET_DMA_OVERFLOW_STATUS(__HANDLE__, __OVERFLOW__) (((__HANDLE__)->Instance->DMAMFBOCR & (__OVERFLOW__)) == (__OVERFLOW__)) 1828 #define __HAL_ETH_SET_RECEIVE_WATCHDOG_TIMER(__HANDLE__, __VALUE__) ((__HANDLE__)->Instance->DMARSWTR = (__VALUE__)) 1836 #define __HAL_ETH_GLOBAL_UNICAST_WAKEUP_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->MACPMTCSR |= ETH_MACPMTCSR_GU) 1844 #define __HAL_ETH_GLOBAL_UNICAST_WAKEUP_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->MACPMTCSR &= ~ETH_MACPMTCSR_GU) 1851 #define __HAL_ETH_WAKEUP_FRAME_DETECTION_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->MACPMTCSR |= ETH_MACPMTCSR_WFE) 1858 #define __HAL_ETH_WAKEUP_FRAME_DETECTION_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->MACPMTCSR &= ~ETH_MACPMTCSR_WFE) 1865 #define __HAL_ETH_MAGIC_PACKET_DETECTION_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->MACPMTCSR |= ETH_MACPMTCSR_MPE) 1872 #define __HAL_ETH_MAGIC_PACKET_DETECTION_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->MACPMTCSR &= ~ETH_MACPMTCSR_WFE) 1879 #define __HAL_ETH_POWER_DOWN_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->MACPMTCSR |= ETH_MACPMTCSR_PD) 1886 #define __HAL_ETH_POWER_DOWN_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->MACPMTCSR &= ~ETH_MACPMTCSR_PD) 1898 #define __HAL_ETH_GET_PMT_FLAG_STATUS(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->MACPMTCSR &( __FLAG__)) == ( __FLAG__)) 1905 #define __HAL_ETH_MMC_COUNTER_FULL_PRESET(__HANDLE__) ((__HANDLE__)->Instance->MMCCR |= (ETH_MMCCR_MCFHP | ETH_MMCCR_MCP)) 1912 #define __HAL_ETH_MMC_COUNTER_HALF_PRESET(__HANDLE__) do{(__HANDLE__)->Instance->MMCCR &= ~ETH_MMCCR_MCFHP;\ 1913 (__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_MCP;} while (0) 1920 #define __HAL_ETH_MMC_COUNTER_FREEZE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_MCF) 1927 #define __HAL_ETH_MMC_COUNTER_FREEZE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->MMCCR &= ~ETH_MMCCR_MCF) 1934 #define __HAL_ETH_ETH_MMC_RESET_ONREAD_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_ROR) 1941 #define __HAL_ETH_ETH_MMC_RESET_ONREAD_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->MMCCR &= ~ETH_MMCCR_ROR) 1948 #define __HAL_ETH_ETH_MMC_COUNTER_ROLLOVER_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->MMCCR &= ~ETH_MMCCR_CSR) 1955 #define __HAL_ETH_ETH_MMC_COUNTER_ROLLOVER_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_CSR) 1962 #define __HAL_ETH_MMC_COUNTERS_RESET(__HANDLE__) ((__HANDLE__)->Instance->MMCCR |= ETH_MMCCR_CR) 1974 #define __HAL_ETH_MMC_RX_IT_ENABLE(__HANDLE__, __INTERRUPT__) (__HANDLE__)->Instance->MMCRIMR &= ~((__INTERRUPT__) & 0xEFFFFFFFU) 1985 #define __HAL_ETH_MMC_RX_IT_DISABLE(__HANDLE__, __INTERRUPT__) (__HANDLE__)->Instance->MMCRIMR |= ((__INTERRUPT__) & 0xEFFFFFFFU) 1996 #define __HAL_ETH_MMC_TX_IT_ENABLE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->MMCRIMR &= ~ (__INTERRUPT__)) 2008 #define __HAL_ETH_MMC_TX_IT_DISABLE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->MMCRIMR |= (__INTERRUPT__)) 2014 #define __HAL_ETH_WAKEUP_EXTI_ENABLE_IT() EXTI->IMR |= (ETH_EXTI_LINE_WAKEUP) 2020 #define __HAL_ETH_WAKEUP_EXTI_DISABLE_IT() EXTI->IMR &= ~(ETH_EXTI_LINE_WAKEUP) 2026 #define __HAL_ETH_WAKEUP_EXTI_ENABLE_EVENT() EXTI->EMR |= (ETH_EXTI_LINE_WAKEUP) 2032 #define __HAL_ETH_WAKEUP_EXTI_DISABLE_EVENT() EXTI->EMR &= ~(ETH_EXTI_LINE_WAKEUP) 2038 #define __HAL_ETH_WAKEUP_EXTI_GET_FLAG() EXTI->PR & (ETH_EXTI_LINE_WAKEUP) 2044 #define __HAL_ETH_WAKEUP_EXTI_CLEAR_FLAG() EXTI->PR = (ETH_EXTI_LINE_WAKEUP) 2050 #define __HAL_ETH_WAKEUP_EXTI_ENABLE_RISING_EDGE_TRIGGER() EXTI->RTSR |= ETH_EXTI_LINE_WAKEUP 2056 #define __HAL_ETH_WAKEUP_EXTI_DISABLE_RISING_EDGE_TRIGGER() EXTI->RTSR &= ~(ETH_EXTI_LINE_WAKEUP) 2062 #define __HAL_ETH_WAKEUP_EXTI_ENABLE_FALLING_EDGE_TRIGGER() EXTI->FTSR |= (ETH_EXTI_LINE_WAKEUP) 2068 #define __HAL_ETH_WAKEUP_EXTI_DISABLE_FALLING_EDGE_TRIGGER() EXTI->FTSR &= ~(ETH_EXTI_LINE_WAKEUP) 2074 #define __HAL_ETH_WAKEUP_EXTI_ENABLE_FALLINGRISING_TRIGGER() do{EXTI->RTSR |= ETH_EXTI_LINE_WAKEUP;\ 2075 EXTI->FTSR |= ETH_EXTI_LINE_WAKEUP;\ 2082 #define __HAL_ETH_WAKEUP_EXTI_DISABLE_FALLINGRISING_TRIGGER() do{EXTI->RTSR &= ~(ETH_EXTI_LINE_WAKEUP);\ 2083 EXTI->FTSR &= ~(ETH_EXTI_LINE_WAKEUP);\ 2090 #define __HAL_ETH_WAKEUP_EXTI_GENERATE_SWIT() EXTI->SWIER|= ETH_EXTI_LINE_WAKEUP 2108 void HAL_ETH_MspInit(ETH_HandleTypeDef *heth);
2109 void HAL_ETH_MspDeInit(ETH_HandleTypeDef *heth);
2110 HAL_StatusTypeDef HAL_ETH_DMATxDescListInit(ETH_HandleTypeDef *heth, ETH_DMADescTypeDef *DMATxDescTab, uint8_t* TxBuff, uint32_t TxBuffCount);
2111 HAL_StatusTypeDef HAL_ETH_DMARxDescListInit(ETH_HandleTypeDef *heth, ETH_DMADescTypeDef *DMARxDescTab, uint8_t *RxBuff, uint32_t RxBuffCount);
2121 HAL_StatusTypeDef HAL_ETH_TransmitFrame(ETH_HandleTypeDef *heth, uint32_t FrameLength);
2124 HAL_StatusTypeDef HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint16_t PHYReg, uint32_t *RegValue);
2125 HAL_StatusTypeDef HAL_ETH_WritePHYRegister(ETH_HandleTypeDef *heth, uint16_t PHYReg, uint32_t RegValue);
2128 void HAL_ETH_IRQHandler(ETH_HandleTypeDef *heth);
2130 void HAL_ETH_TxCpltCallback(ETH_HandleTypeDef *heth);
2131 void HAL_ETH_RxCpltCallback(ETH_HandleTypeDef *heth);
2132 void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth);
2145 HAL_StatusTypeDef HAL_ETH_ConfigMAC(ETH_HandleTypeDef *heth, ETH_MACInitTypeDef *macconf);
2146 HAL_StatusTypeDef HAL_ETH_ConfigDMA(ETH_HandleTypeDef *heth, ETH_DMAInitTypeDef *dmaconf);
2156 HAL_ETH_StateTypeDef HAL_ETH_GetState(ETH_HandleTypeDef *heth);
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.
Definition: stm32f4xx_hal_def.h:57
#define __IO
Definition: core_cm0.h:213
Ethernet MAC.
Definition: stm32f407xx.h:386
HAL_LockTypeDef
HAL Lock structures definition.
Definition: stm32f4xx_hal_def.h:68