From owner-freebsd-hardware Tue May 20 19:42:55 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id TAA12145 for hardware-outgoing; Tue, 20 May 1997 19:42:55 -0700 (PDT) Received: from hydrogen.nike.efn.org (resnet.uoregon.edu [128.223.170.28]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id TAA12137 for ; Tue, 20 May 1997 19:42:44 -0700 (PDT) Received: (from jmg@localhost) by hydrogen.nike.efn.org (8.8.5/8.8.5) id TAA27049; Tue, 20 May 1997 19:44:01 -0700 (PDT) Message-ID: <19970520194401.23424@hydrogen.nike.efn.org> Date: Tue, 20 May 1997 19:44:01 -0700 From: John-Mark Gurney To: Brett Glass Cc: rberndt@nething.com, WELCHDW@wofford.edu, HARDWARE@FreeBSD.ORG Subject: Re: isa bus and boca multiport boards References: <8825649D.00771D31.00@IWND1.infoworld.com> <3.0.1.32.19970520125159.006dbe70@lariat.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.69 In-Reply-To: <3.0.1.32.19970520125159.006dbe70@lariat.org>; from Brett Glass on Tue, May 20, 1997 at 12:51:59PM -0600 Reply-To: John-Mark Gurney Organization: Cu Networking X-Operating-System: FreeBSD 2.2.1-RELEASE i386 X-PGP-Fingerprint: B7 EC EF F8 AE ED A7 31 96 7A 22 B3 D8 56 36 F4 X-Files: The truth is out there X-URL: http://resnet.uoregon.edu/~gurney_j/ Sender: owner-hardware@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Brett Glass scribbled this message on May 20: > At 04:14 PM 5/20/97 -0400, you wrote: > > >Since the entire set of ports must be scanned whenever an interrupt occurs, > >maybe there is too much delay in getting to the upper ports. Something gets > >locked up if they overflow. I left several messages, but no one could > >figure it out. > > Maybe the sio driver should be recoded in optimized ASM. I can see some > major C inefficiencies in it, including lots of repeated pointer > dereferences and control structures that the compiler would probably > optimize poorly. I've generated super-tight assembler for serial I/O. > > A stopgap might be be use a couple of IRQs for the different ports, if the > board lets you do it. I put no more than 4 UARTs on an IRQ in my system > because the driver loops over the UARTS at least twice per IRQ. well... this won't do any good... as right now when COM_MULTIPORT is used all the sio ports are scanned until they scan without hitting any change (input, signal change)... probably what should go in before this is splitting the intrrupt routine to only scan the ports that are on a certain board... this shouldn't be THAT hard to do... and I've thought about doing it... what you might try though is to set the fifo trigger level lower (I have code that allows you to have a kernel define but haven't committed it) than the default of 14 on 16550s... I had a Bt946 that would cause my multiport board to overflow... so I had to set the fifo levels lower... ttyl.. > > --Brett > -- John-Mark Cu Networking Modem/FAX: +1 541 683 6954 Live in Peace, destroy Micro$oft, support free software, run FreeBSD