Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Jun 1999 21:27:09 +0930 (CST)
From:      Mark Newton <newton@atdot.dotat.org>
To:        current@freebsd.org
Subject:   IRQ sharing with newbus
Message-ID:  <199906011157.VAA00496@atdot.dotat.org>

next in thread | raw e-mail | index | archive | help

I've blown the dust off an old ISA multiport serial card.  In the
old days, I used to make it work with BSD by including "options 
COM_MULTIPORT" and using the following config file directives:

device  sio2    at isa? port 0x280 tty flags 0x0201 irq 5 vector siointr
device  sio3    at isa? port 0x288 tty flags 0x0201
device  sio4    at isa? port 0x290 tty flags 0x0201
device  sio5    at isa? port 0x298 tty flags 0x0201
device  sio6    at isa? port 0x2a0 tty flags 0x0201
device  sio7    at isa? port 0x2a8 tty flags 0x0201
device  sio8    at isa? port 0x2b0 tty flags 0x0201
device  sio9    at isa? port 0x2b8 tty flags 0x0201

Under newbus, of course, things look slightly different, so I tried
this:

device  sio2    at isa? port 0x280 flags 0x0201 irq 5
device  sio3    at isa? port 0x288 flags 0x0201
device  sio4    at isa? port 0x290 flags 0x0201
   [ ... ]
device  sio9    at isa? port 0x2b8 flags 0x0201

Natch:  "panic: NULL irq resource!" from nexus_setup_intr() in
sys/i386/i386/nexus.c while probing sio3 (and I know that sio2
is probing successfully - see below).

Assuming (from the panic message) that it wants an IRQ, I've tried this:

device  sio2    at isa? port 0x280 flags 0x0201 irq 5 conflicts
device  sio3    at isa? port 0x288 flags 0x0201 irq 5 conflicts
   [ ... ]
device  sio9    at isa? port 0x2b8 flags 0x0201 irq 5 conflicts

Same bat-panic, same bat-probe.

If I boot -c and disable sio3-thru-sio9, the kernel successfully probes
and boots, but the "slave" ports on the serial card will, of course, never
be seen.  (This is how I know it's the sio3 probe that's causing the panic).

I'm guessing the reason for this is that an IRQ that has been "eaten" 
by a device under the newbus architecture is made unavailable for subsequent
devices, so the "irq 5" hint on sio3-thru-sio9 is ignored, and there are
no alternatives the device can try instead.

So, guys -- What is the officially blessed way of sharing IRQs under
newbus?

    - mark

--------------------------------------------------------------------
I tried an internal modem,                    newton@atdot.dotat.org
     but it hurt when I walked.                          Mark Newton
----- Voice: +61-4-1620-2223 ------------- Fax: +61-8-82231777 -----


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?199906011157.VAA00496>