From owner-freebsd-current Mon Apr 19 10:41:41 1999 Delivered-To: freebsd-current@freebsd.org Received: from zibbi.mikom.csir.co.za (zibbi.mikom.csir.co.za [146.64.24.58]) by hub.freebsd.org (Postfix) with ESMTP id ECB7614C8E for ; Mon, 19 Apr 1999 10:41:13 -0700 (PDT) (envelope-from jhay@zibbi.mikom.csir.co.za) Received: (from jhay@localhost) by zibbi.mikom.csir.co.za (8.9.3/8.9.3) id TAA97791; Mon, 19 Apr 1999 19:38:31 +0200 (SAT) (envelope-from jhay) From: John Hay Message-Id: <199904191738.TAA97791@zibbi.mikom.csir.co.za> Subject: Re: newbus and isa auto irq In-Reply-To: from Doug Rabson at "Apr 19, 1999 09:53:20 am" To: dfr@nlsystems.com (Doug Rabson) Date: Mon, 19 Apr 1999 19:38:31 +0200 (SAT) Cc: current@freebsd.org X-Mailer: ELM [version 2.4ME+ PL54 (25)] 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 > > > > I ave found one more thing that seems to be broken. I have used the > > irq "autodetect" feature of the ed(4) for a long time, but it seems > > that the newbus compatability shim is not doing the right thing > > with it. My kernel config file have a line like this: > > > > device ed0 at isa? port 0x280 net irq ? iomem 0xd8000 > > > > The card gets probed but you just get device timeouts and there is no > > mention of an irq for that device in the probe output. Booting with > > -c and specifying the irq there also didn't work. Rebuilding the kernel > > with a config file which specified the irq did work though. > > Could you run a test kernel for me with this patch and tell me what it > prints. > It doesn't print anything for the ed0 device. It does print 2 lines though, one for wdc0 and one for the printer port: ------- Apr 19 19:22:27 orca /kernel.doug: fdc0: FIFO enabled, 8 bytes threshold Apr 19 19:22:27 orca /kernel.doug: fd0: <1440-KB 3.5" drive> at fdc0 drive 0 Apr 19 19:22:27 orca /kernel.doug: isa_compat_probe: old irq=-1, new mask=4000, new irq=14 Apr 19 19:22:27 orca /kernel.doug: wdc0 at port 0x1f0-0x1f7 irq 14 on isa0 Apr 19 19:22:27 orca /kernel.doug: wdc0: unit 0 (wd0): Apr 19 19:22:27 orca /kernel.doug: wd0: 610MB (1249920 sectors), 1240 cyls, 16 h eads, 63 S/T, 512 B/S Apr 19 19:22:27 orca /kernel.doug: wdc0: interrupting at irq 14 ... Apr 19 19:22:28 orca /kernel.doug: isa_compat_probe: old irq=-1, new mask=80, new irq=7 Apr 19 19:22:28 orca /kernel.doug: ppc0 at port 0x378 irq 7 on isa0 Apr 19 19:22:28 orca /kernel.doug: ppc0: SMC FDC37C665GT chipset (PS2/NIBBLE) in COMPATIBLE mode Apr 19 19:22:28 orca /kernel.doug: ppb0: IEEE1284 device found Apr 19 19:22:28 orca /kernel.doug: Probing for PnP devices on ppbus0: Apr 19 19:22:28 orca /kernel.doug: lpt0: on ppbus 0 Apr 19 19:22:28 orca /kernel.doug: lpt0: Interrupt-driven port Apr 19 19:22:28 orca /kernel.doug: ppc0: interrupting at irq 7 Apr 19 19:22:28 orca /kernel.doug: ed0 at port 0x280-0x29f on isa0 Apr 19 19:22:28 orca /kernel.doug: ed0: address 00:00:c0:1d:43:db, type SMC8216/ SMC8216C (16 bit) Apr 19 19:22:28 orca /kernel.doug: Intel Pentium detected, installing workaround for F00F bug -------- > - if (dvp->id_irq != (1 << isa_get_irq(dev))) > + if (dvp->id_irq != (1 << isa_get_irq(dev))) { > +printf("isa_compat_probe: old irq=%d, new mask=%x, new irq=%d\n", > + irq_get_irq(dev), dvp->id_irq, ffs(dvp->id_irq) - 1); > isa_set_irq(dev, ffs(dvp->id_irq) - 1); > + } I assume the irq_get_irq() should be isa_get_irq(). I have tried the patch that Luoqi posted and that works for me. Although even with that the the userconfig by booting with -c don't work. It just plain ignores what you do there. John -- John Hay -- John.Hay@mikom.csir.co.za To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message