Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Jun 1999 22:46:40 +0100 (BST)
From:      Doug Rabson <dfr@nlsystems.com>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        current@freebsd.org, newton@atdot.dotat.org
Subject:   Re: IRQ sharing with newbus
Message-ID:  <Pine.BSF.4.05.9906012244320.411-100000@herring.nlsystems.com>
In-Reply-To: <199906011936.FAA11098@godzilla.zeta.org.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 2 Jun 1999, Bruce Evans wrote:

> >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).
> 
> This was apparently broken when sio was converted to new-bus.  The driver
> (actually mainly isa.c) used to simply skip irq allocation for devices
> with no irq (COM_MULTIPORT non-master ones and polled ones).

This is almost certainly just simple breakage. I'll take a look at the
code and see if I can spot something. The slave devices shouldn't be
trying to allocate interrupts at all.

> 
> >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.
> 
> I don't understand why this doesn't get further, since the RF_SHAREABLE
> flag is (incorrectly) specified.  sio fast interrupts are particularly
> unshareable.  sio now forces fast interrupts, although this is wrong for
> sio pccard devices.
> 
> >So, guys -- What is the officially blessed way of sharing IRQs under
> >newbus?
> 
> It should be almost the same as it used to be: specify RF_SHAREABLE for
> allocating shared irq resources; this corresponds to not specifying
> INTR_EXCL in the pre-new-bus interface (intr_create()?).

I don't think the sio multiport stuff needs to use RF_SHAREABLE - the
master device knows how to field interrupts for the slaves (at least thats
how I understood it).

--
Doug Rabson				Mail:  dfr@nlsystems.com
Nonlinear Systems Ltd.			Phone: +44 181 442 9037




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?Pine.BSF.4.05.9906012244320.411-100000>