Date: Wed, 21 May 1997 00:44:05 -0700 From: John-Mark Gurney <jmg@hydrogen.nike.efn.org> To: Bruce Evans <bde@zeta.org.au> Cc: brett@lariat.org, HARDWARE@freebsd.org, rberndt@nething.com, WELCHDW@wofford.edu Subject: Re: isa bus and boca multiport boards Message-ID: <19970521004405.04664@hydrogen.nike.efn.org> In-Reply-To: <199705210705.RAA10446@godzilla.zeta.org.au>; from Bruce Evans on Wed, May 21, 1997 at 05:05:21PM %2B1000 References: <199705210705.RAA10446@godzilla.zeta.org.au>
next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Evans scribbled this message on May 21: > >I was under the impression that this is what was already done, but now that > >I look at it, I see that you're right! The code loops on a variable called > >"unit", incrementing it from 0 to the precompiled constant NSIO. This can > >waste a great deal of time, especially since the interrupts are > >edge-triggered and the list is scanned at least twice per interrupt. > > Many minor improvements are possible, but significant improvements are > difficult to achieve without a hardware register giving a bitmap of the > active interrupts. I believe BocaBoards have register(s) for this. > Someone who has a BocaBoard should implement checking the register. I have a couple 4port boards that have this... I was at one point going to work on this.. but quickly quit as I was just beging kernel work.. and didn't feel like creating a new way to map a siox to portx on the board... but right now I think that if we first break down the code to support only one set of ports per intrupt insteads of scanning 'em all then a small bit of code could be layered on that to support using the register... I'm forming an idea in my head on how to code this... if no one else is going to code this then I'll start work on it RSN... :) > >The edge-catching algorithm is also less efficient than it might be. To > >make sure you haven't missed an edge, you must scan the UARTs and get ALL > >THE WAY AROUND THE LIST ONCE without finding any more ports to service. You > >can then return from the ISR. The two best ways to do this are (a) set a > > I never got around to implementing this. hmm... this shouldn't be that hard to add... I think I'll start testing something that does this... all we can say is that smart cards are infinately better than the old 16x50 uarts in these regards... of course they happen to be quite a bit cheaper... oh well... ttyl.. -- John-Mark Cu Networking Modem/FAX: +1 541 683 6954 Live in Peace, destroy Micro$oft, support free software, run FreeBSD
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19970521004405.04664>