Can't boot off the live CD...

Matthew Dillon dillon at apollo.backplane.com
Thu Mar 18 16:50:23 PST 2004


:Hi Matt,
:
:I had a serial cable around and was able to get the text. Below is the
:output from boot -v and trace.

   Ok.  I have a patch (enclosed below).  Are you able to compile a new
   kernel or do I need to generate a new ISO for you to burn?

   This will not make 'xl' work, but hopefully it will allow the kernel
   to continue booting.

						-Matt


Index: xl/if_xl.c
===================================================================
RCS file: /cvs/src/sys/dev/netif/xl/if_xl.c,v
retrieving revision 1.9
diff -u -r1.9 if_xl.c
--- xl/if_xl.c	14 Mar 2004 15:36:53 -0000	1.9
+++ xl/if_xl.c	19 Mar 2004 00:47:31 -0000
@@ -1461,6 +1461,8 @@
 		goto fail;
 	}
 
+	sc->xl_flags |= XL_FLAG_ATTACH_MAPPED;
+
 	/* Reset the adapter. */
 	xl_reset(sc);
 
@@ -1811,9 +1813,16 @@
 		res = SYS_RES_IOPORT;
 	}
 
-	xl_reset(sc);
-	xl_stop(sc);
-	ether_ifdetach(ifp);
+	/*
+	 * Only try to communicate with the device if we were able to map
+	 * the ports.  This flag is set before ether_ifattach() so it also
+	 * governs our call to ether_ifdetach().
+	 */
+	if (sc->xl_flags & XL_FLAG_ATTACH_MAPPED) {
+		xl_reset(sc);
+		xl_stop(sc);
+		ether_ifdetach(ifp);
+	}
 	
 	if (sc->xl_miibus)
 		device_delete_child(dev, sc->xl_miibus);
Index: xl/if_xlreg.h
===================================================================
RCS file: /cvs/src/sys/dev/netif/xl/if_xlreg.h,v
retrieving revision 1.3
diff -u -r1.3 if_xlreg.h
--- xl/if_xlreg.h	24 Jan 2004 06:34:02 -0000	1.3
+++ xl/if_xlreg.h	19 Mar 2004 00:45:11 -0000
@@ -576,6 +576,7 @@
 #define XL_FLAG_INVERT_MII_PWR		0x0040
 #define XL_FLAG_NO_XCVR_PWR		0x0080
 #define XL_FLAG_USE_MMIO		0x0100
+#define XL_FLAG_ATTACH_MAPPED		0x0200	/* set after ports mapped */
 
 #define XL_NO_XCVR_PWR_MAGICBITS	0x0900
 





More information about the Bugs mailing list