Use different PBA value for E1000 PCI and PCIe cards

Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
Acked-by: Andr Schwarz <andre.schwarz@matrix-vision.de>
This commit is contained in:
Roy Zang 2009-08-22 03:49:52 +08:00 committed by Tom Rix
parent 06d0e8309e
commit 3fbde1876c

View File

@ -50,7 +50,8 @@ tested on both gig copper and gig fiber boards
#define bus_to_phys(devno, a) pci_mem_to_phys(devno, a) #define bus_to_phys(devno, a) pci_mem_to_phys(devno, a)
#define mdelay(n) udelay((n)*1000) #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 */ /* NIC specific static variables go here */
@ -1349,9 +1350,16 @@ e1000_reset_hw(struct e1000_hw *hw)
uint32_t ctrl_ext; uint32_t ctrl_ext;
uint32_t icr; uint32_t icr;
uint32_t manc; uint32_t manc;
uint32_t pba = 0;
DEBUGFUNC(); 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 */ /* For 82542 (rev 2.0), disable MWI before issuing a device reset */
if (hw->mac_type == e1000_82542_rev2_0) { if (hw->mac_type == e1000_82542_rev2_0) {
DEBUGOUT("Disabling MWI on 82542 rev 2.0\n"); DEBUGOUT("Disabling MWI on 82542 rev 2.0\n");
@ -1419,7 +1427,7 @@ e1000_reset_hw(struct e1000_hw *hw)
if (hw->mac_type == e1000_82542_rev2_0) { if (hw->mac_type == e1000_82542_rev2_0) {
pci_write_config_word(hw->pdev, PCI_COMMAND, hw->pci_cmd_word); 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);
} }
/****************************************************************************** /******************************************************************************