From owner-freebsd-current Mon Aug 23 17:34:52 1999 Delivered-To: freebsd-current@freebsd.org Received: from overcee.netplex.com.au (overcee.netplex.com.au [202.12.86.7]) by hub.freebsd.org (Postfix) with ESMTP id 0142D14EC7 for ; Mon, 23 Aug 1999 17:34:28 -0700 (PDT) (envelope-from peter@netplex.com.au) Received: from netplex.com.au (localhost [127.0.0.1]) by overcee.netplex.com.au (Postfix) with ESMTP id ED80A1C1F; Tue, 24 Aug 1999 08:33:07 +0800 (WST) (envelope-from peter@netplex.com.au) X-Mailer: exmh version 2.0.2 2/24/98 To: Nick Hibma Cc: Doug Rabson , Bill Paul , current@FreeBSD.ORG Subject: Re: Monday strikes again In-reply-to: Your message of "Tue, 24 Aug 1999 00:42:23 +0200." Date: Tue, 24 Aug 1999 08:33:07 +0800 From: Peter Wemm Message-Id: <19990824003307.ED80A1C1F@overcee.netplex.com.au> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Nick Hibma wrote: > Anything the change to nexus.c that Peter Wemm made would change? Yes, 1.14 broke non-PCI systems, and 1.15 fixed it. I forgot to change: DEVICE_METHOD(device_attach, bus_generic_attach); to: DEVICE_METHOD(device_attach, nexus_attach); .. which would explain why nexus_attach() wasn't being called. There were a few other problems, including the eisa probe/attach that would have returned ENXIO and failing the attach before isa was attached. > 1.15 Mon Aug 23 19:23:33 1999 UTC by peter > CVS Tags: HEAD > Diffs to 1.14 > > The nexus_attach() code works a lot better if it's actually connected to > the device methods... Also, don't fail to add eisa/isa because a > previous device failed to attach. > > > 1.14 Sun Aug 22 19:56:55 1999 UTC by peter > Diffs to 1.13 > > Take advantage of the apm/npx code and let them identify themselves > rather than having explicit hooks here. Treat the eisa/isa attach a > little differently so that we defer the decision about to attach > eisa/isa to the motherboard directly only if the PCI probe (if it > exists) fails to turn up a PCI->EISA/ISA bridge. This restores the > original device geometry where ISA and/or EISA attach to their bridge > rather than bypassing and going to the root. > > > http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/i386/i386/nexus.c > > > > Okay, further investigation shows that configure() has the following > > > code: > > > > > > #if NPNP > 0 > > > /* Activate PNP. If no drivers are found, let ISA probe them.. */ > > > pnp_configure(); > > > #endif > > > > > > /* > > > * Explicitly probe and attach ISA last. The isa bus saves > > > * it's device node at attach time for us here. > > > */ > > > if (isa_bus_device) > > > bus_generic_attach(isa_bus_device); > > > > > > However isa_bus_device is still NULL so we never get any ISA devices > > > attached. No ISA devices means no console (the VGA card and serial ports > > > are both ISA devices), so we explode. > > > > > > Since the ISA bus in this machine is on-board instead of being hung > > > off a PCI to ISA bridge, I suspect that somebody broke the handling > > > on on-board ISA buses. > > > > > > Thank you very much, may I have another. > > > > It seems like isa bus is never being attached for some reason. Have a > > look at nexus_attach() and see if anything suspicious is happening (like > > an error return from device_probe_and_attach()). Cheers, -Peter -- Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message