common/mlx5: add Direct Verbs constants for Windows
[dpdk.git] / drivers / net / ngbe / base / ngbe_hw.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2018-2021 Beijing WangXun Technology Co., Ltd.
3  * Copyright(c) 2010-2017 Intel Corporation
4  */
5
6 #ifndef _NGBE_HW_H_
7 #define _NGBE_HW_H_
8
9 #include "ngbe_type.h"
10
11 #define NGBE_EM_MAX_TX_QUEUES 8
12 #define NGBE_EM_MAX_RX_QUEUES 8
13 #define NGBE_EM_RAR_ENTRIES   32
14 #define NGBE_EM_MC_TBL_SIZE   32
15 #define NGBE_EM_VFT_TBL_SIZE  128
16
17 s32 ngbe_init_hw(struct ngbe_hw *hw);
18 s32 ngbe_start_hw(struct ngbe_hw *hw);
19 s32 ngbe_reset_hw_em(struct ngbe_hw *hw);
20 s32 ngbe_stop_hw(struct ngbe_hw *hw);
21 s32 ngbe_clear_hw_cntrs(struct ngbe_hw *hw);
22 s32 ngbe_get_mac_addr(struct ngbe_hw *hw, u8 *mac_addr);
23
24 void ngbe_set_lan_id_multi_port(struct ngbe_hw *hw);
25
26 s32 ngbe_check_mac_link_em(struct ngbe_hw *hw, u32 *speed,
27                         bool *link_up, bool link_up_wait_to_complete);
28 s32 ngbe_get_link_capabilities_em(struct ngbe_hw *hw,
29                                       u32 *speed,
30                                       bool *autoneg);
31 s32 ngbe_setup_mac_link_em(struct ngbe_hw *hw,
32                                u32 speed,
33                                bool autoneg_wait_to_complete);
34
35 s32 ngbe_led_on(struct ngbe_hw *hw, u32 index);
36 s32 ngbe_led_off(struct ngbe_hw *hw, u32 index);
37
38 s32 ngbe_set_rar(struct ngbe_hw *hw, u32 index, u8 *addr, u32 vmdq,
39                           u32 enable_addr);
40 s32 ngbe_clear_rar(struct ngbe_hw *hw, u32 index);
41 s32 ngbe_init_rx_addrs(struct ngbe_hw *hw);
42 s32 ngbe_update_mc_addr_list(struct ngbe_hw *hw, u8 *mc_addr_list,
43                                       u32 mc_addr_count,
44                                       ngbe_mc_addr_itr func, bool clear);
45 s32 ngbe_disable_sec_rx_path(struct ngbe_hw *hw);
46 s32 ngbe_enable_sec_rx_path(struct ngbe_hw *hw);
47
48 s32 ngbe_setup_fc_em(struct ngbe_hw *hw);
49 s32 ngbe_fc_enable(struct ngbe_hw *hw);
50 void ngbe_fc_autoneg(struct ngbe_hw *hw);
51
52 s32 ngbe_validate_mac_addr(u8 *mac_addr);
53 s32 ngbe_acquire_swfw_sync(struct ngbe_hw *hw, u32 mask);
54 void ngbe_release_swfw_sync(struct ngbe_hw *hw, u32 mask);
55
56 s32 ngbe_set_vmdq(struct ngbe_hw *hw, u32 rar, u32 vmdq);
57 s32 ngbe_clear_vmdq(struct ngbe_hw *hw, u32 rar, u32 vmdq);
58 s32 ngbe_init_uta_tables(struct ngbe_hw *hw);
59 s32 ngbe_set_vfta(struct ngbe_hw *hw, u32 vlan,
60                          u32 vind, bool vlan_on, bool vlvf_bypass);
61 s32 ngbe_set_vlvf(struct ngbe_hw *hw, u32 vlan, u32 vind,
62                            bool vlan_on, u32 *vfta_delta, u32 vfta,
63                            bool vlvf_bypass);
64 s32 ngbe_clear_vfta(struct ngbe_hw *hw);
65 s32 ngbe_find_vlvf_slot(struct ngbe_hw *hw, u32 vlan, bool vlvf_bypass);
66
67 void ngbe_set_mac_anti_spoofing(struct ngbe_hw *hw, bool enable, int vf);
68 void ngbe_set_vlan_anti_spoofing(struct ngbe_hw *hw, bool enable, int vf);
69 s32 ngbe_init_thermal_sensor_thresh(struct ngbe_hw *hw);
70 s32 ngbe_mac_check_overtemp(struct ngbe_hw *hw);
71 void ngbe_disable_rx(struct ngbe_hw *hw);
72 void ngbe_enable_rx(struct ngbe_hw *hw);
73 void ngbe_set_mta(struct ngbe_hw *hw, u8 *mc_addr);
74 s32 ngbe_negotiate_fc(struct ngbe_hw *hw, u32 adv_reg, u32 lp_reg,
75                         u32 adv_sym, u32 adv_asm, u32 lp_sym, u32 lp_asm);
76 s32 ngbe_init_shared_code(struct ngbe_hw *hw);
77 s32 ngbe_set_mac_type(struct ngbe_hw *hw);
78 s32 ngbe_init_ops_pf(struct ngbe_hw *hw);
79 s32 ngbe_init_phy(struct ngbe_hw *hw);
80 s32 ngbe_enable_rx_dma(struct ngbe_hw *hw, u32 regval);
81 void ngbe_map_device_id(struct ngbe_hw *hw);
82
83 #endif /* _NGBE_HW_H_ */