[En-Nut-Discussion] changes in nicrtl driver
Stephen Noftall
stephenn at lcsaudio.com
Thu Jul 1 23:38:10 CEST 2004
Harald Kipp wrote:
> The FUDUP bit is now on...but how to proof that it's
> really doing full duplex?
Hi Harald;
I have look at this fairly extensively. There are a few references on
the net about the FUDUP problem in general.
It seems that the RTL8019AS chip is an old chip, and does not autodetect
the network properly (or at all). So the problem comes about when
hooked to a switch that autodetects (10Base-T or 100Base-T, and even
1000Base-T). When a switch tries to negotiate with the RTL8019AS, it
fails, as the RTL8019AS does not negotiate properly. The switch then
will fall back to where it is suppose to be: 10Base-T, NON DUPLEX.
In the standard Ethernut setup, the FUDUP bit will be set. So how would
it work? The switch will be in non-duplex, yet ethernut is in full duplex?
While Ethernut might seem to be in full duplex, it will still process
packets that are received on it's transmit lines. So the switch will
still be able to communicate with Ethernut. But the problem is that the
RTL8019AS will still think it is in full duplex, and not do the special
timing needed to prevent collisions. So there will be a significant
number of collisions on the single line, depending on traffic.
Now some switches will get confused by this, and basically drop whole
packets. Depending on the protocol (TCP vs UDP), this could either make
the communication unreliable (UDP), or just make it really slow (TCP).
There are 2 ways that I know to fix this. One is to just 'upgrade' to
the LAN91C111. This is what I did, and I am really appreciative of this
project Harald, as it came up with a simple recompile! Very very impressive!
The other way is to fake the FUDUP to be off, so that the RTL8019AS
thinks it is in half duplex mode. While it is in half duplex, it should
behave properly, and hardly ever have collisions with the switch. But I
haven't tested this option out. To get it to be off, you need to
simulate the EEPROM.
Good luck!
Stephen Noftall
More information about the En-Nut-Discussion
mailing list