Re: Intel 82559 Ethernet using DMA by Pete
Pete
Fri Sep 26 08:32:19 CDT 2003
A long, long time ago, I worked on an 82558 driver for WinCE. I remember
that the performance was less than stellar, but one of the problems we kept
running into was that the controller got into a weird state, and had to be
reset occassionally by the code -- which caused two performance problems:
(1) the unresponsive controller didn't move any data, and
(2) when we reset the controller, we likely wound up throwing away any
packets that had arrived.
Intel used to make the software (WinNT NDIS driver) and developers manuals
available under NDA. You may try and contact them. Perhaps they will give
you the WinCE source code and you can better determine what's wrong.
"Kevin Williams" <kwilliams@integrian.com> wrote in message
news:073f01c38398$a393b5a0$a301280a@phx.gbl...
> Thanks, that does help. As a note, it's working reliably
> and (given your comment) appears to be set-up
> correctly...unfortunately it's very slow. If you have any
> thoughts on why that might be, I'd be happy to hear them.
> I've added keywords to force full duplex and a 100Mb
> connection, but still no luck. Still wondering if there
> might be some kind of conflict.
>
> Best Regards,
> Kevin
>
>
> >-----Original Message-----
> >The Intel 8255x Ethernet controllers are bus mastering
> PCI devices. To
> >function, the must be able to directly read and write
> system RAM, where they
> >read and write packet data to a set of linked-list data
> structures. The chip
> >uses on-board hardware to do this, and does not use an
> external DMA
> >controller.
> >
> >Hope this helps.
> >
> >"Kevin Williams" <kwilliams@integrian.com> wrote in
> message
> >news:079501c381ef$0f05c8b0$3101280a@phx.gbl...
> >> We're building a CE.NET 4.2 image and including the
> Intel
> >> 82559ER ethernet driver (on a Geode based platform).
> >> Everything functions correctly, but our data transfer
> rate
> >> is slow (we've seen 2X performance when running Linux on
> >> the same platform). One thought is that DMA may not be
> >> properly enabled (can anyone describe precisely how to
> >> verify/correct this?). Another thought is that the port
> >> is somehow being shared as a debug port (which is not
> >> required), or that the interrupt is being shared with a
> >> display driver (but we use only a flat display). Any
> >> thoughts on the subject would be appreciated.
> >>
> >> Thanks,
> >> Kevin
> >
> >
> >.
> >