Skip site navigation (1)Skip section navigation (2)
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>