Module Name:    src
Committed By:   kiyohara
Date:           Mon Jun 28 12:08:13 UTC 2010

Modified Files:
        src/sys/arch/ia64/ia64: cpu.c machdep.c

Log Message:
Move identifycpu() into cpu.c.  Our cpu* says:
  cpu0 at mainbus0: ProcessorID 0, Id 0, Eid 0
  cpu0: McKinley (1000.00-MHz Itanium 2)
  cpu0: Origin "GenuineIntel",  Revision 7
  cpu0: Features 0x1


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/ia64/ia64/cpu.c
cvs rdiff -u -r1.23 -r1.24 src/sys/arch/ia64/ia64/machdep.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/ia64/ia64/cpu.c
diff -u src/sys/arch/ia64/ia64/cpu.c:1.8 src/sys/arch/ia64/ia64/cpu.c:1.9
--- src/sys/arch/ia64/ia64/cpu.c:1.8	Mon May 17 11:46:19 2010
+++ src/sys/arch/ia64/ia64/cpu.c	Mon Jun 28 12:08:13 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.c,v 1.8 2010/05/17 11:46:19 kiyohara Exp $	*/
+/*	$NetBSD: cpu.c,v 1.9 2010/06/28 12:08:13 kiyohara Exp $	*/
 
 /*
  * Copyright (c) 2006 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.8 2010/05/17 11:46:19 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.9 2010/06/28 12:08:13 kiyohara Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -41,17 +41,23 @@
 #include <dev/acpi/acpica.h>
 #include <dev/acpi/acpivar.h>
 
+#define MHz	1000000L
+#define GHz	(1000L * MHz)
 
 struct cpu_info cpu_info_primary __aligned(CACHE_LINE_SIZE);
 
-static int cpu_match(device_t, cfdata_t, void *);
-static void cpu_attach(device_t, device_t, void *);
-
 struct cpu_softc {
 	device_t sc_dev;		/* device tree glue */
 	struct cpu_info *sc_info;	/* pointer to CPU info */
 };
 
+char cpu_model[64];
+
+static int cpu_match(device_t, cfdata_t, void *);
+static void cpu_attach(device_t, device_t, void *);
+
+static void identifycpu(struct cpu_softc *);
+
 CFATTACH_DECL_NEW(cpu, sizeof(struct cpu_softc),
     cpu_match, cpu_attach, NULL, NULL);
 
@@ -98,5 +104,79 @@
 	ci->ci_intrdepth = -1;			/* need ? */
 	ci->ci_dev = self;
 
+	identifycpu(sc);
+
 	return;
 }
+
+
+static void
+identifycpu(struct cpu_softc *sc)
+{
+	uint64_t vendor[3];
+	const char *family_name, *model_name;
+	uint64_t features, tmp;
+	int number, revision, model, family, archrev;
+	extern uint64_t processor_frequency;
+
+	/*
+	 * Assumes little-endian.
+	 */
+	vendor[0] = ia64_get_cpuid(0);
+	vendor[1] = ia64_get_cpuid(1);
+	vendor[2] = '\0';
+
+	tmp = ia64_get_cpuid(3);
+	number = (tmp >> 0) & 0xff;
+	revision = (tmp >> 8) & 0xff;
+	model = (tmp >> 16) & 0xff;
+	family = (tmp >> 24) & 0xff;
+	archrev = (tmp >> 32) & 0xff;
+
+	family_name = model_name = "unknown";
+	switch (family) {
+	case 0x07:
+		family_name = "Itanium";
+		model_name = "Merced";
+		break;
+	case 0x1f:
+		family_name = "Itanium 2";
+		switch (model) {
+		case 0x00:
+			model_name = "McKinley";
+			break;
+		case 0x01:
+			/*
+			 * Deerfield is a low-voltage variant based on the
+			 * Madison core. We need circumstantial evidence
+			 * (i.e. the clock frequency) to identify those.
+			 * Allow for roughly 1% error margin.
+			 */
+			tmp = processor_frequency >> 7;
+			if ((processor_frequency - tmp) < 1*GHz &&
+			    (processor_frequency + tmp) >= 1*GHz)
+				model_name = "Deerfield";
+			else
+				model_name = "Madison";
+			break;
+		case 0x02:
+			model_name = "Madison II";
+			break;
+		}
+		break;
+	}
+	snprintf(cpu_model, sizeof(cpu_model), "%s", model_name);
+
+	features = ia64_get_cpuid(4);
+
+	aprint_normal_dev(sc->sc_dev, "%s (", model_name);
+	if (processor_frequency) {
+		aprint_normal("%ld.%02ld-MHz ",
+		    (processor_frequency + 4999) / MHz,
+		    ((processor_frequency + 4999) / (MHz/100)) % 100);
+	}
+	aprint_normal("%s)\n", family_name);
+	aprint_normal_dev(sc->sc_dev, "Origin \"%s\",  Revision %d\n",
+	    (char *)vendor, revision);
+	aprint_normal_dev(sc->sc_dev, "Features 0x%x\n", (uint32_t)features);
+}

