This is the mail archive of the mailing list for the eCos project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ea2468 Ethernet overrun

2009/6/3 Andrew Lunn <>:
> On Wed, Jun 03, 2009 at 05:43:04PM +0400, Nikolay Marusov wrote:
> Is it an overrun or an underrun?
> I've seen underrun problems before in an intel chipset. The problem
> was that the DMA would start transferring the packet from the host RAM
> to the ethernet chipset. When X bytes of the packet had arrived at the
> ethernet, the ethernet started sending them on the wire. Under heavy
> memory load, the DMA was slower than the Ethernet sending bytes on the
> wire, and with long packets the ethernet chip would empty its buffer
> and then throw an underrun error. I had the change the Ethernet
> chipset to have a bigger X so it had more buffered bytes before it
> started sending them to the wire.
>        Andrew

Yes, it is underrun - sorry. Exactly this case. So thought I.
I was interested whether anybody has such a thing at EA2468.
If this problem is insuperable, one could use this:

In phy_eth_drivers.cdl:

    cdl_option CYGOPT_DEVS_ETH_PHY_SPEED {
        display          "Preferred speed"
        flavor           data
        legal_values     10 100
        default_value    100
        description      "This option allows to select the preferred
                          interface speed during auto-negitiation."

In dev/KSZ8001.c:

    _eth_phy_read(f, PHY_AN_ADV, f->phy_addr, &phy_anadv_reg);
    _eth_phy_write(f, PHY_AN_ADV, f->phy_addr,
      (phy_anadv_reg & ~PHY_AN_ADV_100HDX & ~PHY_AN_ADV_100FDX &
~PHY_AN_ADV_100_T4 )|

Thank you.

Before posting, please read the FAQ:
and search the list archive:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]