From owner-p4-projects@FreeBSD.ORG Sun May 20 22:07:20 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 80B051065676; Sun, 20 May 2012 22:07:20 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 437301065674 for ; Sun, 20 May 2012 22:07:20 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id C9CD88FC0C for ; Sun, 20 May 2012 22:07:19 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q4KM7IiX057191 for ; Sun, 20 May 2012 22:07:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q4KM7ILq057188 for perforce@freebsd.org; Sun, 20 May 2012 22:07:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 20 May 2012 22:07:18 GMT Message-Id: <201205202207.q4KM7ILq057188@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 211452 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 May 2012 22:07:20 -0000 http://p4web.freebsd.org/@@211452?ac=10 Change 211452 by rwatson@rwatson_svr_ctsrd_mipsbuild on 2012/05/20 22:06:14 As a debugging aid, cause capability coprocessor usability faults to enter the kernel debugger. I'm not running into this currently, but might do in the future. Affected files ... .. //depot/projects/ctsrd/cheribsd/src/sys/mips/mips/trap.c#3 edit .. //depot/projects/ctsrd/cheribsd/src/sys/sys/kdb.h#2 edit Differences ... ==== //depot/projects/ctsrd/cheribsd/src/sys/mips/mips/trap.c#3 (text+ko) ==== @@ -831,11 +831,13 @@ goto err; break; case T_COP_UNUSABLE: -#ifdef CPU_CHERI - /* XXXRW: CP2 state management here. */ + cop = (trapframe->cause & MIPS_CR_COP_ERR) >> MIPS_CR_COP_ERR_SHIFT; +#if defined(CPU_CHERI) && defined(DDB) + /* XXXRW: CP2 state management here. */ + if (cop == 2) + kdb_enter(KDB_WHY_CHERI, "T_COP_UNUSABLE exception"); #endif #ifdef CPU_CNMIPS - cop = (trapframe->cause & MIPS_CR_COP_ERR) >> MIPS_CR_COP_ERR_SHIFT; /* Handle only COP2 exception */ if (cop != 2) goto err; @@ -873,6 +875,12 @@ case T_COP_UNUSABLE + T_USER: cop = (trapframe->cause & MIPS_CR_COP_ERR) >> MIPS_CR_COP_ERR_SHIFT; +#if defined(CPU_CHERI) && defined(DDB) + /* XXXRW: CP2 state management here. */ + if (cop == 2) + kdb_enter(KDB_WHY_CHERI, + "T_COP_UNUSABLE + T_USER exception"); +#endif if (cop == 1) { #if !defined(CPU_HAVEFPU) /* FP (COP1) instruction */ @@ -888,9 +896,6 @@ goto out; #endif } -#ifdef CPU_CHERI - /* XXXRW: CP2 state management here. */ -#endif #ifdef CPU_CNMIPS else if (cop == 2) { addr = trapframe->pc; ==== //depot/projects/ctsrd/cheribsd/src/sys/sys/kdb.h#2 (text+ko) ==== @@ -109,6 +109,7 @@ #define KDB_WHY_POWERPC "powerpc" /* Unhandled powerpc intr. */ #define KDB_WHY_UNIONFS "unionfs" /* Unionfs bug. */ #define KDB_WHY_DTRACE "dtrace" /* DTrace action entered debugger. */ +#define KDB_WHY_CHERI "cheri" /* CHERI MIPS coprocessor. */ /* Return values for kdb_alt_break */ #define KDB_REQ_DEBUGGER 1 /* User requested Debugger */