From owner-freebsd-current Sun Jun 28 06:02:50 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id GAA18249 for freebsd-current-outgoing; Sun, 28 Jun 1998 06:02:50 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from spinner.netplex.com.au (spinner.netplex.com.au [202.12.86.3]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id GAA18242 for ; Sun, 28 Jun 1998 06:02:45 -0700 (PDT) (envelope-from peter@netplex.com.au) Received: from spinner.netplex.com.au (localhost [127.0.0.1]) by spinner.netplex.com.au (8.8.8/8.8.8/Spinner) with ESMTP id VAA07986; Sun, 28 Jun 1998 21:01:19 +0800 (WST) (envelope-from peter@spinner.netplex.com.au) Message-Id: <199806281301.VAA07986@spinner.netplex.com.au> X-Mailer: exmh version 2.0.2 2/24/98 To: Zach Heilig cc: Mike Smith , bde@zeta.org.au, current@FreeBSD.ORG Subject: Re: ppbus is broken. In-reply-to: Your message of "Sun, 28 Jun 1998 04:54:53 EST." <19980628045453.B650@znh.org.> Date: Sun, 28 Jun 1998 21:01:19 +0800 From: Peter Wemm Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Zach Heilig wrote: > BTW, I just tried this again (with a fairly recent [june 25] kernel). > relevant kernel config lines: > > controller ppbus0 > device nlpt0 at ppbus? > controller ppc0 at isa? port? tty irq 7 vector ppcintr > > detected as: > > ppc0 at 0x378 irq 7 on isa > ppc0: Generic chipset in EPP mode (EPP 1.9) > nlpt0: on ppbus 0 > nlpt0: Interrupt-driven port > > I can't say for sure that it is fixed, but at least one pdf that used get hos ed > comes out properly. It's a real shame that the 'tty', 'bio', 'net' flags and the 'vector xxxintr' are required. It's quite a simple change to config(8) and struct isa_device and isa.c to enable isa drivers to register their own interrupt handler and mask at probe time. The best part is that it can be done incrementally.. We can add an id_maskptr field, and have config generate an single 'isa_devtab' rather than an 'isa_devtab_bio', 'isa_devtab_net', etc. If the mask is specified in the config file, it would be used to initialize the field. The driver can change this at probe time, and isa.c will automatically use it. It would then become: controller ppc0 at isa? port? irq 7 but the old specification would still be accepted just fine (but would essentially be ignored). I don't know how this fits in with the future plans for interrupt registration etc, but it's a low impact change that can be gradually taken advantage of in drivers. This will become more of an issue with CAM, since it's driver interrupts are masked by 'cam' rather than 'bio', and it's very easy to get subtle (but very destructive) problems if the user 'forgets' to change all the 'bio' flags to 'cam'. It would be better if it wasn't required and was essentially ignored. The device driver knows this information best, there's no need to duplicate it in the config file. Cheers, -Peter -- Peter Wemm Netplex Consulting To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message