Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 2 Oct 1999 19:18:44 +0100 (BST)
From:      Doug Rabson <dfr@nlsystems.com>
To:        Daniel Eischen <eischen@vigrid.com>
Cc:        sos@freebsd.dk, freebsd-current@freebsd.org
Subject:   Re: Recent kernel hangs during boot with pnp sio.
Message-ID:  <Pine.BSF.4.10.9910021917160.322-100000@salmon.nlsystems.com>
In-Reply-To: <199910011303.JAA16640@pcnet1.pcnet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 1 Oct 1999, Daniel Eischen wrote:

> Soren Schmidt wrote:
> > It seems Daniel M. Eischen wrote:
> > > 
> > > More info on the kernel hang.
> > > 
> > > Removing pnp from the kernel configuration will allow me to boot
> > > and successfully detects my pnp modem.  So the culprit seems to
> > > be the new pnp code.  Suggestions welcome.
> > 
> > Hmm, I also have severe problems with the PnP stuff and my 3C509
> > cards, it just wont work as the pnp code finds and allocates
> > adresses for the card, but the card probe doesn't pick them up...
> 
> Here, it might be the opposite.  The normal sio probes pick up the
> pnp modem just fine, and then perhaps pnp comes along and trounces
> on what has already been setup/configured.

Could you try this patch for me. It attempts to disable pnp devices before
running the regular probes. This allows it to 'hide' those devices from
the heuristic probes so that they don't get seen twice when the pnp probe
happens.

Index: isa_common.c
===================================================================
RCS file: /home/ncvs/src/sys/isa/isa_common.c,v
retrieving revision 1.9
diff -u -r1.9 isa_common.c
--- isa_common.c	1999/09/07 08:42:47	1.9
+++ isa_common.c	1999/09/25 17:11:59
@@ -435,7 +435,21 @@
 		return;
 
 	/*
-	 * First probe all non-pnp devices so that they claim their
+	 * First disable all pnp devices so that they don't get
+	 * matched by legacy probes.
+	 */
+	for (i = 0; i < nchildren; i++) {
+		device_t child = children[i];
+		struct isa_device *idev = DEVTOISA(child);
+		struct isa_config config;
+
+		bzero(&config, sizeof config);
+		if (idev->id_config_cb)
+			idev->id_config_cb(idev->id_config_arg, &config, 0);
+	}
+
+	/*
+	 * Next probe all non-pnp devices so that they claim their
 	 * resources first.
 	 */
 	for (i = 0; i < nchildren; i++) {
@@ -449,7 +463,7 @@
 	}
 
 	/*
-	 * Next assign resource to pnp devices and probe them.
+	 * Finally assign resource to pnp devices and probe them.
 	 */
 	for (i = 0; i < nchildren; i++) {
 		device_t child = children[i];

--
Doug Rabson				Mail:  dfr@nlsystems.com
Nonlinear Systems Ltd.			Phone: +44 181 442 9037




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?Pine.BSF.4.10.9910021917160.322-100000>