Module Name: src Committed By: cliff Date: Sat Feb 5 06:10:29 UTC 2011
Modified Files: src/sys/arch/mips/rmi [matt-nb5-mips64]: rmixl_cpu.c Log Message: - include opt_multiprocessor.h for MULTIPROCESSOR dependency - add suport for MIPS COP0 watchpoint in ddb - add ci_pmap_asid_cur print in rmixl_cpuinfo_print(). - note rmixl_cpuinfo_print() (or something like it) should eventually get moved into a md support fn of a (hypothetical) ddb 'show cpu' command. To generate a diff of this commit: cvs rdiff -u -r1.1.2.16 -r1.1.2.17 src/sys/arch/mips/rmi/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/mips/rmi/rmixl_cpu.c diff -u src/sys/arch/mips/rmi/rmixl_cpu.c:1.1.2.16 src/sys/arch/mips/rmi/rmixl_cpu.c:1.1.2.17 --- src/sys/arch/mips/rmi/rmixl_cpu.c:1.1.2.16 Fri Jan 7 00:17:22 2011 +++ src/sys/arch/mips/rmi/rmixl_cpu.c Sat Feb 5 06:10:29 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: rmixl_cpu.c,v 1.1.2.16 2011/01/07 00:17:22 cliff Exp $ */ +/* $NetBSD: rmixl_cpu.c,v 1.1.2.17 2011/02/05 06:10:29 cliff Exp $ */ /* * Copyright 2002 Wasabi Systems, Inc. @@ -38,7 +38,10 @@ #include "locators.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rmixl_cpu.c,v 1.1.2.16 2011/01/07 00:17:22 cliff Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rmixl_cpu.c,v 1.1.2.17 2011/02/05 06:10:29 cliff Exp $"); + +#include "opt_multiprocessor.h" +#include "opt_ddb.h" #include <sys/param.h> #include <sys/device.h> @@ -60,6 +63,9 @@ #include <mips/rmi/rmixl_cpuvar.h> #include <mips/rmi/rmixl_intr.h> #include <mips/rmi/rmixl_fmnvar.h> +#ifdef DDB +#include <mips/db_machdep.h> +#endif static int cpu_rmixl_match(device_t, cfdata_t, void *); @@ -91,6 +97,20 @@ static struct rmixl_cpu_trampoline_args rmixl_cpu_trampoline_args; #endif +#if defined(DDB) && defined(MIPS_DDB_WATCH) +/* + * cpu_rmixl_db_watch_init - initialize COP0 watchpoint stuff + * + * clear IEU_DEFEATURE[DBE] to ensure T_WATCH on watchpoint exception + * set COP0 watchhi and watchlo + */ +static void +cpu_rmixl_db_watch_init(void) +{ + db_mach_watch_set_all(); +} +#endif /* DDB && MIPS_DDB_WATCH */ + /* * cpu_xls616_erratum * @@ -222,6 +242,10 @@ return; once = true; +#if defined(DDB) && defined(MIPS_DDB_WATCH) + cpu_rmixl_db_watch_init(); +#endif + rmixl_fmn_init(); sc->sc_ih_clk = rmixl_intr_init_clk(); @@ -280,6 +304,10 @@ #endif cpucore_rmixl_hatch(device_parent(sc->sc_dev)); + +#if defined(DDB) && defined(MIPS_DDB_WATCH) + cpu_rmixl_db_watch_init(); +#endif } static int @@ -422,6 +450,7 @@ for (int i=0; i < SOFTINT_COUNT; i++) printf("ci_softlwps[%d] %p\n", i, ci->ci_softlwps[i]); printf("ci_tlb_slot %d\n", ci->ci_tlb_slot); + printf("ci_pmap_asid_cur %d\n", ci->ci_pmap_asid_cur); printf("ci_tlb_info %p\n", ci->ci_tlb_info); printf("ci_pmap_seg0tab %p\n", ci->ci_pmap_seg0tab); #ifdef _LP64 @@ -441,5 +470,4 @@ return ci; } - #endif /* DEBUG */