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

Ben Warren biggerbadderben at gmail.com
Mon Aug 24 15:27:55 CEST 2009


Wolfgang,

2009/8/24 André Schwarz <andre.schwarz at matrix-vision.de>

> 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


Please apply this bug fix to master.

regards,
Ben


More information about the U-Boot mailing list