Module Name: src
Committed By: matt
Date: Wed Jan 13 21:16:14 UTC 2010
Modified Files:
src/sys/arch/algor/algor [matt-nb5-mips64]: cpu.c
src/sys/arch/arc/arc [matt-nb5-mips64]: cpu.c
src/sys/arch/cobalt/cobalt [matt-nb5-mips64]: cpu.c
src/sys/arch/evbmips/rmixl [matt-nb5-mips64]: cpu.c
src/sys/arch/ews4800mips/ews4800mips [matt-nb5-mips64]: cpu.c
src/sys/arch/hpcmips/hpcmips [matt-nb5-mips64]: cpu.c
src/sys/arch/mipsco/mipsco [matt-nb5-mips64]: cpu.c
src/sys/arch/newsmips/newsmips [matt-nb5-mips64]: cpu.c
src/sys/arch/pmax/pmax [matt-nb5-mips64]: cpu.c
src/sys/arch/sbmips/sbmips [matt-nb5-mips64]: cpu.c
src/sys/arch/sgimips/sgimips [matt-nb5-mips64]: cpu.c
Log Message:
Deal with new cpu_identity()
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.6.96.1 src/sys/arch/algor/algor/cpu.c
cvs rdiff -u -r1.16 -r1.16.14.1 src/sys/arch/arc/arc/cpu.c
cvs rdiff -u -r1.10 -r1.10.16.1 src/sys/arch/cobalt/cobalt/cpu.c
cvs rdiff -u -r1.1.2.2 -r1.1.2.3 src/sys/arch/evbmips/rmixl/cpu.c
cvs rdiff -u -r1.3 -r1.3.22.1 src/sys/arch/ews4800mips/ews4800mips/cpu.c
cvs rdiff -u -r1.15.28.1 -r1.15.28.2 src/sys/arch/hpcmips/hpcmips/cpu.c
cvs rdiff -u -r1.7 -r1.7.96.1 src/sys/arch/mipsco/mipsco/cpu.c
cvs rdiff -u -r1.11 -r1.11.96.1 src/sys/arch/newsmips/newsmips/cpu.c
cvs rdiff -u -r1.24 -r1.24.96.1 src/sys/arch/pmax/pmax/cpu.c
cvs rdiff -u -r1.18.16.2 -r1.18.16.3 src/sys/arch/sbmips/sbmips/cpu.c
cvs rdiff -u -r1.21 -r1.21.36.1 src/sys/arch/sgimips/sgimips/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/algor/algor/cpu.c
diff -u src/sys/arch/algor/algor/cpu.c:1.6 src/sys/arch/algor/algor/cpu.c:1.6.96.1
--- src/sys/arch/algor/algor/cpu.c:1.6 Sun Dec 11 12:16:08 2005
+++ src/sys/arch/algor/algor/cpu.c Wed Jan 13 21:16:12 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.c,v 1.6 2005/12/11 12:16:08 christos Exp $ */
+/* $NetBSD: cpu.c,v 1.6.96.1 2010/01/13 21:16:12 matt Exp $ */
/*
* Copyright (c) 1994, 1995 Carnegie-Mellon University.
@@ -28,23 +28,24 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.6 2005/12/11 12:16:08 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.6.96.1 2010/01/13 21:16:12 matt Exp $");
#include <sys/param.h>
#include <sys/device.h>
#include <sys/systm.h>
+#include <sys/cpu.h>
#include <machine/autoconf.h>
-int cpu_match(struct device *, struct cfdata *, void *);
-void cpu_attach(struct device *, struct device *, void *);
+static int cpu_match(device_t, cfdata_t, void *);
+static void cpu_attach(device_t, device_t, void *);
-CFATTACH_DECL(cpu, sizeof(struct device),
+CFATTACH_DECL_NEW(cpu, 0,
cpu_match, cpu_attach, NULL, NULL);
extern struct cfdriver cpu_cd;
int
-cpu_match(struct device *parent, struct cfdata *cf, void *aux)
+cpu_match(device_t parent, cfdata_t cf, void *aux)
{
struct mainbus_attach_args *ma = aux;
@@ -55,9 +56,13 @@
}
void
-cpu_attach(struct device *parent, struct device *dev, void *aux)
+cpu_attach(device_t parent, device_t self, void *aux)
{
+ struct cpu_info * const ci = curcpu();
- printf(": ");
- cpu_identify();
+ ci->ci_dev = self;
+ self->dv_private = ci;
+
+ aprint_normal(": ");
+ cpu_identify(self);
}
Index: src/sys/arch/arc/arc/cpu.c
diff -u src/sys/arch/arc/arc/cpu.c:1.16 src/sys/arch/arc/arc/cpu.c:1.16.14.1
--- src/sys/arch/arc/arc/cpu.c:1.16 Sat Jul 5 08:46:25 2008
+++ src/sys/arch/arc/arc/cpu.c Wed Jan 13 21:16:13 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.c,v 1.16 2008/07/05 08:46:25 tsutsui Exp $ */
+/* $NetBSD: cpu.c,v 1.16.14.1 2010/01/13 21:16:13 matt Exp $ */
/* $OpenBSD: cpu.c,v 1.8 1997/04/19 17:19:41 pefo Exp $ */
/*
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.16 2008/07/05 08:46:25 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.16.14.1 2010/01/13 21:16:13 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -72,11 +72,12 @@
cpuattach(device_t parent, device_t self, void *aux)
{
+ struct cpu_info * const ci = curcpu();
+
+ ci->ci_dev = self;
+ self->dv_private = ci;
+
aprint_normal(": ");
-#if 1
- cpu_identify();
-#else /* XXX - before do this, fix pmax, newsmips */
- cpu_identify(dev);
-#endif
+ cpu_identify(self);
}
Index: src/sys/arch/cobalt/cobalt/cpu.c
diff -u src/sys/arch/cobalt/cobalt/cpu.c:1.10 src/sys/arch/cobalt/cobalt/cpu.c:1.10.16.1
--- src/sys/arch/cobalt/cobalt/cpu.c:1.10 Fri May 9 10:59:55 2008
+++ src/sys/arch/cobalt/cobalt/cpu.c Wed Jan 13 21:16:13 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.c,v 1.10 2008/05/09 10:59:55 tsutsui Exp $ */
+/* $NetBSD: cpu.c,v 1.10.16.1 2010/01/13 21:16:13 matt Exp $ */
/*
* Copyright (c) 1994, 1995 Carnegie-Mellon University.
@@ -28,18 +28,19 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.10 2008/05/09 10:59:55 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.10.16.1 2010/01/13 21:16:13 matt Exp $");
#include <sys/param.h>
#include <sys/device.h>
#include <sys/systm.h>
+#include <sys/cpu.h>
#include <machine/autoconf.h>
#include "ioconf.h"
-int cpu_match(device_t, cfdata_t, void *);
-void cpu_attach(device_t, device_t, void *);
+static int cpu_match(device_t, cfdata_t, void *);
+static void cpu_attach(device_t, device_t, void *);
CFATTACH_DECL_NEW(cpu, 0,
cpu_match, cpu_attach, NULL, NULL);
@@ -55,6 +56,11 @@
cpu_attach(device_t parent, device_t self, void *aux)
{
+ struct cpu_info * const ci = curcpu();
+
+ ci->ci_dev = self;
+ self->dv_private = ci;
+
aprint_normal(": ");
- cpu_identify();
+ cpu_identify(self);
}
Index: src/sys/arch/evbmips/rmixl/cpu.c
diff -u src/sys/arch/evbmips/rmixl/cpu.c:1.1.2.2 src/sys/arch/evbmips/rmixl/cpu.c:1.1.2.3
--- src/sys/arch/evbmips/rmixl/cpu.c:1.1.2.2 Wed Jan 13 09:41:53 2010
+++ src/sys/arch/evbmips/rmixl/cpu.c Wed Jan 13 21:16:13 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.c,v 1.1.2.2 2010/01/13 09:41:53 cliff Exp $ */
+/* $NetBSD: cpu.c,v 1.1.2.3 2010/01/13 21:16:13 matt Exp $ */
/*
* Copyright 2002 Wasabi Systems, Inc.
@@ -38,7 +38,7 @@
#include "locators.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.1.2.2 2010/01/13 09:41:53 cliff Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.1.2.3 2010/01/13 21:16:13 matt Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -46,32 +46,61 @@
#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 *);
+static int cpu_match(device_t, cfdata_t, void *);
+static void cpu_attach(device_t, device_t, void *);
-CFATTACH_DECL(cpu, sizeof(struct device),
+CFATTACH_DECL_NEW(cpu, 0,
cpu_match, cpu_attach, NULL, NULL);
static int
-cpu_match(struct device *parent, struct cfdata *cf, void *aux)
+cpu_match(device_t parent, cfdata_t cf, void *aux)
{
- struct cpucore_attach_args *aa = aux;
+ struct cpucore_attach_args *ca = aux;
int thread = cf->cf_loc[CPUCORECF_THREAD];
- if (strncmp(aa->ca_name, cf->cf_name, strlen(cf->cf_name)) == 0) {
+ if (strncmp(ca->ca_name, cf->cf_name, strlen(cf->cf_name)) == 0
#ifndef MULTIPROCESSOR
- if (aa->ca_thread == 0)
+ && ca->ca_thread == 0
#endif
- if ((thread == CPUCORECF_THREAD_DEFAULT)
- || (thread == aa->ca_thread))
+ && (thread == CPUCORECF_THREAD_DEFAULT || thread == ca->ca_thread))
return 1;
- }
return 0;
}
static void
-cpu_attach(struct device *parent, struct device *self, void *aux)
+cpu_attach(device_t parent, device_t self, void *aux)
{
- printf("\n");
+ struct cpucore_attach_args *ca = aux;
+ if (ca->ca_thread == 0 && ca->ca_core == 0) {
+ struct cpu_info * const ci = curcpu();
+ ci->ci_dev = self;
+ self->dv_private = ci;
+#ifdef MULTIPROCESSOR
+ } else {
+ struct pglist pglist;
+
+ /*
+ * Grab a page from the first 256MB to use to store
+ * exception vectors and cpu_info for this cpu.
+ */
+ error = uvm_pglistalloc(PAGE_SIZE,
+ 0, 0x10000000,
+ PAGE_SIZE, PAGE_SIZE, &pglist, 1, false);
+ if (error) {
+ aprint_error(": failed to allocte exception vectors\n");
+ return;
+ }
+
+ const paddr_t pa = VM_PAGE_TO_PHYS(TAILQ_FIRST(&pglist));
+ const vaddr_t va = MIPS_PHYS_TO_KSEG0(pa);
+ struct cpu_info * const ci = (void *) (va + 0x400);
+ memset(va, 0, PAGE_SIZE);
+ ci->ci_ebase = va;
+ ci->ci_ebase_pa = pa;
+ ci->ci_dev = self;
+ self->dv_private = ci;
+#endif
+ }
+ aprint_normal("\n");
}
Index: src/sys/arch/ews4800mips/ews4800mips/cpu.c
diff -u src/sys/arch/ews4800mips/ews4800mips/cpu.c:1.3 src/sys/arch/ews4800mips/ews4800mips/cpu.c:1.3.22.1
--- src/sys/arch/ews4800mips/ews4800mips/cpu.c:1.3 Fri Apr 4 16:33:05 2008
+++ src/sys/arch/ews4800mips/ews4800mips/cpu.c Wed Jan 13 21:16:13 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.c,v 1.3 2008/04/04 16:33:05 tsutsui Exp $ */
+/* $NetBSD: cpu.c,v 1.3.22.1 2010/01/13 21:16:13 matt Exp $ */
/*
* Copyright (c) 2000 Soren S. Jorvang. All rights reserved.
@@ -26,18 +26,19 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.3 2008/04/04 16:33:05 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.3.22.1 2010/01/13 21:16:13 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/device.h>
+#include <sys/cpu.h>
#include <machine/autoconf.h>
#include "ioconf.h"
-int cpumatch(device_t, cfdata_t, void *);
-void cpuattach(device_t, device_t, void *);
+static int cpumatch(device_t, cfdata_t, void *);
+static void cpuattach(device_t, device_t, void *);
CFATTACH_DECL_NEW(cpu, 0,
cpumatch, cpuattach, NULL, NULL);
@@ -60,8 +61,13 @@
cpuattach(device_t parent, device_t self, void *aux)
{
+ struct cpu_info * const ci = curcpu();
+
+ ci->ci_dev = self;
+ self->dv_private = ci;
+
aprint_normal(": ");
cpu_attached = 1;
- cpu_identify();
+ cpu_identify(self);
}
Index: src/sys/arch/hpcmips/hpcmips/cpu.c
diff -u src/sys/arch/hpcmips/hpcmips/cpu.c:1.15.28.1 src/sys/arch/hpcmips/hpcmips/cpu.c:1.15.28.2
--- src/sys/arch/hpcmips/hpcmips/cpu.c:1.15.28.1 Wed Aug 26 03:46:39 2009
+++ src/sys/arch/hpcmips/hpcmips/cpu.c Wed Jan 13 21:16:13 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.c,v 1.15.28.1 2009/08/26 03:46:39 matt Exp $ */
+/* $NetBSD: cpu.c,v 1.15.28.2 2010/01/13 21:16:13 matt Exp $ */
/*-
* Copyright (c) 1999 Shin Takemura, All rights reserved.
* Copyright (c) 1999-2001 SATO Kazumi, All rights reserved.
@@ -56,27 +56,28 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.15.28.1 2009/08/26 03:46:39 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.15.28.2 2010/01/13 21:16:13 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/device.h>
+#include <sys/cpu.h>
#include <sys/bus.h>
#include <machine/sysconf.h>
#include <machine/autoconf.h>
/* Definition of the driver for autoconfig. */
-static int cpumatch(struct device *, struct cfdata *, void *);
-static void cpuattach(struct device *, struct device *, void *);
+static int cpumatch(device_t, cfdata_t, void *);
+static void cpuattach(device_t, device_t, void *);
-CFATTACH_DECL(cpu, sizeof (struct device),
+CFATTACH_DECL_NEW(cpu, 0,
cpumatch, cpuattach, NULL, NULL);
extern struct cfdriver cpu_cd;
static int
-cpumatch(struct device *parent, struct cfdata *cf, void *aux)
+cpumatch(device_t parent, cfdata_t cf, void *aux)
{
struct mainbus_attach_args *ma = aux;
@@ -85,12 +86,16 @@
}
static void
-cpuattach(struct device *parent, struct device *dev, void *aux)
+cpuattach(device_t parent, device_t self, void *aux)
{
+ struct cpu_info * const ci = curcpu();
- printf(": ");
+ ci->ci_dev = self;
+ self->dv_private = ci;
- cpu_identify();
+ aprint_normal(": ");
+
+ cpu_identify(self);
/* install CPU specific idle routine if any. */
if (platform.cpu_idle != NULL)
Index: src/sys/arch/mipsco/mipsco/cpu.c
diff -u src/sys/arch/mipsco/mipsco/cpu.c:1.7 src/sys/arch/mipsco/mipsco/cpu.c:1.7.96.1
--- src/sys/arch/mipsco/mipsco/cpu.c:1.7 Sun Dec 11 12:18:13 2005
+++ src/sys/arch/mipsco/mipsco/cpu.c Wed Jan 13 21:16:13 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.c,v 1.7 2005/12/11 12:18:13 christos Exp $ */
+/* $NetBSD: cpu.c,v 1.7.96.1 2010/01/13 21:16:13 matt Exp $ */
/*
* Copyright (c) 1994, 1995 Carnegie-Mellon University.
@@ -28,33 +28,28 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.7 2005/12/11 12:18:13 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.7.96.1 2010/01/13 21:16:13 matt Exp $");
#include <sys/param.h>
#include <sys/device.h>
+#include <sys/cpu.h>
#include <sys/systm.h>
-#include <machine/cpu.h>
#include <machine/autoconf.h>
#include <mips/locore.h>
/* Definition of the driver for autoconfig. */
-static int cpumatch(struct device *, struct cfdata *, void *);
-static void cpuattach(struct device *, struct device *, void *);
+static int cpumatch(device_t, cfdata_t, void *);
+static void cpuattach(device_t, device_t, void *);
-CFATTACH_DECL(cpu, sizeof(struct device),
+CFATTACH_DECL(cpu, 0,
cpumatch, cpuattach, NULL, NULL);
extern struct cfdriver cpu_cd;
-extern void cpu_identify __P((void));
-
static int
-cpumatch(parent, cfdata, aux)
- struct device *parent;
- struct cfdata *cfdata;
- void *aux;
+cpumatch(device_t parent, cfdata_t cfdata, void *aux)
{
struct confargs *ca = aux;
@@ -66,12 +61,13 @@
}
static void
-cpuattach(parent, dev, aux)
- struct device *parent;
- struct device *dev;
- void *aux;
+cpuattach(device_t parent, device_t self, void *aux)
{
+ struct cpu_info * const ci = curcpu();
+
+ ci->ci_dev = self;
+ self->dv_private = ci;
- printf(": ");
- cpu_identify();
+ aprint_normal(": ");
+ cpu_identify(self);
}
Index: src/sys/arch/newsmips/newsmips/cpu.c
diff -u src/sys/arch/newsmips/newsmips/cpu.c:1.11 src/sys/arch/newsmips/newsmips/cpu.c:1.11.96.1
--- src/sys/arch/newsmips/newsmips/cpu.c:1.11 Sun Dec 11 12:18:25 2005
+++ src/sys/arch/newsmips/newsmips/cpu.c Wed Jan 13 21:16:13 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.c,v 1.11 2005/12/11 12:18:25 christos Exp $ */
+/* $NetBSD: cpu.c,v 1.11.96.1 2010/01/13 21:16:13 matt Exp $ */
/*
* Copyright (c) 1994, 1995 Carnegie-Mellon University.
@@ -28,28 +28,28 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.11 2005/12/11 12:18:25 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.11.96.1 2010/01/13 21:16:13 matt Exp $");
#include <sys/param.h>
#include <sys/device.h>
+#include <sys/cpu.h>
#include <sys/systm.h>
#include <mips/locore.h>
-#include <machine/cpu.h>
#include <machine/autoconf.h>
/* Definition of the driver for autoconfig. */
-static int cpumatch(struct device *, struct cfdata *, void *);
-static void cpuattach(struct device *, struct device *, void *);
+static int cpumatch(device_t, cfdata_t, void *);
+static void cpuattach(device_t, device_t, void *);
-CFATTACH_DECL(cpu, sizeof(struct device),
+CFATTACH_DECL_NEW(cpu, 0,
cpumatch, cpuattach, NULL, NULL);
extern struct cfdriver cpu_cd;
static int
-cpumatch(struct device *parent, struct cfdata *cfdata, void *aux)
+cpumatch(device_t parent, cfdata_t cfdata, void *aux)
{
struct confargs *ca = aux;
@@ -61,9 +61,13 @@
}
static void
-cpuattach(struct device *parent, struct device *dev, void *aux)
+cpuattach(device_t parent, device_t self, void *aux)
{
+ struct cpu_info * const ci = curcpu();
- printf(": ");
- cpu_identify();
+ ci->ci_dev = self;
+ self->dv_private = ci;
+
+ aprint_normal(": ");
+ cpu_identify(self);
}
Index: src/sys/arch/pmax/pmax/cpu.c
diff -u src/sys/arch/pmax/pmax/cpu.c:1.24 src/sys/arch/pmax/pmax/cpu.c:1.24.96.1
--- src/sys/arch/pmax/pmax/cpu.c:1.24 Sun Dec 11 12:18:39 2005
+++ src/sys/arch/pmax/pmax/cpu.c Wed Jan 13 21:16:13 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.c,v 1.24 2005/12/11 12:18:39 christos Exp $ */
+/* $NetBSD: cpu.c,v 1.24.96.1 2010/01/13 21:16:13 matt Exp $ */
/*
* Copyright (c) 1994, 1995 Carnegie-Mellon University.
@@ -28,28 +28,26 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.24 2005/12/11 12:18:39 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.24.96.1 2010/01/13 21:16:13 matt Exp $");
#include <sys/param.h>
#include <sys/device.h>
#include <sys/systm.h>
+#include <sys/cpu.h>
#include <mips/locore.h>
#include <machine/autoconf.h>
-static int cpumatch __P((struct device *, struct cfdata *, void *));
-static void cpuattach __P((struct device *, struct device *, void *));
+static int cpumatch(device_t, cfdata_t, void *);
+static void cpuattach(device_t, device_t, void *);
-CFATTACH_DECL(cpu, sizeof (struct device),
+CFATTACH_DECL_NEW(cpu, 0,
cpumatch, cpuattach, NULL, NULL);
extern struct cfdriver cpu_cd;
static int
-cpumatch(parent, cf, aux)
- struct device *parent;
- struct cfdata *cf;
- void *aux;
+cpumatch(device_t parent, cfdata_t cf, void *aux)
{
struct mainbus_attach_args *ma = aux;
@@ -61,11 +59,14 @@
}
static void
-cpuattach(parent, dev, aux)
- struct device *parent, *dev;
- void *aux;
+cpuattach(device_t parent, device_t self, void *aux)
{
- printf(": ");
- cpu_identify();
+ struct cpu_info * const ci = curcpu();
+
+ ci->ci_dev = self;
+ self->dv_private = ci;
+
+ aprint_normal(": ");
+ cpu_identify(self);
}
Index: src/sys/arch/sbmips/sbmips/cpu.c
diff -u src/sys/arch/sbmips/sbmips/cpu.c:1.18.16.2 src/sys/arch/sbmips/sbmips/cpu.c:1.18.16.3
--- src/sys/arch/sbmips/sbmips/cpu.c:1.18.16.2 Tue Jan 12 18:21:17 2010
+++ src/sys/arch/sbmips/sbmips/cpu.c Wed Jan 13 21:16:13 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.c,v 1.18.16.2 2010/01/12 18:21:17 matt Exp $ */
+/* $NetBSD: cpu.c,v 1.18.16.3 2010/01/13 21:16:13 matt Exp $ */
/*
* Copyright 2000, 2001
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.18.16.2 2010/01/12 18:21:17 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.18.16.3 2010/01/13 21:16:13 matt Exp $");
#include "opt_multiprocessor.h"
@@ -135,12 +135,12 @@
*/
if (found == 1) {
aprint_normal("%s: ", xname);
- cpu_identify();
+ cpu_identify(self);
} else {
#if defined(MULTIPROCESSOR)
# error!
#else
- printf("%s: processor off-line; multiprocessor support "
+ aprint_normal("%s: processor off-line; multiprocessor support "
"not present in kernel\n", xname);
#endif
}
Index: src/sys/arch/sgimips/sgimips/cpu.c
diff -u src/sys/arch/sgimips/sgimips/cpu.c:1.21 src/sys/arch/sgimips/sgimips/cpu.c:1.21.36.1
--- src/sys/arch/sgimips/sgimips/cpu.c:1.21 Mon Dec 3 15:34:17 2007
+++ src/sys/arch/sgimips/sgimips/cpu.c Wed Jan 13 21:16:14 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.c,v 1.21 2007/12/03 15:34:17 ad Exp $ */
+/* $NetBSD: cpu.c,v 1.21.36.1 2010/01/13 21:16:14 matt Exp $ */
/*
* Copyright (c) 2000 Soren S. Jorvang
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.21 2007/12/03 15:34:17 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.21.36.1 2010/01/13 21:16:14 matt Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -55,7 +55,7 @@
static int cpu_match(struct device *, struct cfdata *, void *);
static void cpu_attach(struct device *, struct device *, void *);
-void cpu_intr(u_int32_t, u_int32_t, u_int32_t, u_int32_t);
+void cpu_intr(u_int32_t, u_int32_t, vaddr_t, u_int32_t);
void *cpu_intr_establish(int, int, int (*func)(void *), void *);
void mips1_fpu_intr(u_int32_t, u_int32_t, u_int32_t, u_int32_t);
@@ -82,7 +82,7 @@
static struct evcnt mips_spurint_evcnt =
EVCNT_INITIALIZER(EVCNT_TYPE_INTR, NULL, "mips", "spurious interrupts");
-CFATTACH_DECL(cpu, sizeof(struct device),
+CFATTACH_DECL_NEW(cpu, 0,
cpu_match, cpu_attach, NULL, NULL);
static int
@@ -94,8 +94,13 @@
static void
cpu_attach(struct device *parent, struct device *self, void *aux)
{
- printf(": ");
- cpu_identify();
+ struct cpu_info * const ci = curcpu();
+
+ ci->ci_dev = self;
+ self->dv_private = ci;
+
+ aprint_normal(": ");
+ cpu_identify(self);
}
/*
@@ -103,7 +108,7 @@
* sorts of Bad Things(tm) to happen, including kernel stack overflows.
*/
void
-cpu_intr(u_int32_t status, u_int32_t cause, u_int32_t pc, u_int32_t ipending)
+cpu_intr(u_int32_t status, u_int32_t cause, vaddr_t pc, u_int32_t ipending)
{
struct cpu_info *ci;