[U-Boot] [PATCH] Use different PBA value for E1000 PCI and PCIe cards

André Schwarz andre.schwarz at matrix-vision.de
Mon Aug 24 14:27:35 CEST 2009


Acked-by: André Schwarz <andre.schwarz at 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 at freescale.com>
> 
> Use different PBA value for E1000 PCI and PCIe cards.
> 
> Signed-off-by: Roy Zang <tie-fei.zang at 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


More information about the U-Boot mailing list