Index: src/sys/arch/ia64/ia64/machdep.c
diff -u src/sys/arch/ia64/ia64/machdep.c:1.23 src/sys/arch/ia64/ia64/machdep.c:1.24
--- src/sys/arch/ia64/ia64/machdep.c:1.23	Mon Feb  8 19:02:29 2010
+++ src/sys/arch/ia64/ia64/machdep.c	Mon Jun 28 12:08:13 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.23 2010/02/08 19:02:29 joerg Exp $	*/
+/*	$NetBSD: machdep.c,v 1.24 2010/06/28 12:08:13 kiyohara Exp $	*/
 
 /*-
  * Copyright (c) 2003,2004 Marcel Moolenaar
@@ -133,10 +133,7 @@
 struct vm_map *phys_map = NULL;
 
 void *msgbufaddr;
-int	physmem;
-
-char	cpu_model[64];
-char	cpu_family[64];
+int physmem;
 
 vaddr_t kernstart, kernend;
 
@@ -159,78 +156,6 @@
 
 struct fpswa_iface *fpswa_iface;
 
-#define Mhz     1000000L
-#define Ghz     (1000L*Mhz)
-
-static void
-identifycpu(void)
-{
-	uint64_t vendor[3];
-	const char *family_name, *model_name;
-	uint64_t features, tmp;
-	int number, revision, model, family, archrev;
-
-	/*
-	 * Assumes little-endian.
-	 */
-	vendor[0] = ia64_get_cpuid(0);
-	vendor[1] = ia64_get_cpuid(1);
-	vendor[2] = '\0';
-
-	tmp = ia64_get_cpuid(3);
-	number = (tmp >> 0) & 0xff;
-	revision = (tmp >> 8) & 0xff;
-	model = (tmp >> 16) & 0xff;
-	family = (tmp >> 24) & 0xff;
-	archrev = (tmp >> 32) & 0xff;
-
-	family_name = model_name = "unknown";
-	switch (family) {
-	case 0x07:
-		family_name = "Itanium";
-		model_name = "Merced";
-		break;
-	case 0x1f:
-		family_name = "Itanium 2";
-		switch (model) {
-		case 0x00:
-			model_name = "McKinley";
-			break;
-		case 0x01:
-			/*
-			 * Deerfield is a low-voltage variant based on the
-			 * Madison core. We need circumstantial evidence
-			 * (i.e. the clock frequency) to identify those.
-			 * Allow for roughly 1% error margin.
-			 */
-			tmp = processor_frequency >> 7;
-			if ((processor_frequency - tmp) < 1*Ghz &&
-			    (processor_frequency + tmp) >= 1*Ghz)
-				model_name = "Deerfield";
-			else
-				model_name = "Madison";
-			break;
-		case 0x02:
-			model_name = "Madison II";
-			break;
-		}
-		break;
-	}
-	snprintf(cpu_family, sizeof(cpu_family), "%s", family_name);
-	snprintf(cpu_model, sizeof(cpu_model), "%s", model_name);
-
-	features = ia64_get_cpuid(4);
-
-	printf("CPU: %s (", model_name);
-	if (processor_frequency) {
-		printf("%ld.%02ld-MHz ", (processor_frequency + 4999) / Mhz,
-		    ((processor_frequency + 4999) / (Mhz/100)) % 100);
-	}
-	printf("%s)\n", family_name);
-	printf("  Origin = \"%s\"  Revision = %d\n", (char *) vendor, revision);
-	printf("  Features = 0x%x\n", (uint32_t) features);
-
-}
 
 /*
  * Machine-dependent startup code
@@ -240,11 +165,6 @@
 {
 	vaddr_t minaddr, maxaddr;
 
-	/*
-	 * Good {morning,afternoon,evening,night}.
-	 */
-	identifycpu();
-
 	/* XXX: startrtclock(); */
 #ifdef PERFMON
 	perfmon_init();

Reply via email to