Date: Mon, 10 Jan 2000 01:02:40 -0500 From: Jonathan Chen <jon@spock.org> To: Warner Losh <imp@village.org> Cc: Greg Lehey <grog@lemis.com>, current@FreeBSD.ORG Subject: Re: 3C589 problems (was: 4.0 code freeze scheduled for Jan 15th) Message-ID: <A7D0177343GZ7J8374.A1728B0F840@msidl.d0.localhost> In-Reply-To: <200001100426.VAA03237@harmony.village.org>; from imp@village.org on Sun, Jan 09, 2000 at 09:26:45PM -0700 References: <20000109163314.A515@mojave.worldwide.lemis.com> <200001071246.XAA05593@avalon.reed.wattle.id.au> <200001072052.MAA01482@mass.cdrom.com> <200001062246.PAA80310@harmony.village.org> <200001071246.XAA05593@avalon.reed.wattle.id.au> <20000109163314.A515@mojave.worldwide.lemis.com> <200001100426.VAA03237@harmony.village.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Jan 09, 2000 at 09:26:45PM -0700, Warner Losh wrote: > [[ Moved to just current ]] > > In message <20000109163314.A515@mojave.worldwide.lemis.com> Greg Lehey writes: > : That may be the answer for Darren's problem. It's definitely not the > : case for the ones we have been discussing on -mobile. > > There are definitely known issues with the ep0 driver. Right now it > doesn't interrupt quite right on Rx packets. That's the majority of > the problems in current driver, at least with the 3c589D that I have. > I see only about 150kBps from the card. I've not had time to deal > with looking for this problem. With what little pccard/ethernet programming experiences I've had, this problem seems to be caused by the interrupt for the card getting lost somewhere before getting processed by the handler. The reason you still get traffic is because of the watchdog. (Try uncommenting the commented out lines in sys/dev/ep/if_ep.c in the function ep_if_watchdog(), you should start seeing lots of kernel messages saying "ep: watchdog".) After looking briefly at the ep files, I saw something that doesn't seem right. In sys/dev/ep/if_ep_pccard.c around line 176, there's a comment that says "Fake IRQ must be 3". Now maybe the card requires it, or maybe the original author just didn't have anything on IRQ 3, I don't know. So, I'd suggest turning off com2 or whatever you have on irq3, -or- change the "fake irq" to something else you do have free on the next line (ie, 0x3000-> 0xa000 if you have IRQ10 free). If this works, great... if not, I hope Warner gets some more free time. ;) As for the other problem with collisions, I did a search on the word collision on sys/dev/ep/if_ep.c, and found only one mention at around line 620. The comment says "TXS_MAX_COLLISION - we shouldn't get here". I suspect it does get there, so I suggest putting a printf there to find out. I also suspect that the card may require a reset or some other stuff if and when it "gets there". If that's the case, someone else with the specs on the 589 cards can look that up and do it. (I'll have to admit, I looked only briefly, and know virtually nothing about how the pccard stuff works on freebsd, have no ep card, nor ever looked at the documentation for it, so what just said may be completely wrong -- don't be surprised if it doesn't work.) -- (o_ 1-2-1-2-1-2-1-2-1-2-1-2-1-2-1-2-1-2-1-2-1-2-1-2-1-2-1-2-1-2 _o) \\\_\ Jonathan Chen jon@spock.org /_/// <____) The surest protection against temptation is cowardice. --MT (____> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A7D0177343GZ7J8374.A1728B0F840>