svn commit: r186381 - projects/cambria/sys/arm/xscale/ixp425

Sam Leffler sam at FreeBSD.org
Sun Dec 21 12:30:14 PST 2008


Author: sam
Date: Sun Dec 21 20:30:14 2008
New Revision: 186381
URL: http://svn.freebsd.org/changeset/base/186381

Log:
  use feature control mask when probing

Modified:
  projects/cambria/sys/arm/xscale/ixp425/if_npe.c

Modified: projects/cambria/sys/arm/xscale/ixp425/if_npe.c
==============================================================================
--- projects/cambria/sys/arm/xscale/ixp425/if_npe.c	Sun Dec 21 20:29:47 2008	(r186380)
+++ projects/cambria/sys/arm/xscale/ixp425/if_npe.c	Sun Dec 21 20:30:14 2008	(r186381)
@@ -297,16 +297,21 @@ npe_probe(device_t dev)
 		[NPE_B] = "IXP NPE-B",
 		[NPE_C] = "IXP NPE-C"
 	};
+	int unit = device_get_unit(dev);
 	int npeid;
 
+	if (unit > 2 || 
+	    (ixp4xx_read_feature_bits() &
+	     (unit == 0 ? EXP_FCTRL_ETH0 : EXP_FCTRL_ETH1)) == 0)
+		return EINVAL;
+
 	npeid = -1;
 	if (!override_npeid(dev, "npeid", &npeid))
-		npeid = unit2npeid(device_get_unit(dev));
+		npeid = unit2npeid(unit);
 	if (npeid == -1) {
-		device_printf(dev, "unit not supported\n");
+		device_printf(dev, "unit %d not supported\n", unit);
 		return EINVAL;
 	}
-	/* XXX check feature register to see if enabled */
 	device_set_desc(dev, desc[npeid]);
 	return 0;
 }


More information about the svn-src-projects mailing list