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