From owner-freebsd-current Thu Nov 11 17:35: 9 1999 Delivered-To: freebsd-current@freebsd.org Received: from gizmo.internode.com.au (gizmo.internode.com.au [192.83.231.115]) by hub.freebsd.org (Postfix) with ESMTP id 4676A14BE0 for ; Thu, 11 Nov 1999 17:35:03 -0800 (PST) (envelope-from newton@gizmo.internode.com.au) Received: (from newton@localhost) by gizmo.internode.com.au (8.9.3/8.9.3) id MAA21532; Fri, 12 Nov 1999 12:05:01 +1030 (CST) (envelope-from newton) From: Mark Newton Message-Id: <199911120135.MAA21532@gizmo.internode.com.au> Subject: Re: panic: nexus_setup_intr: NULL irq resource! To: peter.jeremy@alcatel.com.au Date: Fri, 12 Nov 1999 12:05:01 +1030 (CST) Cc: current@FreeBSD.ORG In-Reply-To: <99Nov12.121756est.40354@border.alcanet.com.au> from "Peter Jeremy" at Nov 12, 99 12:23:54 pm X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Peter Jeremy wrote: > I'm trying to enable a generic ISA multiport SIO card in -current from > just before the signal changes and get presented with the above panic > when the first SIO port on the card is attached. Well... the first port that doesn't mention an IRQ. I discussed this with Bruce last month; The following patch seemed to work-around, even though it's a stupid hack which shouldn't be committed. The problem is that the BUS_SETUP_INTR() method for ISA seems to absolutely require the specification of an IRQ, even though IRQ specification is absolutely prohibited for non-master ports in AST-compatible multi-port sio cards. Gah. I'm not completely sure that this patch does the right thing (in terms of allowing the slave serial ports to work correctly) anyway: I haven't stress-tested it, I was more interested in getting the machine involved to be able to boot. More investigation is required. - mark *** /tmp/co/src/sys/i386/isa/isa.c Wed Sep 1 16:04:24 1999 --- isa.c Wed Oct 6 23:00:26 1999 *************** *** 137,142 **** --- 137,152 ---- isa_setup_intr(device_t bus, device_t child, struct resource *r, int flags, void (*ihand)(void *), void *arg, void **cookiep) { + if (r == NULL) { + /* + * handle the case for multiport sio cards, where + * the kernel config file mentions lots of sio ports + * but only provides the irq on the master port -- other + * ports panic in nexus_setup_intr() without this + */ + return 0; + } + return (BUS_SETUP_INTR(device_get_parent(bus), child, r, flags, ihand, arg, cookiep)); } ---- Mark Newton Email: newton@internode.com.au (W) Network Engineer Email: newton@atdot.dotat.org (H) Internode Systems Pty Ltd Desk: +61-8-82232999 "Network Man" - Anagram of "Mark Newton" Mobile: +61-416-202-223 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message