19d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok/******************************************************************************* 29d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 39d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok Intel(R) Gigabit Ethernet Linux driver 46e861326b1d78bb439c0724864a6ca83ec23d289Carolyn Wyborny Copyright(c) 2007-2012 Intel Corporation. 59d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 69d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok This program is free software; you can redistribute it and/or modify it 79d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok under the terms and conditions of the GNU General Public License, 89d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok version 2, as published by the Free Software Foundation. 99d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 109d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok This program is distributed in the hope it will be useful, but WITHOUT 119d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 129d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 139d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok more details. 149d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 159d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok You should have received a copy of the GNU General Public License along with 169d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok this program; if not, write to the Free Software Foundation, Inc., 179d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. 189d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 199d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok The full GNU General Public License is included in this distribution in 209d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok the file called "COPYING". 219d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 229d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok Contact Information: 239d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok e1000-devel Mailing List <e1000-devel@lists.sourceforge.net> 249d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 259d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 269d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok*******************************************************************************/ 279d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 289d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok#ifndef _E1000_MAC_H_ 299d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok#define _E1000_MAC_H_ 309d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 319d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok#include "e1000_hw.h" 329d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 339d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok#include "e1000_phy.h" 349d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok#include "e1000_nvm.h" 359d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok#include "e1000_defines.h" 369d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 379d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok/* 389d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok * Functions that should not be called directly from drivers but can be used 399d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok * by other files in this 'shared code' 409d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok */ 419d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_blink_led(struct e1000_hw *hw); 429d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_check_for_copper_link(struct e1000_hw *hw); 439d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_cleanup_led(struct e1000_hw *hw); 449d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_config_fc_after_link_up(struct e1000_hw *hw); 459d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_disable_pcie_master(struct e1000_hw *hw); 469d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_force_mac_fc(struct e1000_hw *hw); 479d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_get_auto_rd_done(struct e1000_hw *hw); 489d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_get_bus_info_pcie(struct e1000_hw *hw); 499d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_get_hw_semaphore(struct e1000_hw *hw); 509d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_get_speed_and_duplex_copper(struct e1000_hw *hw, u16 *speed, 519d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok u16 *duplex); 529d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_id_led_init(struct e1000_hw *hw); 539d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_led_off(struct e1000_hw *hw); 5428fc06f58b1fe567bb86c7d0e3d93137e5c0126eAlexander Duyckvoid igb_update_mc_addr_list(struct e1000_hw *hw, 5528fc06f58b1fe567bb86c7d0e3d93137e5c0126eAlexander Duyck u8 *mc_addr_list, u32 mc_addr_count); 569d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_setup_link(struct e1000_hw *hw); 579d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_validate_mdi_setting(struct e1000_hw *hw); 589d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_write_8bit_ctrl_reg(struct e1000_hw *hw, u32 reg, 599d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok u32 offset, u8 data); 609d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 619d5c824399dea881779d78a6c147288bf2dccb6bAuke Kokvoid igb_clear_hw_cntrs_base(struct e1000_hw *hw); 629d5c824399dea881779d78a6c147288bf2dccb6bAuke Kokvoid igb_clear_vfta(struct e1000_hw *hw); 631128c756bef8285db3bbde5b26d4a6b4c7e2e613Carolyn Wybornyvoid igb_clear_vfta_i350(struct e1000_hw *hw); 64cad6d05f5676d879bb2a48154aea26cd81ebf1bbAlexander Duycks32 igb_vfta_set(struct e1000_hw *hw, u32 vid, bool add); 659d5c824399dea881779d78a6c147288bf2dccb6bAuke Kokvoid igb_config_collision_dist(struct e1000_hw *hw); 665ac1665906559768029c398d9ede8e7cdd73004eAlexander Duyckvoid igb_init_rx_addrs(struct e1000_hw *hw, u16 rar_count); 67549bdd84dce242e15a9d7b42787ae481ba29f458Alexander Duyckvoid igb_mta_set(struct e1000_hw *hw, u32 hash_value); 689d5c824399dea881779d78a6c147288bf2dccb6bAuke Kokvoid igb_put_hw_semaphore(struct e1000_hw *hw); 699d5c824399dea881779d78a6c147288bf2dccb6bAuke Kokvoid igb_rar_set(struct e1000_hw *hw, u8 *addr, u32 index); 709d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_check_alt_mac_addr(struct e1000_hw *hw); 719d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 729d5c824399dea881779d78a6c147288bf2dccb6bAuke Kokbool igb_enable_mng_pass_thru(struct e1000_hw *hw); 739d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 749d5c824399dea881779d78a6c147288bf2dccb6bAuke Kokenum e1000_mng_mode { 759d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok e1000_mng_mode_none = 0, 769d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok e1000_mng_mode_asf, 779d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok e1000_mng_mode_pt, 789d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok e1000_mng_mode_ipmi, 799d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok e1000_mng_mode_host_if_only 809d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok}; 819d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 829d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok#define E1000_FACTPS_MNGCG 0x20000000 839d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 849d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok#define E1000_FWSM_MODE_MASK 0xE 859d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok#define E1000_FWSM_MODE_SHIFT 1 869d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 879d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok#define E1000_MNG_DHCP_COOKIE_STATUS_VLAN 0x2 889d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 899d5c824399dea881779d78a6c147288bf2dccb6bAuke Kokextern void e1000_init_function_pointers_82575(struct e1000_hw *hw); 909d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 919d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok#endif 92