This is the mail archive of the ecos-discuss@sources.redhat.com 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: PCI Ethernet card


Michael Anburaj wrote:
Hi Eric,

a. Check the value of the basic mode status register (0x64), the
auto-negotiation registers (0x66, 0x68, 0x6A), and the disconnect (0x6c)
and false carrier sense (0x6e) counters.


BMCR = 0x1000 - enable auto-negotiation BMSR = 0x7809 (default) ANAR = 0x01e1 (default) ANLPAR = 0x0000 ANER = 0x0000 DIS = 0x0000 FCSC = 0x0000

I think auto-negotiation is not working in your setup - ANLPAR shouldn't be all 0s (at least bit #14, ACK should be set IMO). To me it looks like the two parties never get to negotiating.

Yes you are right. To keep things simple, I will start out by doing this. But, is it not ok to set this bit (auto-negotiation)?

If auto-negotiation is enabled, the 8139 ignores bits 13 and 8 ('Spd_Set' and 'Duplex Mode').

I am still reading the documentation & trying to understand it better.

Welcome to the club =8^)


Questions:
1. Is the auto-negotiation (sending & receiving negotiation packets) under software (device driver) control?

No, this is done by the hardware. You can enable or disable auto-negotiation, and tell the 8139 which link options to accept in software, but the negotiation itself is done by the hardware (if it is enabled).

a. If yes, does the rltk8139 driver Ver 2 support this feature? Or does it assume fixed link parameters?

The driver assumes the serial EEPROM will have set the correct parameters after reset.

b.If no, then is there a problem with the Hub (the link partner on the other side of this link)? < Presumably, the both sides understand 'auto-negotiation', should negotiate the link parameters & settle down for actual transfers (with the sable connection - Link Status bit of BMSR set), am I right?

I think you are, but I am no expert on Ethernet devices in general or the 8139 in particular, so I may be wrong. That being said, old networking equipment may not implement auto-negotiation correctly; I've had problems in the past between 3Com switches and DEC 'tulip', as well as some SMC NICs (this was back in 1998 or so). With modern equipment, auto-negotiation seems to works just fine.

If you can, try hooking your board up to a different hub/switch or
directly to the DHCP server; if that works then your hub is probably to
blame.
--
--------------------------------------------------------------------
|     Eric Doenges              |     DynaPel Laboratories GmbH    |
|     Tel: +49 89 962428 23     |     Fraunhoferstrasse 9/2        |
|     Fax: +49 89 962428 90     |     D - 85737 Ismaning, Germany  |
--------------------------------------------------------------------


-- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss


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