
Wolfgang,
2009/8/24 André Schwarz andre.schwarz@matrix-vision.de
Acked-by: André Schwarz andre.schwarz@matrix-vision.de
Tested on 82541ER @ mvBC-P board.
On Sat, 2009-08-22 at 03:49 +0800, Roy Zang wrote:
From: Roy Zang tie-fei.zang@freescale.com
Use different PBA value for E1000 PCI and PCIe cards.
Signed-off-by: Roy Zang tie-fei.zang@freescale.com
Andre, please help to verify it on your board. Thanks. Roy drivers/net/e1000.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 777783a..57123dd 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -51,7 +51,8 @@ tested on both gig copper and gig fiber boards #define bus_to_phys(devno, a) pci_mem_to_phys(devno, a) #define mdelay(n) udelay((n)*1000)
-#define E1000_DEFAULT_PBA 0x000a0026 +#define E1000_DEFAULT_PCI_PBA 0x00000030 +#define E1000_DEFAULT_PCIE_PBA 0x000a0026
/* NIC specific static variables go here */
@@ -1350,9 +1351,16 @@ e1000_reset_hw(struct e1000_hw *hw) uint32_t ctrl_ext; uint32_t icr; uint32_t manc;
uint32_t pba = 0; DEBUGFUNC();
/* get the correct pba value for both PCI and PCIe*/
if (hw->mac_type < e1000_82571)
pba = E1000_DEFAULT_PCI_PBA;
else
pba = E1000_DEFAULT_PCIE_PBA;
/* For 82542 (rev 2.0), disable MWI before issuing a device reset
*/
if (hw->mac_type == e1000_82542_rev2_0) { DEBUGOUT("Disabling MWI on 82542 rev 2.0\n");
@@ -1420,7 +1428,7 @@ e1000_reset_hw(struct e1000_hw *hw) if (hw->mac_type == e1000_82542_rev2_0) { pci_write_config_word(hw->pdev, PCI_COMMAND,
hw->pci_cmd_word);
}
E1000_WRITE_REG(hw, PBA, E1000_DEFAULT_PBA);
E1000_WRITE_REG(hw, PBA, pba);
}
/******************************************************************************
MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner, Hans-Joachim Reich
Please apply this bug fix to master.
regards, Ben