From owner-freebsd-bugs Sat May 25 12:50:00 1996 Return-Path: owner-bugs Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id MAA11160 for bugs-outgoing; Sat, 25 May 1996 12:50:00 -0700 (PDT) Received: from freefall.freebsd.org (localhost.cdrom.com [127.0.0.1]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id MAA11155; Sat, 25 May 1996 12:49:57 -0700 (PDT) Message-Id: <199605251949.MAA11155@freefall.freebsd.org> To: mevans@candle.com (Michael T. Evans) cc: gtc@aloft.att.com, bugs@freebsd.org Subject: Re: 3c509 transmit hang In-reply-to: Your message of "Fri, 24 May 1996 19:34:03 CDT." <199605250035.AA09802@phobos.Candle.Com> Date: Sat, 25 May 1996 12:49:57 -0700 From: "Justin T. Gibbs" Sender: owner-bugs@freebsd.org X-Loop: FreeBSD.org Precedence: bulk This seems to work on my 3c509, but I just realized that I'm getting terrible performance for incoming packets. Looking at the hub, I get a quick burst of activity followed by silence for a second, followed by another burst. I would guess this is the watchdog timer expiring and unwedging the card. Has anyone else seen this or begun to investigate it? I also noticed some portions of the code running at splbio(). Why would this be necessary? Also the ed driver assumes that ed_start is always called at splimp(). ep_start does its own splimp protection although it is only called from the interrupt handler and from the higher networking code. I assume I can kill the splimp() stuff in ep_start just as was done in the ed driver? I guess its time to hit the learning curve for network drivers. 8-) >Gary, > > To my horror, I just realized that I typed the wrong subject >line in the original post. The driver I modified was for the >3c590, not the 3c509. The good news is that the basic >operation appears to be similar, and yes the defect IS also in >the 3c509 driver i386/isa/if_ep.c. To prevent the hang, locate >the following line at or near line 702: > > outw(BASE + EP_W1_TX_PIO_WR_1, len); > > ... and change it to: > > outw(BASE + EP_W1_TX_PIO_WR_1, len | 0x8000); > >Mike -- Justin T. Gibbs =========================================== FreeBSD: Turning PCs into workstations ===========================================