RTEMS 6.1-rc7
Loading...
Searching...
No Matches
stm32h7xx_hal_eth_ex.h
Go to the documentation of this file.
1
19/* Define to prevent recursive inclusion -------------------------------------*/
20#ifndef STM32H7xx_HAL_ETH_EX_H
21#define STM32H7xx_HAL_ETH_EX_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27#if defined(ETH)
28
29/* Includes ------------------------------------------------------------------*/
30#include "stm32h7xx_hal_def.h"
31
40/* Exported types ------------------------------------------------------------*/
49typedef struct
50{
51 FunctionalState InnerVLANTagInStatus;
53 uint32_t StripInnerVLANTag;
57 FunctionalState InnerVLANTag;
59 FunctionalState DoubleVLANProcessing;
61 FunctionalState VLANTagHashTableMatch;
63 FunctionalState VLANTagInStatus;
65 uint32_t StripVLANTag;
68 uint32_t VLANTypeCheck;
71 FunctionalState VLANTagInverceMatch;
72} ETH_RxVLANConfigTypeDef;
80typedef struct
81{
82 FunctionalState SourceTxDesc;
84 FunctionalState SVLANType;
86 uint32_t VLANTagControl;
88} ETH_TxVLANConfigTypeDef;
96typedef struct
97{
98 uint32_t Protocol;
101 uint32_t SrcAddrFilterMatch;
104 uint32_t DestAddrFilterMatch;
107 uint32_t SrcAddrHigherBitsMatch;
110 uint32_t DestAddrHigherBitsMatch;
113 uint32_t Ip4SrcAddr;
116 uint32_t Ip4DestAddr;
119 uint32_t Ip6Addr[4];
121} ETH_L3FilterConfigTypeDef;
129typedef struct
130{
131 uint32_t Protocol;
134 uint32_t SrcPortFilterMatch;
137 uint32_t DestPortFilterMatch;
140 uint32_t SourcePort;
143 uint32_t DestinationPort;
145} ETH_L4FilterConfigTypeDef;
154/* Exported constants --------------------------------------------------------*/
164#define ETH_TX_LPI_ENTRY ETH_MACLCSR_TLPIEN
165#define ETH_TX_LPI_EXIT ETH_MACLCSR_TLPIEX
166#define ETH_RX_LPI_ENTRY ETH_MACLCSR_RLPIEN
167#define ETH_RX_LPI_EXIT ETH_MACLCSR_RLPIEX
176#define ETH_L3_FILTER_0 0x00000000U
177#define ETH_L3_FILTER_1 0x0000000CU
186#define ETH_L4_FILTER_0 0x00000000U
187#define ETH_L4_FILTER_1 0x0000000CU
196#define ETH_L3_IPV6_MATCH ETH_MACL3L4CR_L3PEN
197#define ETH_L3_IPV4_MATCH 0x00000000U
206#define ETH_L3_SRC_ADDR_PERFECT_MATCH_ENABLE ETH_MACL3L4CR_L3SAM
207#define ETH_L3_SRC_ADDR_INVERSE_MATCH_ENABLE (ETH_MACL3L4CR_L3SAM | ETH_MACL3L4CR_L3SAIM)
208#define ETH_L3_SRC_ADDR_MATCH_DISABLE 0x00000000U
217#define ETH_L3_DEST_ADDR_PERFECT_MATCH_ENABLE ETH_MACL3L4CR_L3DAM
218#define ETH_L3_DEST_ADDR_INVERSE_MATCH_ENABLE (ETH_MACL3L4CR_L3DAM | ETH_MACL3L4CR_L3DAIM)
219#define ETH_L3_DEST_ADDR_MATCH_DISABLE 0x00000000U
228#define ETH_L4_UDP_MATCH ETH_MACL3L4CR_L4PEN
229#define ETH_L4_TCP_MATCH 0x00000000U
238#define ETH_L4_SRC_PORT_PERFECT_MATCH_ENABLE ETH_MACL3L4CR_L4SPM
239#define ETH_L4_SRC_PORT_INVERSE_MATCH_ENABLE (ETH_MACL3L4CR_L4SPM |ETH_MACL3L4CR_L4SPIM)
240#define ETH_L4_SRC_PORT_MATCH_DISABLE 0x00000000U
249#define ETH_L4_DEST_PORT_PERFECT_MATCH_ENABLE ETH_MACL3L4CR_L4DPM
250#define ETH_L4_DEST_PORT_INVERSE_MATCH_ENABLE (ETH_MACL3L4CR_L4DPM | ETH_MACL3L4CR_L4DPIM)
251#define ETH_L4_DEST_PORT_MATCH_DISABLE 0x00000000U
260#define ETH_INNERVLANTAGRXSTRIPPING_NONE ETH_MACVTR_EIVLS_DONOTSTRIP
261#define ETH_INNERVLANTAGRXSTRIPPING_IFPASS ETH_MACVTR_EIVLS_STRIPIFPASS
262#define ETH_INNERVLANTAGRXSTRIPPING_IFFAILS ETH_MACVTR_EIVLS_STRIPIFFAILS
263#define ETH_INNERVLANTAGRXSTRIPPING_ALWAYS ETH_MACVTR_EIVLS_ALWAYSSTRIP
272#define ETH_VLANTAGRXSTRIPPING_NONE ETH_MACVTR_EVLS_DONOTSTRIP
273#define ETH_VLANTAGRXSTRIPPING_IFPASS ETH_MACVTR_EVLS_STRIPIFPASS
274#define ETH_VLANTAGRXSTRIPPING_IFFAILS ETH_MACVTR_EVLS_STRIPIFFAILS
275#define ETH_VLANTAGRXSTRIPPING_ALWAYS ETH_MACVTR_EVLS_ALWAYSSTRIP
284#define ETH_VLANTYPECHECK_DISABLE ETH_MACVTR_DOVLTC
285#define ETH_VLANTYPECHECK_SVLAN (ETH_MACVTR_ERSVLM | ETH_MACVTR_ESVL)
286#define ETH_VLANTYPECHECK_CVLAN 0x00000000U
295#define ETH_VLANTAGCONTROL_NONE (ETH_MACVIR_VLP | ETH_MACVIR_VLC_NOVLANTAG)
296#define ETH_VLANTAGCONTROL_DELETE (ETH_MACVIR_VLP | ETH_MACVIR_VLC_VLANTAGDELETE)
297#define ETH_VLANTAGCONTROL_INSERT (ETH_MACVIR_VLP | ETH_MACVIR_VLC_VLANTAGINSERT)
298#define ETH_VLANTAGCONTROL_REPLACE (ETH_MACVIR_VLP | ETH_MACVIR_VLC_VLANTAGREPLACE)
307#define ETH_INNER_TX_VLANTAG 0x00000001U
308#define ETH_OUTER_TX_VLANTAG 0x00000000U
317/* Exported functions --------------------------------------------------------*/
325/* MAC ARP Offloading APIs ***************************************************/
326void HAL_ETHEx_EnableARPOffload(ETH_HandleTypeDef *heth);
327void HAL_ETHEx_DisableARPOffload(ETH_HandleTypeDef *heth);
328void HAL_ETHEx_SetARPAddressMatch(ETH_HandleTypeDef *heth, uint32_t IpAddress);
329
330/* MAC L3 L4 Filtering APIs ***************************************************/
331void HAL_ETHEx_EnableL3L4Filtering(ETH_HandleTypeDef *heth);
332void HAL_ETHEx_DisableL3L4Filtering(ETH_HandleTypeDef *heth);
333HAL_StatusTypeDef HAL_ETHEx_GetL3FilterConfig(const ETH_HandleTypeDef *heth, uint32_t Filter,
334 ETH_L3FilterConfigTypeDef *pL3FilterConfig);
335HAL_StatusTypeDef HAL_ETHEx_GetL4FilterConfig(const ETH_HandleTypeDef *heth, uint32_t Filter,
336 ETH_L4FilterConfigTypeDef *pL4FilterConfig);
337HAL_StatusTypeDef HAL_ETHEx_SetL3FilterConfig(ETH_HandleTypeDef *heth, uint32_t Filter,
338 const ETH_L3FilterConfigTypeDef *pL3FilterConfig);
339HAL_StatusTypeDef HAL_ETHEx_SetL4FilterConfig(ETH_HandleTypeDef *heth, uint32_t Filter,
340 const ETH_L4FilterConfigTypeDef *pL4FilterConfig);
341
342/* MAC VLAN Processing APIs ************************************************/
343void HAL_ETHEx_EnableVLANProcessing(ETH_HandleTypeDef *heth);
344void HAL_ETHEx_DisableVLANProcessing(ETH_HandleTypeDef *heth);
345HAL_StatusTypeDef HAL_ETHEx_GetRxVLANConfig(const ETH_HandleTypeDef *heth, ETH_RxVLANConfigTypeDef *pVlanConfig);
346HAL_StatusTypeDef HAL_ETHEx_SetRxVLANConfig(ETH_HandleTypeDef *heth, ETH_RxVLANConfigTypeDef *pVlanConfig);
347void HAL_ETHEx_SetVLANHashTable(ETH_HandleTypeDef *heth, uint32_t VLANHashTable);
348HAL_StatusTypeDef HAL_ETHEx_GetTxVLANConfig(const ETH_HandleTypeDef *heth, uint32_t VLANTag,
349 ETH_TxVLANConfigTypeDef *pVlanConfig);
350HAL_StatusTypeDef HAL_ETHEx_SetTxVLANConfig(ETH_HandleTypeDef *heth, uint32_t VLANTag,
351 const ETH_TxVLANConfigTypeDef *pVlanConfig);
352void HAL_ETHEx_SetTxVLANIdentifier(ETH_HandleTypeDef *heth, uint32_t VLANTag, uint32_t VLANIdentifier);
353
354/* Energy Efficient Ethernet APIs *********************************************/
355void HAL_ETHEx_EnterLPIMode(ETH_HandleTypeDef *heth, FunctionalState TxAutomate,
356 FunctionalState TxClockStop);
357void HAL_ETHEx_ExitLPIMode(ETH_HandleTypeDef *heth);
358uint32_t HAL_ETHEx_GetMACLPIEvent(const ETH_HandleTypeDef *heth);
359
376#endif /* ETH */
377
378#ifdef __cplusplus
379}
380#endif
381
382#endif /* STM32H7xx_HAL_ETH_EX_H */
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.
Definition: stm32h7xx_hal_def.h:47