Module Name:    src
Committed By:   cliff
Date:           Wed Jan 13 09:41:53 UTC 2010

Modified Files:
        src/sys/arch/evbmips/rmixl [matt-nb5-mips64]: cpu.c

Log Message:
- attach at cpucore
- match multiple cpus (RMI "threads")
- print of cpu freq and call to cpu_identify() moved to parent


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.1 -r1.1.2.2 src/sys/arch/evbmips/rmixl/cpu.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/evbmips/rmixl/cpu.c
diff -u src/sys/arch/evbmips/rmixl/cpu.c:1.1.2.1 src/sys/arch/evbmips/rmixl/cpu.c:1.1.2.2
--- src/sys/arch/evbmips/rmixl/cpu.c:1.1.2.1	Sun Sep 13 03:27:38 2009
+++ src/sys/arch/evbmips/rmixl/cpu.c	Wed Jan 13 09:41:53 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.c,v 1.1.2.1 2009/09/13 03:27:38 cliff Exp $	*/
+/*	$NetBSD: cpu.c,v 1.1.2.2 2010/01/13 09:41:53 cliff Exp $	*/
 
 /*
  * Copyright 2002 Wasabi Systems, Inc.
@@ -35,13 +35,16 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include "locators.h"
+
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.1.2.1 2009/09/13 03:27:38 cliff Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.1.2.2 2010/01/13 09:41:53 cliff Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
 #include <sys/systm.h>
 #include <sys/cpu.h>
+#include <evbmips/rmixl/cpucorevar.h>
 
 static int	cpu_match(struct device *, struct cfdata *, void *);
 static void	cpu_attach(struct device *, struct device *, void *);
@@ -50,21 +53,25 @@
     cpu_match, cpu_attach, NULL, NULL);
 
 static int
-cpu_match(struct device *parent, struct cfdata *match, void *aux)
+cpu_match(struct device *parent, struct cfdata *cf, void *aux)
 {
+	struct cpucore_attach_args *aa = aux;
+	int thread = cf->cf_loc[CPUCORECF_THREAD];
+
+	if (strncmp(aa->ca_name, cf->cf_name, strlen(cf->cf_name)) == 0) {
+#ifndef MULTIPROCESSOR
+	    if (aa->ca_thread == 0)
+#endif
+		if ((thread == CPUCORECF_THREAD_DEFAULT)
+		||  (thread == aa->ca_thread))
+			return 1;
+	}
 
-	return 1;
+	return 0;
 }
 
 static void
 cpu_attach(struct device *parent, struct device *self, void *aux)
 {
-
-	printf(": %lu.%02luMHz (hz cycles = %lu, delay divisor = %lu)\n",
-	    curcpu()->ci_cpu_freq / 1000000,
-	    (curcpu()->ci_cpu_freq % 1000000) / 10000,
-	    curcpu()->ci_cycles_per_hz, curcpu()->ci_divisor_delay);
-
-	printf("%s: ", self->dv_xname);
-	cpu_identify();
+	printf("\n");
 }

Reply via email to