Subject: kern/2742: dev/ic/elink3.c has no support for media or full-duplex selection on
To: None <>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: netbsd-bugs
Date: 09/09/1996 23:18:55
>Number:         2742
>Category:       kern
>Synopsis:       dev/ic/elink3.c has no support for media or full-duplex selection on
         3c59x family
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Sep  9 23:20:00 1996
>Originator:     Jonathan Stone
>Release:        1.2_BETA
System: NetBSD Cup.DSG.Stanford.EDU 1.2_BETA NetBSD 1.2_BETA (DSG) #47: Mon Jul 29 12:05:57 PDT 1996 jonathan@Cup.DSG.Stanford.EDU:/aga/n1/src/NetBSD/IP-PLUS/src/sys/arch/i386/compile/DSG i386


The 3c595 (10/100baseTx; other variants have  100base-T MII,
100Base-F or, 100base-T4 instead of 100baseTX) and family (EISA clone)
are supported by  NetBSD's  elink3 driver, with PCI attachment via
if_ep_pci.c.  This driver provides no support for selecting media
speed,  full-duplex operation, or alternative media (as far as I can see.)

There is also no support for the PCI busmaster (DMA) support that lets
this card DMA a single packet to or from the onboard FIFO rather than
using PIO.  The 3com programmer's manual suggests DMA is faster than PIO,
at least for large packets.


Install a 3c595 in a NetBSD system, in a 100baseTX net.  All the  cards
I've seen come preconfigured for 10baseT (though this may have been
deiberately configured by the system integrator.)

I've found no way under NetBSD to force the cards to either a specific
different speed, or to force it to auto-detect media speed.  I've had
to resort to booting DOS, and using the 3COM diagnostics to set the
non-volatile speed select on the card to 100baseT.

The "autoselect" on the 3c595 card is also not supported properly by
the elink3 driver.  The 3COM diagnostic software sets the "autodetect"
bit, but as far as I can tell autoselection only happens when the
diagnostic software sets the "autodetect" bit. It should be possible
for the NetBSD driver to observe the non-volatile media selection and
do a softwaret autoselect; it doesn't.


I have patches that define the DMA register window...