This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: ea2468 Ethernet overrun
2009/6/3 Andrew Lunn <andrew@lunn.ch>:
> 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:
#if CYGOPT_DEVS_ETH_PHY_SPEED == 10
_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 )|
PHY_AN_ADV_10HDX | PHY_AN_ADV_10FDX);
#endif
Thank you.
Nikolay.
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss