File indexing completed on 2025-05-11 08:23:35
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef STM32H7xx_HAL_ETH_EX_H
0021 #define STM32H7xx_HAL_ETH_EX_H
0022
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026
0027 #if defined(ETH)
0028
0029
0030 #include "stm32h7xx_hal_def.h"
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049 typedef struct
0050 {
0051 FunctionalState InnerVLANTagInStatus;
0052
0053 uint32_t StripInnerVLANTag;
0054
0055
0056
0057 FunctionalState InnerVLANTag;
0058
0059 FunctionalState DoubleVLANProcessing;
0060
0061 FunctionalState VLANTagHashTableMatch;
0062
0063 FunctionalState VLANTagInStatus;
0064
0065 uint32_t StripVLANTag;
0066
0067
0068 uint32_t VLANTypeCheck;
0069
0070
0071 FunctionalState VLANTagInverceMatch;
0072 } ETH_RxVLANConfigTypeDef;
0073
0074
0075
0076
0077
0078
0079
0080 typedef struct
0081 {
0082 FunctionalState SourceTxDesc;
0083
0084 FunctionalState SVLANType;
0085
0086 uint32_t VLANTagControl;
0087
0088 } ETH_TxVLANConfigTypeDef;
0089
0090
0091
0092
0093
0094
0095
0096 typedef struct
0097 {
0098 uint32_t Protocol;
0099
0100
0101 uint32_t SrcAddrFilterMatch;
0102
0103
0104 uint32_t DestAddrFilterMatch;
0105
0106
0107 uint32_t SrcAddrHigherBitsMatch;
0108
0109
0110 uint32_t DestAddrHigherBitsMatch;
0111
0112
0113 uint32_t Ip4SrcAddr;
0114
0115
0116 uint32_t Ip4DestAddr;
0117
0118
0119 uint32_t Ip6Addr[4];
0120
0121 } ETH_L3FilterConfigTypeDef;
0122
0123
0124
0125
0126
0127
0128
0129 typedef struct
0130 {
0131 uint32_t Protocol;
0132
0133
0134 uint32_t SrcPortFilterMatch;
0135
0136
0137 uint32_t DestPortFilterMatch;
0138
0139
0140 uint32_t SourcePort;
0141
0142
0143 uint32_t DestinationPort;
0144
0145 } ETH_L4FilterConfigTypeDef;
0146
0147
0148
0149
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160
0161
0162
0163
0164 #define ETH_TX_LPI_ENTRY ETH_MACLCSR_TLPIEN
0165 #define ETH_TX_LPI_EXIT ETH_MACLCSR_TLPIEX
0166 #define ETH_RX_LPI_ENTRY ETH_MACLCSR_RLPIEN
0167 #define ETH_RX_LPI_EXIT ETH_MACLCSR_RLPIEX
0168
0169
0170
0171
0172
0173
0174
0175
0176 #define ETH_L3_FILTER_0 0x00000000U
0177 #define ETH_L3_FILTER_1 0x0000000CU
0178
0179
0180
0181
0182
0183
0184
0185
0186 #define ETH_L4_FILTER_0 0x00000000U
0187 #define ETH_L4_FILTER_1 0x0000000CU
0188
0189
0190
0191
0192
0193
0194
0195
0196 #define ETH_L3_IPV6_MATCH ETH_MACL3L4CR_L3PEN
0197 #define ETH_L3_IPV4_MATCH 0x00000000U
0198
0199
0200
0201
0202
0203
0204
0205
0206 #define ETH_L3_SRC_ADDR_PERFECT_MATCH_ENABLE ETH_MACL3L4CR_L3SAM
0207 #define ETH_L3_SRC_ADDR_INVERSE_MATCH_ENABLE (ETH_MACL3L4CR_L3SAM | ETH_MACL3L4CR_L3SAIM)
0208 #define ETH_L3_SRC_ADDR_MATCH_DISABLE 0x00000000U
0209
0210
0211
0212
0213
0214
0215
0216
0217 #define ETH_L3_DEST_ADDR_PERFECT_MATCH_ENABLE ETH_MACL3L4CR_L3DAM
0218 #define ETH_L3_DEST_ADDR_INVERSE_MATCH_ENABLE (ETH_MACL3L4CR_L3DAM | ETH_MACL3L4CR_L3DAIM)
0219 #define ETH_L3_DEST_ADDR_MATCH_DISABLE 0x00000000U
0220
0221
0222
0223
0224
0225
0226
0227
0228 #define ETH_L4_UDP_MATCH ETH_MACL3L4CR_L4PEN
0229 #define ETH_L4_TCP_MATCH 0x00000000U
0230
0231
0232
0233
0234
0235
0236
0237
0238 #define ETH_L4_SRC_PORT_PERFECT_MATCH_ENABLE ETH_MACL3L4CR_L4SPM
0239 #define ETH_L4_SRC_PORT_INVERSE_MATCH_ENABLE (ETH_MACL3L4CR_L4SPM |ETH_MACL3L4CR_L4SPIM)
0240 #define ETH_L4_SRC_PORT_MATCH_DISABLE 0x00000000U
0241
0242
0243
0244
0245
0246
0247
0248
0249 #define ETH_L4_DEST_PORT_PERFECT_MATCH_ENABLE ETH_MACL3L4CR_L4DPM
0250 #define ETH_L4_DEST_PORT_INVERSE_MATCH_ENABLE (ETH_MACL3L4CR_L4DPM | ETH_MACL3L4CR_L4DPIM)
0251 #define ETH_L4_DEST_PORT_MATCH_DISABLE 0x00000000U
0252
0253
0254
0255
0256
0257
0258
0259
0260 #define ETH_INNERVLANTAGRXSTRIPPING_NONE ETH_MACVTR_EIVLS_DONOTSTRIP
0261 #define ETH_INNERVLANTAGRXSTRIPPING_IFPASS ETH_MACVTR_EIVLS_STRIPIFPASS
0262 #define ETH_INNERVLANTAGRXSTRIPPING_IFFAILS ETH_MACVTR_EIVLS_STRIPIFFAILS
0263 #define ETH_INNERVLANTAGRXSTRIPPING_ALWAYS ETH_MACVTR_EIVLS_ALWAYSSTRIP
0264
0265
0266
0267
0268
0269
0270
0271
0272 #define ETH_VLANTAGRXSTRIPPING_NONE ETH_MACVTR_EVLS_DONOTSTRIP
0273 #define ETH_VLANTAGRXSTRIPPING_IFPASS ETH_MACVTR_EVLS_STRIPIFPASS
0274 #define ETH_VLANTAGRXSTRIPPING_IFFAILS ETH_MACVTR_EVLS_STRIPIFFAILS
0275 #define ETH_VLANTAGRXSTRIPPING_ALWAYS ETH_MACVTR_EVLS_ALWAYSSTRIP
0276
0277
0278
0279
0280
0281
0282
0283
0284 #define ETH_VLANTYPECHECK_DISABLE ETH_MACVTR_DOVLTC
0285 #define ETH_VLANTYPECHECK_SVLAN (ETH_MACVTR_ERSVLM | ETH_MACVTR_ESVL)
0286 #define ETH_VLANTYPECHECK_CVLAN 0x00000000U
0287
0288
0289
0290
0291
0292
0293
0294
0295 #define ETH_VLANTAGCONTROL_NONE (ETH_MACVIR_VLP | ETH_MACVIR_VLC_NOVLANTAG)
0296 #define ETH_VLANTAGCONTROL_DELETE (ETH_MACVIR_VLP | ETH_MACVIR_VLC_VLANTAGDELETE)
0297 #define ETH_VLANTAGCONTROL_INSERT (ETH_MACVIR_VLP | ETH_MACVIR_VLC_VLANTAGINSERT)
0298 #define ETH_VLANTAGCONTROL_REPLACE (ETH_MACVIR_VLP | ETH_MACVIR_VLC_VLANTAGREPLACE)
0299
0300
0301
0302
0303
0304
0305
0306
0307 #define ETH_INNER_TX_VLANTAG 0x00000001U
0308 #define ETH_OUTER_TX_VLANTAG 0x00000000U
0309
0310
0311
0312
0313
0314
0315
0316
0317
0318
0319
0320
0321
0322
0323
0324
0325
0326 void HAL_ETHEx_EnableARPOffload(ETH_HandleTypeDef *heth);
0327 void HAL_ETHEx_DisableARPOffload(ETH_HandleTypeDef *heth);
0328 void HAL_ETHEx_SetARPAddressMatch(ETH_HandleTypeDef *heth, uint32_t IpAddress);
0329
0330
0331 void HAL_ETHEx_EnableL3L4Filtering(ETH_HandleTypeDef *heth);
0332 void HAL_ETHEx_DisableL3L4Filtering(ETH_HandleTypeDef *heth);
0333 HAL_StatusTypeDef HAL_ETHEx_GetL3FilterConfig(const ETH_HandleTypeDef *heth, uint32_t Filter,
0334 ETH_L3FilterConfigTypeDef *pL3FilterConfig);
0335 HAL_StatusTypeDef HAL_ETHEx_GetL4FilterConfig(const ETH_HandleTypeDef *heth, uint32_t Filter,
0336 ETH_L4FilterConfigTypeDef *pL4FilterConfig);
0337 HAL_StatusTypeDef HAL_ETHEx_SetL3FilterConfig(ETH_HandleTypeDef *heth, uint32_t Filter,
0338 const ETH_L3FilterConfigTypeDef *pL3FilterConfig);
0339 HAL_StatusTypeDef HAL_ETHEx_SetL4FilterConfig(ETH_HandleTypeDef *heth, uint32_t Filter,
0340 const ETH_L4FilterConfigTypeDef *pL4FilterConfig);
0341
0342
0343 void HAL_ETHEx_EnableVLANProcessing(ETH_HandleTypeDef *heth);
0344 void HAL_ETHEx_DisableVLANProcessing(ETH_HandleTypeDef *heth);
0345 HAL_StatusTypeDef HAL_ETHEx_GetRxVLANConfig(const ETH_HandleTypeDef *heth, ETH_RxVLANConfigTypeDef *pVlanConfig);
0346 HAL_StatusTypeDef HAL_ETHEx_SetRxVLANConfig(ETH_HandleTypeDef *heth, ETH_RxVLANConfigTypeDef *pVlanConfig);
0347 void HAL_ETHEx_SetVLANHashTable(ETH_HandleTypeDef *heth, uint32_t VLANHashTable);
0348 HAL_StatusTypeDef HAL_ETHEx_GetTxVLANConfig(const ETH_HandleTypeDef *heth, uint32_t VLANTag,
0349 ETH_TxVLANConfigTypeDef *pVlanConfig);
0350 HAL_StatusTypeDef HAL_ETHEx_SetTxVLANConfig(ETH_HandleTypeDef *heth, uint32_t VLANTag,
0351 const ETH_TxVLANConfigTypeDef *pVlanConfig);
0352 void HAL_ETHEx_SetTxVLANIdentifier(ETH_HandleTypeDef *heth, uint32_t VLANTag, uint32_t VLANIdentifier);
0353
0354
0355 void HAL_ETHEx_EnterLPIMode(ETH_HandleTypeDef *heth, FunctionalState TxAutomate,
0356 FunctionalState TxClockStop);
0357 void HAL_ETHEx_ExitLPIMode(ETH_HandleTypeDef *heth);
0358 uint32_t HAL_ETHEx_GetMACLPIEvent(const ETH_HandleTypeDef *heth);
0359
0360
0361
0362
0363
0364
0365
0366
0367
0368
0369
0370
0371
0372
0373
0374
0375
0376 #endif
0377
0378 #ifdef __cplusplus
0379 }
0380 #endif
0381
0382 #endif