From nobody@FreeBSD.org  Thu Apr  6 08:24:11 2000
Return-Path: <nobody@FreeBSD.org>
Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21])
	by hub.freebsd.org (Postfix) with ESMTP id 2385537C0B1
	for <freebsd-gnats-submit@FreeBSD.org>; Thu,  6 Apr 2000 08:24:11 -0700 (PDT)
	(envelope-from nobody@FreeBSD.org)
Received: (from nobody@localhost)
	by freefall.freebsd.org (8.9.3/8.9.2) id IAA48633;
	Thu, 6 Apr 2000 08:24:11 -0700 (PDT)
	(envelope-from nobody@FreeBSD.org)
Message-Id: <200004061524.IAA48633@freefall.freebsd.org>
Date: Thu, 6 Apr 2000 08:24:11 -0700 (PDT)
From: matt@thebiz.net
Sender: nobody@FreeBSD.org
To: freebsd-gnats-submit@FreeBSD.org
Subject: The dc driver is seriously broken
X-Send-Pr-Version: www-1.0

>Number:         17829
>Category:       kern
>Synopsis:       The dc driver is seriously broken
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Apr  6 08:30:01 PDT 2000
>Closed-Date:    Thu Aug 29 13:54:50 PDT 2002
>Last-Modified:  Thu Aug 29 13:54:50 PDT 2002
>Originator:     Matthew Zahorik
>Release:        4.0-RELEASE
>Organization:
BiznessOnline.com
>Environment:
[web1]:11:06am:~% uname -a
FreeBSD web1.thebiz.net 4.0-RELEASE FreeBSD 4.0-RELEASE #8: Tue Apr  4 13:36:42 EDT 2000 root@web1.thebiz.net:/usr/src/sys/compile/DISKLESS-DS10  alpha
>Description:
The dc driver is broken in many different ways:

1.  It doesn't autonegotate properly.  On a Cisco 2948 switch, set to
    defaults, it will autoneg 10BaseT/half duplex.  All other machines
    (and the de driver) autoneg 100BaseTX/half or full duplex.  If the
    switch is hard coded to 100Mb/full or half, the card will never
    negotiate.

2.  When hard-coding the interface to a specific speed/duplex, packets
    flow too early.  You run the risk that BOOTP clients time out,
    or DHCP requests go unanswered.

3.  Link lights don't work, so you have no way of visually telling
    that the card has link.  (which is important if you have stacks
    of headless machines)

The Alpha platform has a hack to address #1.  It looks in the BIOS settings (SRM) and if the code is hard-coded to a specific speed/duplex, the driver will force the card to that speed/duplex.

#2 makes it real difficult to bootp reliably, since the kernel misses it's first ARP and BOOTPc packets go unanswered.

#3 is awful annoying.

Once the card is hard-coded 100/full, and the machine actually boots diskless (assuming it doesn't timeout), it runs perfectly clean in full duplex mode.  (minus the link lights)
>How-To-Repeat:
Just use a 2114x type card in a machine, let it go to full auto, watch the results.  Also, try building a diskless client and make sure the driver initialization routine comes back only after the card is really ready.  If this is correct, the diskless client should boot without timeouts.  Also, do this all through a switch where the card has to
do full autonegotiation with a smarter partner (rather than a hub)
>Fix:
Recompile the kernel to use de rather than dc.  de has a known problem where it can't do full-duplex, but at least it autonegotiates 100Mb/half.

I'd also suggest GENERIC kernels don't go out with dc enabled - it can really fubar an installation if things don't autonegotiate properly.

>Release-Note:
>Audit-Trail:

From: Sheldon Hearn <sheldonh@uunet.co.za>
To: wpaul@FreeBSD.org
Cc: freebsd-gnats-submit@FreeBSD.ORG
Subject: Re: kern/17829: The dc driver is seriously broken 
Date: Wed, 12 Apr 2000 12:12:43 +0200

 On Thu, 06 Apr 2000 08:24:11 MST, matt@thebiz.net wrote:
 
 > >Number:         17829
 > >Category:       kern
 > >Synopsis:       The dc driver is seriously broken
 
 Hi Bill,
 
 What do you think about the originator's suggestion to disable dc(4) in
 GENERIC?
 
 Ciao,
 Sheldon.
 
State-Changed-From-To: open->feedback 
State-Changed-By: mike 
State-Changed-When: Sat Jul 21 18:05:46 PDT 2001 
State-Changed-Why:  

Does this problem still occur in newer versions of FreeBSD, 
such as 4.3-RELEASE? 

http://www.FreeBSD.org/cgi/query-pr.cgi?pr=17829 

From: Ceri Davies <setantae@submonkey.net>
To: freebsd-gnats-submit@FreeBSD.org, matt@thebiz.net
Cc:  
Subject: Re: kern/17829: The dc driver is seriously broken
Date: Tue, 18 Sep 2001 13:28:07 +0100

 I don't know about #2, but #1 and #3 are no longer true on 4.4.
 
 Perhaps the originator would care to confirm though ?
 
 Ceri

From: Nick Sayer <nsayer@quack.kfu.com>
To: freebsd-gnats-submit@FreeBSD.org, matt@thebiz.net
Cc:  
Subject: Re: kern/17829: The dc driver is seriously broken
Date: Wed, 21 Nov 2001 08:45:07 -0800

 kern/32118 is similar to this.
 
 On a 21143 with 4.4-RELEASE autonegotiation does not work correctly with 
 10baseT/UTP media (it now does work for 100baseTX). And the lights don't work 
 either.
State-Changed-From-To: feedback->closed 
State-Changed-By: ceri 
State-Changed-When: Thu Aug 29 13:54:25 PDT 2002 
State-Changed-Why:  
Feedback timeout. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=17829 
>Unformatted:
