RTEMS 6.1-rc7
Loading...
Searching...
No Matches
stm32h7xx_hal_eth_ex_legacy.h
Go to the documentation of this file.
1
19/* Define to prevent recursive inclusion -------------------------------------*/
20#ifndef STM32H7xx_HAL_ETH_EX_LEGACY_H
21#define STM32H7xx_HAL_ETH_EX_LEGACY_H
22
23#ifdef __cplusplus
24 extern "C" {
25#endif
26
27#if defined(ETH)
28
29/* Includes ------------------------------------------------------------------*/
30#include "stm32h7xx_hal_def.h"
31
40/* Exported types ------------------------------------------------------------*/
49typedef struct{
50 FunctionalState InnerVLANTagInStatus;
52 uint32_t StripInnerVLANTag;
55 FunctionalState InnerVLANTag;
57 FunctionalState DoubleVLANProcessing;
59 FunctionalState VLANTagHashTableMatch;
61 FunctionalState VLANTagInStatus;
63 uint32_t StripVLANTag;
66 uint32_t VLANTypeCheck;
69 FunctionalState VLANTagInverceMatch;
70}ETH_RxVLANConfigTypeDef;
78typedef struct{
79 FunctionalState SourceTxDesc;
81 FunctionalState SVLANType;
83 uint32_t VLANTagControl;
85}ETH_TxVLANConfigTypeDef;
93typedef struct{
94 uint32_t Protocol;
97 uint32_t SrcAddrFilterMatch;
100 uint32_t DestAddrFilterMatch;
103 uint32_t SrcAddrHigherBitsMatch;
106 uint32_t DestAddrHigherBitsMatch;
109 uint32_t Ip4SrcAddr;
112 uint32_t Ip4DestAddr;
115 uint32_t Ip6Addr[4];
117}ETH_L3FilterConfigTypeDef;
125typedef struct{
126 uint32_t Protocol;
129 uint32_t SrcPortFilterMatch;
132 uint32_t DestPortFilterMatch;
135 uint32_t SourcePort;
138 uint32_t DestinationPort;
140}ETH_L4FilterConfigTypeDef;
149/* Exported constants --------------------------------------------------------*/
159#define ETH_TX_LPI_ENTRY ETH_MACLCSR_TLPIEN
160#define ETH_TX_LPI_EXIT ETH_MACLCSR_TLPIEX
161#define ETH_RX_LPI_ENTRY ETH_MACLCSR_RLPIEN
162#define ETH_RX_LPI_EXIT ETH_MACLCSR_RLPIEX
171#define ETH_L3_FILTER_0 ((uint32_t)0x00000000)
172#define ETH_L3_FILTER_1 ((uint32_t)0x0000000C)
181#define ETH_L4_FILTER_0 ((uint32_t)0x00000000)
182#define ETH_L4_FILTER_1 ((uint32_t)0x0000000C)
191#define ETH_L3_IPV6_MATCH ETH_MACL3L4CR_L3PEN
192#define ETH_L3_IPV4_MATCH ((uint32_t)0x00000000)
201#define ETH_L3_SRC_ADDR_PERFECT_MATCH_ENABLE ETH_MACL3L4CR_L3SAM
202#define ETH_L3_SRC_ADDR_INVERSE_MATCH_ENABLE (ETH_MACL3L4CR_L3SAM | ETH_MACL3L4CR_L3SAIM)
203#define ETH_L3_SRC_ADDR_MATCH_DISABLE ((uint32_t)0x00000000)
212#define ETH_L3_DEST_ADDR_PERFECT_MATCH_ENABLE ETH_MACL3L4CR_L3DAM
213#define ETH_L3_DEST_ADDR_INVERSE_MATCH_ENABLE (ETH_MACL3L4CR_L3DAM | ETH_MACL3L4CR_L3DAIM)
214#define ETH_L3_DEST_ADDR_MATCH_DISABLE ((uint32_t)0x00000000)
223#define ETH_L4_UDP_MATCH ETH_MACL3L4CR_L4PEN
224#define ETH_L4_TCP_MATCH ((uint32_t)0x00000000)
233#define ETH_L4_SRC_PORT_PERFECT_MATCH_ENABLE ETH_MACL3L4CR_L4SPM
234#define ETH_L4_SRC_PORT_INVERSE_MATCH_ENABLE (ETH_MACL3L4CR_L4SPM |ETH_MACL3L4CR_L4SPIM)
235#define ETH_L4_SRC_PORT_MATCH_DISABLE ((uint32_t)0x00000000)
244#define ETH_L4_DEST_PORT_PERFECT_MATCH_ENABLE ETH_MACL3L4CR_L4DPM
245#define ETH_L4_DEST_PORT_INVERSE_MATCH_ENABLE (ETH_MACL3L4CR_L4DPM | ETH_MACL3L4CR_L4DPIM)
246#define ETH_L4_DEST_PORT_MATCH_DISABLE ((uint32_t)0x00000000)
255#define ETH_INNERVLANTAGRXSTRIPPING_NONE ETH_MACVTR_EIVLS_DONOTSTRIP
256#define ETH_INNERVLANTAGRXSTRIPPING_IFPASS ETH_MACVTR_EIVLS_STRIPIFPASS
257#define ETH_INNERVLANTAGRXSTRIPPING_IFFAILS ETH_MACVTR_EIVLS_STRIPIFFAILS
258#define ETH_INNERVLANTAGRXSTRIPPING_ALWAYS ETH_MACVTR_EIVLS_ALWAYSSTRIP
267#define ETH_VLANTAGRXSTRIPPING_NONE ETH_MACVTR_EVLS_DONOTSTRIP
268#define ETH_VLANTAGRXSTRIPPING_IFPASS ETH_MACVTR_EVLS_STRIPIFPASS
269#define ETH_VLANTAGRXSTRIPPING_IFFAILS ETH_MACVTR_EVLS_STRIPIFFAILS
270#define ETH_VLANTAGRXSTRIPPING_ALWAYS ETH_MACVTR_EVLS_ALWAYSSTRIP
279#define ETH_VLANTYPECHECK_DISABLE ETH_MACVTR_DOVLTC
280#define ETH_VLANTYPECHECK_SVLAN (ETH_MACVTR_ERSVLM | ETH_MACVTR_ESVL)
281#define ETH_VLANTYPECHECK_CVLAN ((uint32_t)0x00000000)
290#define ETH_VLANTAGCONTROL_NONE (ETH_MACVIR_VLP | ETH_MACVIR_VLC_NOVLANTAG)
291#define ETH_VLANTAGCONTROL_DELETE (ETH_MACVIR_VLP | ETH_MACVIR_VLC_VLANTAGDELETE)
292#define ETH_VLANTAGCONTROL_INSERT (ETH_MACVIR_VLP | ETH_MACVIR_VLC_VLANTAGINSERT)
293#define ETH_VLANTAGCONTROL_REPLACE (ETH_MACVIR_VLP | ETH_MACVIR_VLC_VLANTAGREPLACE)
302#define ETH_INNER_TX_VLANTAG ((uint32_t)0x00000001U)
303#define ETH_OUTER_TX_VLANTAG ((uint32_t)0x00000000U)
312/* Exported functions --------------------------------------------------------*/
320/* MAC ARP Offloading APIs ***************************************************/
321void HAL_ETHEx_EnableARPOffload(ETH_HandleTypeDef *heth);
322void HAL_ETHEx_DisableARPOffload(ETH_HandleTypeDef *heth);
323void HAL_ETHEx_SetARPAddressMatch(ETH_HandleTypeDef *heth, uint32_t IpAddress);
324
325/* MAC L3 L4 Filtering APIs ***************************************************/
326void HAL_ETHEx_EnableL3L4Filtering(ETH_HandleTypeDef *heth);
327void HAL_ETHEx_DisableL3L4Filtering(ETH_HandleTypeDef *heth);
328HAL_StatusTypeDef HAL_ETHEx_GetL3FilterConfig(ETH_HandleTypeDef *heth, uint32_t Filter, ETH_L3FilterConfigTypeDef *pL3FilterConfig);
329HAL_StatusTypeDef HAL_ETHEx_GetL4FilterConfig(ETH_HandleTypeDef *heth, uint32_t Filter, ETH_L4FilterConfigTypeDef *pL4FilterConfig);
330HAL_StatusTypeDef HAL_ETHEx_SetL3FilterConfig(ETH_HandleTypeDef *heth, uint32_t Filter, ETH_L3FilterConfigTypeDef *pL3FilterConfig);
331HAL_StatusTypeDef HAL_ETHEx_SetL4FilterConfig(ETH_HandleTypeDef *heth, uint32_t Filter, ETH_L4FilterConfigTypeDef *pL4FilterConfig);
332
333/* MAC VLAN Processing APIs ************************************************/
334void HAL_ETHEx_EnableVLANProcessing(ETH_HandleTypeDef *heth);
335void HAL_ETHEx_DisableVLANProcessing(ETH_HandleTypeDef *heth);
336HAL_StatusTypeDef HAL_ETHEx_GetRxVLANConfig(ETH_HandleTypeDef *heth, ETH_RxVLANConfigTypeDef *pVlanConfig);
337HAL_StatusTypeDef HAL_ETHEx_SetRxVLANConfig(ETH_HandleTypeDef *heth, ETH_RxVLANConfigTypeDef *pVlanConfig);
338void HAL_ETHEx_SetVLANHashTable(ETH_HandleTypeDef *heth, uint32_t VLANHashTable);
339HAL_StatusTypeDef HAL_ETHEx_GetTxVLANConfig(ETH_HandleTypeDef *heth, uint32_t VLANTag ,ETH_TxVLANConfigTypeDef *pVlanConfig);
340HAL_StatusTypeDef HAL_ETHEx_SetTxVLANConfig(ETH_HandleTypeDef *heth, uint32_t VLANTag ,ETH_TxVLANConfigTypeDef *pVlanConfig);
341void HAL_ETHEx_SetTxVLANIdentifier(ETH_HandleTypeDef *heth, uint32_t VLANTag ,uint32_t VLANIdentifier);
342
343/* Energy Efficient Ethernet APIs *********************************************/
344void HAL_ETHEx_EnterLPIMode(ETH_HandleTypeDef *heth, FunctionalState TxAutomate, FunctionalState TxClockStop);
345void HAL_ETHEx_ExitLPIMode(ETH_HandleTypeDef *heth);
346uint32_t HAL_ETHEx_GetMACLPIEvent(ETH_HandleTypeDef *heth);
347
364#endif /* ETH */
365
366#ifdef __cplusplus
367}
368#endif
369
370#endif /* STM32H7xx_HAL_ETH_EX_LEGACY_H */
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.
Definition: stm32h7xx_hal_def.h:47