Date: Thu, 16 Jan 2003 13:44:26 +0100 (CET) From: Hartmut Brandt <brandt@fokus.gmd.de> To: FreeBSD-gnats-submit@FreeBSD.org Subject: sparc64/47143: OFW console does not implement ALT_BREAK_TO_DEBUGGER Message-ID: <200301161244.h0GCiQko000674@catssrv.fokus.gmd.de>
next in thread | raw e-mail | index | archive | help
>Number: 47143
>Category: sparc64
>Synopsis: OFW console does not implement ALT_BREAK_TO_DEBUGGER
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-sparc
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Jan 16 04:50:03 PST 2003
>Closed-Date:
>Last-Modified:
>Originator: Hartmut Brandt
>Release: FreeBSD 5.0-CURRENT sparc64
>Organization:
FhI Fokus
>Environment:
System: FreeBSD catssrv.fokus.gmd.de 5.0-CURRENT FreeBSD 5.0-CURRENT #2: Thu Jan 16 13:19:01 CET 2003 hbb@catssrv.fokus.gmd.de:/opt/obj/usr/src/sys/CATSSRV sparc64
>Description:
The kernel option ALT_BREAK_TO_DEBUGGER does not work with the open firmware
console on sparc (and probably other platforms that use ofw).
>How-To-Repeat:
Compile a kernel with 'options ALT_BREAK_TO_DEBUGGER' and 'options DDB',
reboot and try \r~^B. Observe, that the debugger is not called.
>Fix:
The following patch implements the flag in ofw_console.c.
Index: ofw_console.c
===================================================================
RCS file: /home/cvs/freebsd/src/sys/dev/ofw/ofw_console.c,v
retrieving revision 1.7
diff -c -r1.7 ofw_console.c
*** ofw_console.c 18 Nov 2002 06:19:12 -0000 1.7
--- ofw_console.c 16 Jan 2003 12:39:41 -0000
***************
*** 28,33 ****
--- 28,36 ----
"$FreeBSD: src/sys/dev/ofw/ofw_console.c,v 1.7 2002/11/18 06:19:12 jake Exp $";
#endif /* not lint */
+ #include "opt_ddb.h"
+ #include "opt_comconsole.h"
+
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/systm.h>
***************
*** 39,44 ****
--- 42,49 ----
#include <dev/ofw/openfirm.h>
+ #include <ddb/ddb.h>
+
#define OFW_POLL_HZ 4
static d_open_t ofw_dev_open;
***************
*** 68,73 ****
--- 73,82 ----
static struct callout_handle ofw_timeouthandle
= CALLOUT_HANDLE_INITIALIZER(&ofw_timeouthandle);
+ #if defined(DDB) && defined(ALT_BREAK_TO_DEBUGGER)
+ static int alt_break_state;
+ #endif
+
static void ofw_tty_start(struct tty *);
static int ofw_tty_param(struct tty *, struct termios *);
static void ofw_tty_stop(struct tty *, int);
***************
*** 295,300 ****
--- 304,314 ----
}
}
+ #if defined(DDB) && defined(ALT_BREAK_TO_DEBUGGER)
+ if (db_alt_break(ch, &alt_break_state))
+ breakpoint();
+ #endif
+
return (ch);
}
***************
*** 304,309 ****
--- 318,327 ----
unsigned char ch;
if (OF_read(stdin, &ch, 1) > 0) {
+ #if defined(DDB) && defined(ALT_BREAK_TO_DEBUGGER)
+ if (db_alt_break(ch, &alt_break_state))
+ breakpoint();
+ #endif
return (ch);
}
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-sparc" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200301161244.h0GCiQko000674>
