Module Name: src
Committed By: cliff
Date: Wed Jan 13 09:42:16 UTC 2010
Modified Files:
src/sys/arch/mips/include [matt-nb5-mips64]: cpu.h
Log Message:
- cpu_identify() now gets device_t arg
- add CIDFL's for RMI L2, cores, threads attributes
To generate a diff of this commit:
cvs rdiff -u -r1.90.16.9 -r1.90.16.10 src/sys/arch/mips/include/cpu.h
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/mips/include/cpu.h
diff -u src/sys/arch/mips/include/cpu.h:1.90.16.9 src/sys/arch/mips/include/cpu.h:1.90.16.10
--- src/sys/arch/mips/include/cpu.h:1.90.16.9 Wed Dec 30 04:51:26 2009
+++ src/sys/arch/mips/include/cpu.h Wed Jan 13 09:42:16 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.90.16.9 2009/12/30 04:51:26 matt Exp $ */
+/* $NetBSD: cpu.h,v 1.90.16.10 2010/01/13 09:42:16 cliff Exp $ */
/*-
* Copyright (c) 1992, 1993
@@ -46,6 +46,7 @@
#ifdef _KERNEL
#ifndef _LOCORE
#include <sys/cpu_data.h>
+#include <sys/device.h>
#if defined(_KERNEL_OPT)
#include "opt_lockdebug.h"
@@ -84,10 +85,40 @@
/*
* RMI company-specific cpu_cidflags
*/
-#define MIPS_CIDFL_RMI_TYPE __BITS(0,2)
-#define CIDFL_RMI_TYPE_XLR 0
-#define CIDFL_RMI_TYPE_XLS 1
-#define CIDFL_RMI_TYPE_XLP 2
+#define MIPS_CIDFL_RMI_TYPE __BITS(2,0)
+# define CIDFL_RMI_TYPE_XLR 0
+# define CIDFL_RMI_TYPE_XLS 1
+# define CIDFL_RMI_TYPE_XLP 2
+#define MIPS_CIDFL_RMI_THREADS_MASK __BITS(6,3)
+# define MIPS_CIDFL_RMI_THREADS_SHIFT 3
+#define MIPS_CIDFL_RMI_CORES_MASK __BITS(10,7)
+# define MIPS_CIDFL_RMI_CORES_SHIFT 7
+# define LOG2_1 0
+# define LOG2_2 1
+# define LOG2_4 2
+# define LOG2_8 3
+# define MIPS_CIDFL_RMI_CPUS(ncores, nthreads) \
+ ((LOG2_ ## ncores << MIPS_CIDFL_RMI_CORES_SHIFT) \
+ |(LOG2_ ## nthreads << MIPS_CIDFL_RMI_THREADS_SHIFT))
+# define MIPS_CIDFL_RMI_NTHREADS(cidfl) \
+ (1 << (((cidfl) & MIPS_CIDFL_RMI_THREADS_MASK) \
+ >> MIPS_CIDFL_RMI_THREADS_SHIFT))
+# define MIPS_CIDFL_RMI_NCORES(cidfl) \
+ (1 << (((cidfl) & MIPS_CIDFL_RMI_CORES_MASK) \
+ >> MIPS_CIDFL_RMI_CORES_SHIFT))
+#define MIPS_CIDFL_RMI_L2SZ_MASK __BITS(14,11)
+# define MIPS_CIDFL_RMI_L2SZ_SHIFT 11
+# define RMI_L2SZ_256KB 0
+# define RMI_L2SZ_512KB 1
+# define RMI_L2SZ_1MB 2
+# define RMI_L2SZ_2MB 3
+# define RMI_L2SZ_4MB 4
+# define MIPS_CIDFL_RMI_L2(l2sz) \
+ (RMI_L2SZ_ ## l2sz << MIPS_CIDFL_RMI_L2SZ_SHIFT)
+# define MIPS_CIDFL_RMI_L2SZ(cidfl) \
+ ((256*1024) << (((cidfl) & MIPS_CIDFL_RMI_L2SZ_MASK) \
+ >> MIPS_CIDFL_RMI_L2SZ_SHIFT))
+
struct cpu_info {
@@ -495,7 +526,7 @@
int badaddr64(uint64_t, size_t);
/* mips_machdep.c */
-void cpu_identify(void);
+void cpu_identify(device_t);
void mips_vector_init(void);
#endif /* ! _LOCORE */