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>