From owner-freebsd-hardware Thu Jul 18 08:10:05 1996 Return-Path: owner-hardware Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id IAA26089 for hardware-outgoing; Thu, 18 Jul 1996 08:10:05 -0700 (PDT) Received: from charon.siemens.be (charon.siemens.be [193.210.172.10]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id IAA26057 for ; Thu, 18 Jul 1996 08:09:57 -0700 (PDT) Received: by charon.siemens.be (8.7.4/nsafe-1.3) id ; Thu, 18 Jul 1996 15:08:51 GMT Received: from atea.atea.be(193.210.197.11) by charon via smap (V1.3mjr) id sma009049; Thu Jul 18 17:08:43 1996 Received: from atdec1 by atea with SMTP (1.37.109.4/15.6-FW) id AA11568; Thu, 18 Jul 96 17:08:03 +0200 Received: from vnet by atdec1.atea.be (5.65/Ultrix3.0-C) id AA20167; Thu, 18 Jul 1996 17:08:52 +0200 Received: by vnet.atea.be; Thu, 18 Jul 96 17:08:58 +0200 Date: Thu, 18 Jul 96 18:08:38 WET Message-Id: X-Priority: 3 (Normal) To: From: (Rob Schofield) Subject: Multiple COM ports with same IRQ X-Incognito-Sn: 319 X-Incognito-Format: VERSION=2.01a ENCRYPTED=NO Sender: owner-hardware@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Has anyone tried converging two or more more COM ports on one IRQ, ala multi-port board method? Let me explain... Using sio for multiport configuration is reasonably straightforward according to the Handbook. However, if you've got more UARTs than the standard IBM pair (ie., COM1 & 2) the naughty "convention" is to have COM1 & 3 on IRQ4 and COM2 & 4 on IRQ3. Under DOS, this is a functional limitation and causes problems. If there's no free IRQ lines left in your box, then you can't just re-assign COM3 & 4 IRQs to something other than IRQ4 or 3. EISA boxes can use shared interrupts, level or edge triggered. ISA boxes can have hardware installed (accidentally?) with devices sharing the same IRQ, but the drivers cannot deal with it. So - here's the nub; suppose we have an ISA/EISA box with sio0 (DOS = COM1) attached to a mouse, IO add XXX, interrupt 4; sio1 (COM 2) at IO XXY and sio2 (COM 3) at IO XXZ, sharing interupt 3 (you could also plonk in COM4 on the same IRQ). Then, under FreeBSD, configure sio to recognise the 3 ISA devices at the three IO adds XXX, XXY and XXZ, with sio 2 & 3 considered to be a multiport board comprising 2 UARTS sharing one master IRQ: device sio0 at isa? port 0xXXX tty irq 4 vector siointr options "COM_MULTIPORT" device sio1 at isa? port 0xXXY tty flags 0x??? device sio2 at isa? port 0xXXZ tty flags 0x??? irq 3 vector siointr - plus the neccessary /dev device entries as well. XXX is at a lower IO add then XXY, and XXY is lower than XXZ. Considering the UARTS will generate edge interrupt rather than level, will this work? Will sio grab the "dual port" interrupt then interrogate the individual status regs of the UARTS? I'm not too concerned with operation under DOS here, so I'm only concerned with FBSD. Somebody tell me I'm an idiot and why this won't work (otherwise someone would have done it by now, wouldn't they?) Rob Schofield -- Happiness is a smoking processor....... Rob Schofield M.Sc. AMIEE schofiel@xs4all.nl http://www.xs4all.nl/~schofiel