18#if VSF_HAL_USE_ETH == ENABLED
23#if defined(VSF_ETH_CFG_IMP_RENAME_DEVICE_PREFIX) && (VSF_ETH_CFG_IMP_RENAME_DEVICE_PREFIX == ENABLED)
24# define vsf_real_eth_t VSF_MCONNECT(VSF_ETH_CFG_IMP_DEVICE_PREFIX, _t)
25# define vsf_real_eth_capability VSF_MCONNECT(VSF_ETH_CFG_IMP_DEVICE_PREFIX, _capability)
26# define vsf_real_eth_get_configuration VSF_MCONNECT(VSF_ETH_CFG_IMP_DEVICE_PREFIX, _get_configuration)
28# define vsf_real_eth_t VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_t)
29# define vsf_real_eth_capability VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_capability)
30# define vsf_real_eth_get_configuration VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_get_configuration)
33#ifndef VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY
34# define VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY DISABLED
37#ifndef VSF_ETH_CFG_REIMPLEMENT_API_GET_CONFIGURATION
38# define VSF_ETH_CFG_REIMPLEMENT_API_GET_CONFIGURATION DISABLED
41#ifdef VSF_ETH_CFG_IMP_REMAP_PREFIX
42# undef VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY
43# define VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY ENABLED
44# undef VSF_ETH_CFG_REIMPLEMENT_API_GET_CONFIGURATION
45# define VSF_ETH_CFG_REIMPLEMENT_API_GET_CONFIGURATION ENABLED
46# undef VSF_ETH_CFG_REIMPLEMENT_API_IRQ_CLEAR
47# define VSF_ETH_CFG_REIMPLEMENT_API_IRQ_CLEAR ENABLED
50#if VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
56#if VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
63 return eth_capability;
67#if VSF_ETH_CFG_REIMPLEMENT_API_GET_CONFIGURATION == DISABLED
80#if VSF_ETH_CFG_REIMPLEMENT_API_IRQ_CLEAR == DISABLED
94#undef VSF_ETH_CFG_REIMPLEMENT_TYPE_BUF_DESC
95#undef VSF_ETH_CFG_REIMPLEMENT_TYPE_BUF_MODE
96#undef VSF_ETH_CFG_REIMPLEMENT_TYPE_CAPABILITY
97#undef VSF_ETH_CFG_REIMPLEMENT_TYPE_CFG
98#undef VSF_ETH_CFG_REIMPLEMENT_TYPE_CTRL
99#undef VSF_ETH_CFG_REIMPLEMENT_TYPE_IRQ_MASK
100#undef VSF_ETH_CFG_REIMPLEMENT_TYPE_MODE
101#undef VSF_ETH_CFG_REIMPLEMENT_TYPE_PHY_MODE
102#undef VSF_ETH_CFG_REIMPLEMENT_TYPE_RECV_BUF_DESC
103#undef VSF_ETH_CFG_REIMPLEMENT_TYPE_SEND_BUF_DESC
104#undef VSF_ETH_CFG_REIMPLEMENT_TYPE_SG_RECV_BUF
105#undef VSF_ETH_CFG_REIMPLEMENT_TYPE_SG_SEND_BUF
106#undef VSF_ETH_CFG_REIMPLEMENT_TYPE_STATUS
107#undef VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY
108#undef VSF_ETH_CFG_REIMPLEMENT_API_GET_CONFIGURATION
109#undef VSF_ETH_CFG_REIMPLEMENT_API_IRQ_CLEAR
112#undef vsf_real_eth_capability
113#undef vsf_real_eth_get_configuration
114#undef vsf_real_eth_irq_clear
115#undef vsf_real_eth_phy_read_reg
116#undef vsf_real_eth_phy_write_reg
117#undef vsf_real_eth_phy_set_mode
118#undef vsf_real_eth_phy_get_link_status
122#ifdef VSF_ETH_CFG_IMP_REMAP_PREFIX
124# define vsf_imp_eth_t VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_t)
125# define vsf_imp_eth_init VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_init)
126# define vsf_imp_eth_fini VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_fini)
127# define vsf_imp_eth_enable VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_enable)
128# define vsf_imp_eth_disable VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_disable)
129# define vsf_imp_eth_capability VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_capability)
130# define vsf_imp_eth_status VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_status)
131# define vsf_imp_eth_send_request VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_send_request)
132# define vsf_imp_eth_recv_request VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_recv_request)
133# define vsf_imp_eth_send_sg_request VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_send_sg_request)
134# define vsf_imp_eth_recv_sg_request VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_recv_sg_request)
135# define vsf_imp_eth_ctrl VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_ctrl)
136# define vsf_imp_eth_phy_read_reg VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_phy_read_reg)
137# define vsf_imp_eth_phy_write_reg VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_phy_write_reg)
138# define vsf_imp_eth_phy_set_mode VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_phy_set_mode)
139# define vsf_imp_eth_phy_get_link_status VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_phy_get_link_status)
140# define vsf_imp_eth_get_configuration VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_get_configuration)
142# define vsf_remap_eth_t VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_t)
143# define vsf_remap_eth_init VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_init)
144# define vsf_remap_eth_fini VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_fini)
145# define vsf_remap_eth_enable VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_enable)
146# define vsf_remap_eth_disable VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_disable)
147# define vsf_remap_eth_capability VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_capability)
148# define vsf_remap_eth_status VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_status)
149# define vsf_remap_eth_send_request VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_send_request)
150# define vsf_remap_eth_recv_request VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_recv_request)
151# define vsf_remap_eth_send_sg_request VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_send_sg_request)
152# define vsf_remap_eth_recv_sg_request VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_recv_sg_request)
153# define vsf_remap_eth_ctrl VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_ctrl)
154# define vsf_remap_eth_phy_read_reg VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_phy_read_reg)
155# define vsf_remap_eth_phy_write_reg VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_phy_write_reg)
156# define vsf_remap_eth_phy_set_mode VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_phy_set_mode)
157# define vsf_remap_eth_phy_get_link_status VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_phy_get_link_status)
158# define vsf_remap_eth_get_configuration VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_get_configuration)
160# define VSF_ETH_CFG_IMP_REMAP_FUNCTIONS \
161 vsf_err_t vsf_imp_eth_init(vsf_imp_eth_t *eth_ptr, vsf_eth_cfg_t *cfg_ptr) \
163 VSF_HAL_ASSERT(eth_ptr != NULL); \
164 return vsf_remap_eth_init(eth_ptr, cfg_ptr); \
166 void vsf_imp_eth_fini(vsf_imp_eth_t *eth_ptr) \
168 VSF_HAL_ASSERT(eth_ptr != NULL); \
169 vsf_remap_eth_fini(eth_ptr); \
171 fsm_rt_t vsf_imp_eth_enable(vsf_imp_eth_t *eth_ptr) \
173 VSF_HAL_ASSERT(eth_ptr != NULL); \
174 return vsf_remap_eth_enable(eth_ptr); \
176 fsm_rt_t vsf_imp_eth_disable(vsf_imp_eth_t *eth_ptr) \
178 VSF_HAL_ASSERT(eth_ptr != NULL); \
179 return vsf_remap_eth_disable(eth_ptr); \
181 vsf_eth_status_t vsf_imp_eth_status(vsf_imp_eth_t *eth_ptr) \
183 VSF_HAL_ASSERT(eth_ptr != NULL); \
184 return vsf_remap_eth_status(eth_ptr); \
186 vsf_eth_capability_t vsf_imp_eth_capability(vsf_imp_eth_t *eth_ptr) \
188 VSF_HAL_ASSERT(eth_ptr != NULL); \
189 return vsf_remap_eth_capability(eth_ptr); \
191 vsf_err_t vsf_imp_eth_send_request(vsf_imp_eth_t *eth_ptr, \
192 vsf_eth_send_buf_desc_t *buf_ptr) \
194 VSF_HAL_ASSERT(eth_ptr != NULL); \
195 return vsf_remap_eth_send_request(eth_ptr, buf_ptr); \
197 vsf_err_t vsf_imp_eth_recv_request(vsf_imp_eth_t *eth_ptr, \
198 vsf_eth_recv_buf_desc_t *buf_ptr) \
200 VSF_HAL_ASSERT(eth_ptr != NULL); \
201 return vsf_remap_eth_recv_request(eth_ptr, buf_ptr); \
203 vsf_err_t vsf_imp_eth_send_sg_request(vsf_imp_eth_t *eth_ptr, \
204 vsf_eth_send_sg_buf_desc_t *buf_ptr, uint32_t sg_count) \
206 VSF_HAL_ASSERT(eth_ptr != NULL); \
207 return vsf_remap_eth_send_sg_request(eth_ptr, buf_ptr, sg_count); \
209 vsf_err_t vsf_imp_eth_recv_sg_request(vsf_imp_eth_t *eth_ptr, \
210 vsf_eth_recv_sg_buf_desc_t *buf_ptr, uint32_t sg_count) \
212 VSF_HAL_ASSERT(eth_ptr != NULL); \
213 return vsf_remap_eth_recv_sg_request(eth_ptr, buf_ptr, sg_count); \
215 vsf_err_t vsf_imp_eth_ctrl(vsf_imp_eth_t *eth_ptr, \
216 vsf_eth_ctrl_t ctrl, void *param) \
218 VSF_HAL_ASSERT(eth_ptr != NULL); \
219 return vsf_remap_eth_ctrl(eth_ptr, ctrl, param); \
221 vsf_eth_capability_t vsf_imp_eth_capability(vsf_imp_eth_t *eth_ptr) \
223 VSF_HAL_ASSERT(eth_ptr != NULL); \
224 return vsf_remap_eth_capability(eth_ptr); \
226 vsf_err_t vsf_imp_eth_phy_read_reg(vsf_imp_eth_t *eth_ptr, \
227 uint16_t reg_addr, uint32_t *value_ptr) \
229 VSF_HAL_ASSERT(eth_ptr != NULL); \
230 return vsf_remap_eth_phy_read_reg(eth_ptr, reg_addr, value_ptr); \
232 vsf_err_t vsf_imp_eth_phy_write_reg(vsf_imp_eth_t *eth_ptr, \
233 uint16_t reg_addr, uint32_t value) \
235 VSF_HAL_ASSERT(eth_ptr != NULL); \
236 return vsf_remap_eth_phy_write_reg(eth_ptr, reg_addr, value); \
238 vsf_err_t vsf_imp_eth_phy_set_mode(vsf_imp_eth_t *eth_ptr, \
239 vsf_eth_mode_t mode) \
241 VSF_HAL_ASSERT(eth_ptr != NULL); \
242 return vsf_remap_eth_phy_set_mode(eth_ptr, mode); \
244 vsf_err_t vsf_imp_eth_phy_get_link_status(vsf_imp_eth_t *eth_ptr, \
245 vsf_eth_mode_t * phy_mode_ptr) \
247 VSF_HAL_ASSERT(eth_ptr != NULL); \
248 return vsf_remap_eth_phy_get_link_status(eth_ptr, phy_mode_ptr); \
251 vsf_err_t vsf_imp_eth_get_configuration(vsf_imp_eth_t *eth_ptr, \
252 vsf_eth_cfg_t *cfg_ptr) \
254 VSF_HAL_ASSERT(eth_ptr != NULL); \
255 return vsf_remap_eth_get_configuration(eth_ptr, cfg_ptr); \
261#define VSF_HAL_TEMPLATE_IMP_NAME _eth
262#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME _ETH
264#if !defined(VSF_ETH_CFG_IMP_PREFIX) && !defined(VSF_ETH_CFG_IMP_DEVICE_PREFIX)
265# error "Please define VSF_ETH_CFG_IMP_PREFIX in eth driver"
268#if !defined(VSF_ETH_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_ETH_CFG_IMP_DEVICE_UPCASE_PREFIX)
269# error "Please define VSF_ETH_CFG_IMP_UPCASE_PREFIX in eth driver"
272#ifndef VSF_ETH_CFG_IMP_COUNT_MASK_PREFIX
273# define VSF_ETH_CFG_IMP_COUNT_MASK_PREFIX VSF_ETH_CFG_IMP_UPCASE_PREFIX
276#ifdef VSF_ETH_CFG_IMP_REMAP_FUNCTIONS
277# define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS VSF_ETH_CFG_IMP_REMAP_FUNCTIONS
282#undef VSF_ETH_CFG_IMP_PREFIX
283#undef VSF_ETH_CFG_IMP_COUNT_MASK_PREFIX
284#undef VSF_ETH_CFG_IMP_UPCASE_PREFIX
285#undef VSF_ETH_CFG_IMP_DEVICE_PREFIX
286#undef VSF_ETH_CFG_IMP_DEVICE_UPCASE_PREFIX
287#undef VSF_ETH_CFG_IMP_LV0
288#undef VSF_ETH_CFG_IMP_REMAP_FUNCTIONS
289#undef VSF_ETH_CFG_IMP_RENAME_DEVICE_PREFIX
290#undef VSF_ETH_CFG_IMP_HAS_OP
291#undef VSF_ETH_CFG_IMP_EXTERN_OP
294#undef vsf_imp_eth_init
295#undef vsf_imp_eth_fini
296#undef vsf_imp_eth_enable
297#undef vsf_imp_eth_disable
298#undef vsf_imp_eth_status
299#undef vsf_imp_eth_capability
300#undef vsf_imp_eth_send_request
301#undef vsf_imp_eth_recv_request
302#undef vsf_imp_eth_send_sg_request
303#undef vsf_imp_eth_recv_sg_request
304#undef vsf_imp_eth_ctrl
305#undef vsf_imp_eth_phy_read_reg
306#undef vsf_imp_eth_phy_write_reg
307#undef vsf_imp_eth_phy_set_mode
308#undef vsf_imp_eth_phy_get_link_status
309#undef vsf_imp_eth_get_configuration
311#undef vsf_remap_eth_t
312#undef vsf_remap_eth_init
313#undef vsf_remap_eth_fini
314#undef vsf_remap_eth_enable
315#undef vsf_remap_eth_disable
316#undef vsf_remap_eth_status
317#undef vsf_remap_eth_capability
318#undef vsf_remap_eth_send_request
319#undef vsf_remap_eth_recv_request
320#undef vsf_remap_eth_send_sg_request
321#undef vsf_remap_eth_recv_sg_request
322#undef vsf_remap_eth_ctrl
323#undef vsf_remap_eth_phy_read_reg
324#undef vsf_remap_eth_phy_write_reg
325#undef vsf_remap_eth_phy_set_mode
326#undef vsf_remap_eth_phy_get_link_status
327#undef vsf_remap_eth_get_configuration
329#undef VSF_HAL_TEMPLATE_IMP_NAME
330#undef VSF_HAL_TEMPLATE_IMP_UPCASE_NAME
355#ifdef VSF_ETH_CFG_MODE_CHECK_UNIQUE
357#ifndef VSF_ETH_CHECK_UNIQUE_MODE_OFFLOAD_MODES
358# define VSF_ETH_CHECK_UNIQUE_MODE_OFFLOAD_MODES \
359 VSF_ETH_MODE_TX_CHECKSUM_OFFLOAD, \
360 VSF_ETH_MODE_RX_CHECKSUM_OFFLOAD
371#ifdef VSF_ETH_CUSTOM_MODE_VALUES
382#ifdef VSF_ETH_MODE_UNICAST_FILTER
383 , VSF_ETH_MODE_UNICAST_FILTER
385#ifdef VSF_ETH_MODE_MULTICAST_FILTER
386 , VSF_ETH_MODE_MULTICAST_FILTER
388#ifdef VSF_ETH_MODE_BROADCAST_FILTER
389 , VSF_ETH_MODE_BROADCAST_FILTER
391#ifdef VSF_ETH_MODE_VLAN_TAGGING
392 , VSF_ETH_MODE_VLAN_TAGGING
394#ifdef VSF_ETH_MODE_VLAN_FILTERING
395 , VSF_ETH_MODE_VLAN_FILTERING
397#ifdef VSF_ETH_MODE_VLAN_STRIPPING
398 , VSF_ETH_MODE_VLAN_STRIPPING
400#ifdef VSF_ETH_MODE_VLAN_INSERTION
401 , VSF_ETH_MODE_VLAN_INSERTION
403#ifdef VSF_ETH_MODE_JUMBO_FRAME
404 , VSF_ETH_MODE_JUMBO_FRAME
406#ifdef VSF_ETH_MODE_FLOW_CONTROL
407 , VSF_ETH_MODE_FLOW_CONTROL
409#ifdef VSF_ETH_MODE_PAUSE_FRAME
410 , VSF_ETH_MODE_PAUSE_FRAME
412#ifdef VSF_ETH_MODE_PRIORITY_QUEUE
413 , VSF_ETH_MODE_PRIORITY_QUEUE
415#ifdef VSF_ETH_MODE_QOS
418#ifdef VSF_ETH_MODE_PTP_TIMESTAMP
419 , VSF_ETH_MODE_PTP_TIMESTAMP
421#ifdef VSF_ETH_MODE_TCP_SEGMENTATION
422 , VSF_ETH_MODE_TCP_SEGMENTATION
424#ifdef VSF_ETH_MODE_LARGE_RECEIVE
425 , VSF_ETH_MODE_LARGE_RECEIVE
429#ifdef VSF_ETH_CUSTOM_MODE_VALUES
430 , VSF_ETH_CUSTOM_MODE_VALUES
434#undef VSF_ETH_CHECK_UNIQUE_MODE_OFFLOAD_MODES
439#ifdef VSF_ETH_CFG_IRQ_MASK_CHECK_UNIQUE
441#ifdef VSF_ETH_CUSTOM_IRQ_MASK_VALUES
463#ifdef VSF_ETH_CUSTOM_IRQ_MASK_VALUES
464 , VSF_ETH_CUSTOM_IRQ_MASK_VALUES
469#undef VSF_ETH_CFG_MODE_CHECK_UNIQUE
470#undef VSF_ETH_CFG_IRQ_MASK_CHECK_UNIQUE
471#undef VSF_ETH_CUSTOM_MODE_VALUES
472#undef VSF_ETH_CUSTOM_IRQ_MASK_VALUES
476#ifdef VSF_ETH_CFG_PHY_MODE_CHECK_UNIQUE
478#ifndef VSF_ETH_CHECK_UNIQUE_PHY_MODE_SPEED_MODES
479# define VSF_ETH_CHECK_UNIQUE_PHY_MODE_SPEED_MODES \
480 VSF_ETH_PHY_MODE_SPEED_10M, \
481 VSF_ETH_PHY_MODE_SPEED_100M, \
482 VSF_ETH_PHY_MODE_SPEED_1000M
485#ifndef VSF_ETH_CHECK_UNIQUE_PHY_MODE_DUPLEX_MODES
486# define VSF_ETH_CHECK_UNIQUE_PHY_MODE_DUPLEX_MODES \
487 VSF_ETH_PHY_MODE_DUPLEX_HALF, \
488 VSF_ETH_PHY_MODE_DUPLEX_FULL
491#ifndef VSF_ETH_CHECK_UNIQUE_PHY_MODE_LINK_MODES
492# define VSF_ETH_CHECK_UNIQUE_PHY_MODE_LINK_MODES \
493 VSF_ETH_PHY_MODE_LINK_UP
514#ifdef VSF_ETH_CUSTOM_PHY_MODE_VALUES
520 VSF_ETH_CFG_PHY_MODE_CHECK_UNIQUE,
526#ifdef VSF_ETH_CUSTOM_PHY_MODE_VALUES
527 , VSF_ETH_CUSTOM_PHY_MODE_VALUES
531#undef VSF_ETH_CHECK_UNIQUE_PHY_MODE_SPEED_MODES
532#undef VSF_ETH_CHECK_UNIQUE_PHY_MODE_DUPLEX_MODES
533#undef VSF_ETH_CHECK_UNIQUE_PHY_MODE_LINK_MODES
538#ifdef VSF_ETH_CFG_BUF_MODE_CHECK_UNIQUE
548 VSF_ETH_CFG_BUF_MODE_CHECK_UNIQUE,
553#ifdef VSF_ETH_CUSTOM_BUF_MODE_VALUES
559 VSF_ETH_CFG_BUF_MODE_CHECK_UNIQUE,
563#ifdef VSF_ETH_CUSTOM_BUF_MODE_VALUES
564 , VSF_ETH_CUSTOM_BUF_MODE_VALUES
571#ifdef VSF_ETH_CFG_CTRL_CHECK_UNIQUE
573#ifdef VSF_ETH_CUSTOM_CTRL_VALUES
582 VSF_ETH_CFG_CTRL_CHECK_UNIQUE,
586#ifdef VSF_ETH_CUSTOM_CTRL_VALUES
587 , VSF_ETH_CUSTOM_CTRL_VALUES
592#undef VSF_ETH_CFG_PHY_MODE_CHECK_UNIQUE
593#undef VSF_ETH_CFG_BUF_MODE_CHECK_UNIQUE
594#undef VSF_ETH_CFG_CTRL_CHECK_UNIQUE
595#undef VSF_ETH_CUSTOM_PHY_MODE_VALUES
596#undef VSF_ETH_CUSTOM_BUF_MODE_VALUES
597#undef VSF_ETH_CUSTOM_CTRL_VALUES
vsf_err_t
Definition __type.h:42
@ VSF_ERR_NOT_SUPPORT
function not supported
Definition __type.h:46
#define VSF_ETH_CFG_IRQ_MASK_CHECK_UNIQUE
Definition eth.c:326
#define VSF_ETH_CFG_MODE_CHECK_UNIQUE
Definition eth.c:325
#define NULL
Definition lvgl.h:26
const i_spi_t vsf_spi_irq_mask_t irq_mask
Definition spi_interface.h:38
Predefined VSF ETH capability that can be reimplemented in specific hal drivers. The vsf_eth_capabili...
Definition vsf_template_eth.h:676
ETH configuration structure.
Definition vsf_template_eth.h:636
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36
vsf_eth_irq_mask_t
Definition vsf_template_eth.h:577
@ VSF_ETH_IRQ_MASK_ERROR
Error interrupt mask.
Definition vsf_template_eth.h:586
@ VSF_ETH_IRQ_MASK_RX_AVAILABLE
RX data available interrupt mask.
Definition vsf_template_eth.h:578
@ VSF_ETH_IRQ_MASK_PHY_LINK_CHANGE
PHY link change interrupt mask.
Definition vsf_template_eth.h:584
@ VSF_ETH_IRQ_MASK_SG_TX_COMPLETE
Scatter-gather TX complete interrupt mask.
Definition vsf_template_eth.h:582
@ VSF_ETH_IRQ_MASK_SG_RX_AVAILABLE
Scatter-gather RX available interrupt mask.
Definition vsf_template_eth.h:581
@ VSF_ETH_IRQ_MASK_TX_COMPLETE
TX complete interrupt mask.
Definition vsf_template_eth.h:579
@ VSF_ETH_CTRL_GET_MAC_ADDRESS
Get MAC address (uint8_t *)
Definition vsf_template_eth.h:749
@ VSF_ETH_BUF_MODE_TX_CHECKSUM_OFFLOAD
TX checksum offload mode.
Definition vsf_template_eth.h:708
@ VSF_ETH_BUF_MODE_RX_CHECKSUM_OFFLOAD
RX checksum offload mode.
Definition vsf_template_eth.h:709
@ VSF_ETH_MODE_TX_CHECKSUM_OFFLOAD
TX checksum offload mode.
Definition vsf_template_eth.h:463
@ VSF_ETH_MODE_RX_CHECKSUM_OFFLOAD
RX checksum offload mode.
Definition vsf_template_eth.h:464
@ VSF_ETH_PHY_MODE_LINK_UP
Link up mode.
Definition vsf_template_eth.h:394
@ VSF_ETH_PHY_MODE_SPEED_1000M
1000M speed mode
Definition vsf_template_eth.h:389
@ VSF_ETH_PHY_MODE_SPEED_100M
100M speed mode
Definition vsf_template_eth.h:388
@ VSF_ETH_PHY_MODE_SPEED_10M
10M speed mode
Definition vsf_template_eth.h:387
@ VSF_ETH_PHY_MODE_DUPLEX_HALF
Half duplex mode.
Definition vsf_template_eth.h:391
@ VSF_ETH_PHY_MODE_DUPLEX_FULL
Full duplex mode.
Definition vsf_template_eth.h:392
#define __VSF_ETH_CFG_SUPPORT_STANDARD_OPTIONAL
Enable standard optional features support.
Definition vsf_template_eth.h:307
#define VSF_HAL_CHECK_UNIQUE_CUSTOM(__CHECK_FUNC,...)
Definition vsf_template_static_assert_unique.h:2426