xref: /titanic_41/usr/src/uts/common/io/ixgbe/ixgbe_82599.h (revision 69b5a878d62fdee1b12e78371ce6cc8abddcad15)
1*69b5a878SDan McDonald /******************************************************************************
2*69b5a878SDan McDonald 
3*69b5a878SDan McDonald   Copyright (c) 2001-2012, Intel Corporation
4*69b5a878SDan McDonald   All rights reserved.
5*69b5a878SDan McDonald 
6*69b5a878SDan McDonald   Redistribution and use in source and binary forms, with or without
7*69b5a878SDan McDonald   modification, are permitted provided that the following conditions are met:
8*69b5a878SDan McDonald 
9*69b5a878SDan McDonald    1. Redistributions of source code must retain the above copyright notice,
10*69b5a878SDan McDonald       this list of conditions and the following disclaimer.
11*69b5a878SDan McDonald 
12*69b5a878SDan McDonald    2. Redistributions in binary form must reproduce the above copyright
13*69b5a878SDan McDonald       notice, this list of conditions and the following disclaimer in the
14*69b5a878SDan McDonald       documentation and/or other materials provided with the distribution.
15*69b5a878SDan McDonald 
16*69b5a878SDan McDonald    3. Neither the name of the Intel Corporation nor the names of its
17*69b5a878SDan McDonald       contributors may be used to endorse or promote products derived from
18*69b5a878SDan McDonald       this software without specific prior written permission.
19*69b5a878SDan McDonald 
20*69b5a878SDan McDonald   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21*69b5a878SDan McDonald   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22*69b5a878SDan McDonald   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23*69b5a878SDan McDonald   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24*69b5a878SDan McDonald   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25*69b5a878SDan McDonald   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26*69b5a878SDan McDonald   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27*69b5a878SDan McDonald   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28*69b5a878SDan McDonald   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29*69b5a878SDan McDonald   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30*69b5a878SDan McDonald   POSSIBILITY OF SUCH DAMAGE.
31*69b5a878SDan McDonald 
32*69b5a878SDan McDonald ******************************************************************************/
33*69b5a878SDan McDonald /*$FreeBSD: src/sys/dev/ixgbe/ixgbe_82599.h,v 1.1 2012/01/30 16:42:02 jfv Exp $*/
34*69b5a878SDan McDonald 
35*69b5a878SDan McDonald #ifndef _IXGBE_82599_H_
36*69b5a878SDan McDonald #define _IXGBE_82599_H_
37*69b5a878SDan McDonald 
38*69b5a878SDan McDonald s32 ixgbe_get_link_capabilities_82599(struct ixgbe_hw *hw,
39*69b5a878SDan McDonald 				      ixgbe_link_speed *speed, bool *autoneg);
40*69b5a878SDan McDonald enum ixgbe_media_type ixgbe_get_media_type_82599(struct ixgbe_hw *hw);
41*69b5a878SDan McDonald void ixgbe_disable_tx_laser_multispeed_fiber(struct ixgbe_hw *hw);
42*69b5a878SDan McDonald void ixgbe_enable_tx_laser_multispeed_fiber(struct ixgbe_hw *hw);
43*69b5a878SDan McDonald void ixgbe_flap_tx_laser_multispeed_fiber(struct ixgbe_hw *hw);
44*69b5a878SDan McDonald s32 ixgbe_setup_mac_link_multispeed_fiber(struct ixgbe_hw *hw,
45*69b5a878SDan McDonald 					  ixgbe_link_speed speed, bool autoneg,
46*69b5a878SDan McDonald 					  bool autoneg_wait_to_complete);
47*69b5a878SDan McDonald s32 ixgbe_setup_mac_link_smartspeed(struct ixgbe_hw *hw,
48*69b5a878SDan McDonald 				    ixgbe_link_speed speed, bool autoneg,
49*69b5a878SDan McDonald 				    bool autoneg_wait_to_complete);
50*69b5a878SDan McDonald s32 ixgbe_start_mac_link_82599(struct ixgbe_hw *hw,
51*69b5a878SDan McDonald 			       bool autoneg_wait_to_complete);
52*69b5a878SDan McDonald s32 ixgbe_setup_mac_link_82599(struct ixgbe_hw *hw, ixgbe_link_speed speed,
53*69b5a878SDan McDonald 			       bool autoneg, bool autoneg_wait_to_complete);
54*69b5a878SDan McDonald s32 ixgbe_setup_sfp_modules_82599(struct ixgbe_hw *hw);
55*69b5a878SDan McDonald void ixgbe_init_mac_link_ops_82599(struct ixgbe_hw *hw);
56*69b5a878SDan McDonald s32 ixgbe_reset_hw_82599(struct ixgbe_hw *hw);
57*69b5a878SDan McDonald s32 ixgbe_read_analog_reg8_82599(struct ixgbe_hw *hw, u32 reg, u8 *val);
58*69b5a878SDan McDonald s32 ixgbe_write_analog_reg8_82599(struct ixgbe_hw *hw, u32 reg, u8 val);
59*69b5a878SDan McDonald s32 ixgbe_start_hw_82599(struct ixgbe_hw *hw);
60*69b5a878SDan McDonald s32 ixgbe_identify_phy_82599(struct ixgbe_hw *hw);
61*69b5a878SDan McDonald s32 ixgbe_init_phy_ops_82599(struct ixgbe_hw *hw);
62*69b5a878SDan McDonald u32 ixgbe_get_supported_physical_layer_82599(struct ixgbe_hw *hw);
63*69b5a878SDan McDonald s32 ixgbe_enable_rx_dma_82599(struct ixgbe_hw *hw, u32 regval);
64*69b5a878SDan McDonald bool ixgbe_verify_lesm_fw_enabled_82599(struct ixgbe_hw *hw);
65*69b5a878SDan McDonald #endif /* _IXGBE_82599_H_ */
66