Skip site navigation (1)Skip section navigation (2)
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>