Tomorrow i'll test it on all 82576 i've
PRO/1000 Fiber Dual Port (82576)
PRO/1000 Copper Quad Port (82576)
PRO/1000 Copper Dual Port (82576)
Le 12/07/2010 13:05, Jonathan Gray a icrit :
The following diff from SAITOH Masanobu should help multiport
82575/82576 adapters, but needs to be tested on
all 82575/82576 devices people have, ie
PRO/1000 PT (82575EB
PRO/1000 PF (82575EB)
PRO/1000 QP (82575GB)
PRO/1000 QP (82575GB
PRO/1000 (82576)
PRO/1000 FP (82576)
PRO/1000 FP (82576)
PRO/1000 QP (82576)
PRO/1000 (82576NS)
82576NS SerDes
82576 SerDes QP
Index: if_em_hw.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_em_hw.c,v
retrieving revision 1.54
diff -u -p -r1.54 if_em_hw.c
--- if_em_hw.c 2 Jul 2010 21:41:59 -0000 1.54
+++ if_em_hw.c 12 Jul 2010 10:37:40 -0000
@@ -561,6 +561,7 @@ em_set_mac_type(struct em_hw *hw)
hw->asf_firmware_present = TRUE;
break;
case em_80003es2lan:
+ case em_82575:
hw->swfw_sync_present = TRUE;
/* FALLTHROUGH */
case em_82571:
@@ -4175,7 +4176,7 @@ em_read_phy_reg(struct em_hw *hw, uint32
if (hw->mac_type == em_pchlan)
return (em_access_phy_reg_hv(hw, reg_addr, phy_data, TRUE));
- if ((hw->mac_type == em_80003es2lan)&&
+ if (((hw->mac_type == em_80003es2lan) || (hw->mac_type == em_82575))&&
(E1000_READ_REG(hw, STATUS)& E1000_STATUS_FUNC_1)) {
swfw = E1000_SWFW_PHY1_SM;
} else {
@@ -4335,7 +4336,7 @@ em_write_phy_reg(struct em_hw *hw, uint3
if (hw->mac_type == em_pchlan)
return (em_access_phy_reg_hv(hw, reg_addr,&phy_data, FALSE));
- if ((hw->mac_type == em_80003es2lan)&&
+ if (((hw->mac_type == em_80003es2lan) || (hw->mac_type == em_82575))&&
(E1000_READ_REG(hw, STATUS)& E1000_STATUS_FUNC_1)) {
swfw = E1000_SWFW_PHY1_SM;
} else {
@@ -4548,7 +4549,8 @@ em_phy_hw_reset(struct em_hw *hw)
DEBUGOUT("Resetting Phy...\n");
if (hw->mac_type> em_82543&& hw->mac_type != em_icp_xxxx) {
- if ((hw->mac_type == em_80003es2lan)&&
+ if (((hw->mac_type == em_80003es2lan) ||
+ (hw->mac_type == em_82575))&&
(E1000_READ_REG(hw, STATUS)& E1000_STATUS_FUNC_1)) {
swfw = E1000_SWFW_PHY1_SM;
} else {