xref: /onnv-gate/usr/src/uts/common/io/e1000g/e1000_mac.h (revision 11020:e0feef27b61a)
14919Sxy150489 /*
24919Sxy150489  * This file is provided under a CDDLv1 license.  When using or
34919Sxy150489  * redistributing this file, you may do so under this license.
44919Sxy150489  * In redistributing this file this license must be included
54919Sxy150489  * and no other modification of this header file is permitted.
64919Sxy150489  *
74919Sxy150489  * CDDL LICENSE SUMMARY
84919Sxy150489  *
98479SChenlu.Chen@Sun.COM  * Copyright(c) 1999 - 2009 Intel Corporation. All rights reserved.
104919Sxy150489  *
114919Sxy150489  * The contents of this file are subject to the terms of Version
124919Sxy150489  * 1.0 of the Common Development and Distribution License (the "License").
134919Sxy150489  *
144919Sxy150489  * You should have received a copy of the License with this software.
154919Sxy150489  * You can obtain a copy of the License at
164919Sxy150489  *	http://www.opensolaris.org/os/licensing.
174919Sxy150489  * See the License for the specific language governing permissions
184919Sxy150489  * and limitations under the License.
194919Sxy150489  */
204919Sxy150489 
214919Sxy150489 /*
228479SChenlu.Chen@Sun.COM  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
234919Sxy150489  * Use is subject to license terms of the CDDLv1.
244919Sxy150489  */
254919Sxy150489 
264919Sxy150489 /*
27*11020SMin.Xu@Sun.COM  * IntelVersion: 1.32 v3-1-10-1_2009-9-18_Release14-6
284919Sxy150489  */
294919Sxy150489 #ifndef _E1000_MAC_H_
304919Sxy150489 #define	_E1000_MAC_H_
314919Sxy150489 
324919Sxy150489 #ifdef __cplusplus
334919Sxy150489 extern "C" {
344919Sxy150489 #endif
354919Sxy150489 
364919Sxy150489 /*
374919Sxy150489  * Functions that should not be called directly from drivers but can be used
384919Sxy150489  * by other files in this 'shared code'
394919Sxy150489  */
406735Scc210113 void e1000_init_mac_ops_generic(struct e1000_hw *hw);
416735Scc210113 void e1000_null_mac_generic(struct e1000_hw *hw);
426735Scc210113 s32 e1000_null_ops_generic(struct e1000_hw *hw);
436735Scc210113 s32 e1000_null_link_info(struct e1000_hw *hw, u16 *s, u16 *d);
446735Scc210113 bool e1000_null_mng_mode(struct e1000_hw *hw);
4510680SMin.Xu@Sun.COM void e1000_null_update_mc(struct e1000_hw *hw, u8 *h, u32 a);
466735Scc210113 void e1000_null_write_vfta(struct e1000_hw *hw, u32 a, u32 b);
476735Scc210113 void e1000_null_mta_set(struct e1000_hw *hw, u32 a);
486735Scc210113 void e1000_null_rar_set(struct e1000_hw *hw, u8 *h, u32 a);
494919Sxy150489 s32 e1000_blink_led_generic(struct e1000_hw *hw);
504919Sxy150489 s32 e1000_check_for_copper_link_generic(struct e1000_hw *hw);
514919Sxy150489 s32 e1000_check_for_fiber_link_generic(struct e1000_hw *hw);
524919Sxy150489 s32 e1000_check_for_serdes_link_generic(struct e1000_hw *hw);
534919Sxy150489 s32 e1000_cleanup_led_generic(struct e1000_hw *hw);
544919Sxy150489 s32 e1000_commit_fc_settings_generic(struct e1000_hw *hw);
558479SChenlu.Chen@Sun.COM s32 e1000_poll_fiber_serdes_link_generic(struct e1000_hw *hw);
564919Sxy150489 s32 e1000_config_fc_after_link_up_generic(struct e1000_hw *hw);
574919Sxy150489 s32 e1000_disable_pcie_master_generic(struct e1000_hw *hw);
584919Sxy150489 s32 e1000_force_mac_fc_generic(struct e1000_hw *hw);
594919Sxy150489 s32 e1000_get_auto_rd_done_generic(struct e1000_hw *hw);
604919Sxy150489 s32 e1000_get_bus_info_pci_generic(struct e1000_hw *hw);
614919Sxy150489 s32 e1000_get_bus_info_pcie_generic(struct e1000_hw *hw);
6210680SMin.Xu@Sun.COM void e1000_set_lan_id_single_port(struct e1000_hw *hw);
6310680SMin.Xu@Sun.COM void e1000_set_lan_id_multi_port_pci(struct e1000_hw *hw);
644919Sxy150489 s32 e1000_get_hw_semaphore_generic(struct e1000_hw *hw);
654919Sxy150489 s32 e1000_get_speed_and_duplex_copper_generic(struct e1000_hw *hw, u16 *speed,
664919Sxy150489     u16 *duplex);
674919Sxy150489 s32 e1000_get_speed_and_duplex_fiber_serdes_generic(struct e1000_hw *hw,
684919Sxy150489     u16 *speed, u16 *duplex);
694919Sxy150489 s32 e1000_id_led_init_generic(struct e1000_hw *hw);
704919Sxy150489 s32 e1000_led_on_generic(struct e1000_hw *hw);
714919Sxy150489 s32 e1000_led_off_generic(struct e1000_hw *hw);
726735Scc210113 void e1000_update_mc_addr_list_generic(struct e1000_hw *hw,
7310680SMin.Xu@Sun.COM     u8 *mc_addr_list, u32 mc_addr_count);
744919Sxy150489 s32 e1000_set_default_fc_generic(struct e1000_hw *hw);
754919Sxy150489 s32 e1000_set_fc_watermarks_generic(struct e1000_hw *hw);
764919Sxy150489 s32 e1000_setup_fiber_serdes_link_generic(struct e1000_hw *hw);
774919Sxy150489 s32 e1000_setup_led_generic(struct e1000_hw *hw);
784919Sxy150489 s32 e1000_setup_link_generic(struct e1000_hw *hw);
794919Sxy150489 
804919Sxy150489 u32 e1000_hash_mc_addr_generic(struct e1000_hw *hw, u8 *mc_addr);
814919Sxy150489 
824919Sxy150489 void e1000_clear_hw_cntrs_base_generic(struct e1000_hw *hw);
834919Sxy150489 void e1000_clear_vfta_generic(struct e1000_hw *hw);
844919Sxy150489 void e1000_config_collision_dist_generic(struct e1000_hw *hw);
854919Sxy150489 void e1000_init_rx_addrs_generic(struct e1000_hw *hw, u16 rar_count);
864919Sxy150489 void e1000_mta_set_generic(struct e1000_hw *hw, u32 hash_value);
874919Sxy150489 void e1000_pcix_mmrbc_workaround_generic(struct e1000_hw *hw);
884919Sxy150489 void e1000_put_hw_semaphore_generic(struct e1000_hw *hw);
894919Sxy150489 void e1000_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index);
906735Scc210113 s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw);
914919Sxy150489 void e1000_reset_adaptive_generic(struct e1000_hw *hw);
924919Sxy150489 void e1000_set_pcie_no_snoop_generic(struct e1000_hw *hw, u32 no_snoop);
934919Sxy150489 void e1000_update_adaptive_generic(struct e1000_hw *hw);
944919Sxy150489 void e1000_write_vfta_generic(struct e1000_hw *hw, u32 offset, u32 value);
954919Sxy150489 
964919Sxy150489 #ifdef __cplusplus
974919Sxy150489 }
984919Sxy150489 #endif
994919Sxy150489 
1004919Sxy150489 #endif	/* _E1000_MAC_H_ */
101