Date: Tue, 24 Aug 1999 08:33:07 +0800 From: Peter Wemm <peter@netplex.com.au> To: Nick Hibma <hibma@skylink.it> Cc: Doug Rabson <dfr@nlsystems.com>, Bill Paul <wpaul@skynet.ctr.columbia.edu>, current@FreeBSD.ORG Subject: Re: Monday strikes again Message-ID: <19990824003307.ED80A1C1F@overcee.netplex.com.au> In-Reply-To: Your message of "Tue, 24 Aug 1999 00:42:23 %2B0200." <Pine.BSF.4.10.9908240038180.354-100000@heidi.plazza.it>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990824003307.ED80A1C1F>