add a "mach sir" command to call sir instruction ('software initiated
reset'). this is a much more drastic way to do "mach prom", but it works when used from cpu>0, which "mach prom" currently does not.
This commit is contained in:
parent
815337c3da
commit
877957f469
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: db_interface.c,v 1.92 2006/10/16 21:57:10 martin Exp $ */
|
/* $NetBSD: db_interface.c,v 1.93 2006/10/21 03:16:05 mrg Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1996-2002 Eduardo Horvath. All rights reserved.
|
* Copyright (c) 1996-2002 Eduardo Horvath. All rights reserved.
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.92 2006/10/16 21:57:10 martin Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: db_interface.c,v 1.93 2006/10/21 03:16:05 mrg Exp $");
|
||||||
|
|
||||||
#include "opt_ddb.h"
|
#include "opt_ddb.h"
|
||||||
|
|
||||||
|
@ -291,6 +291,7 @@ void db_traptrace(db_expr_t, int, db_expr_t, const char *);
|
||||||
void db_watch(db_expr_t, int, db_expr_t, const char *);
|
void db_watch(db_expr_t, int, db_expr_t, const char *);
|
||||||
void db_pm_extract(db_expr_t, int, db_expr_t, const char *);
|
void db_pm_extract(db_expr_t, int, db_expr_t, const char *);
|
||||||
void db_cpu_cmd(db_expr_t, int, db_expr_t, const char *);
|
void db_cpu_cmd(db_expr_t, int, db_expr_t, const char *);
|
||||||
|
void db_sir_cmd(db_expr_t, int, db_expr_t, const char *);
|
||||||
|
|
||||||
#ifdef DDB
|
#ifdef DDB
|
||||||
static void db_dump_pmap(struct pmap *);
|
static void db_dump_pmap(struct pmap *);
|
||||||
|
@ -1230,6 +1231,13 @@ db_cpu_cmd(db_expr_t addr, int have_addr, db_expr_t count, const char *modif)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
db_sir_cmd(db_expr_t addr, int have_addr, db_expr_t count, const char *modif)
|
||||||
|
{
|
||||||
|
|
||||||
|
__asm("sir; nop");
|
||||||
|
}
|
||||||
|
|
||||||
#include <uvm/uvm.h>
|
#include <uvm/uvm.h>
|
||||||
|
|
||||||
void db_uvmhistdump(db_expr_t, int, db_expr_t, const char *);
|
void db_uvmhistdump(db_expr_t, int, db_expr_t, const char *);
|
||||||
|
@ -1280,6 +1288,7 @@ const struct db_command db_machine_command_table[] = {
|
||||||
{ "watch", db_watch, 0, 0 },
|
{ "watch", db_watch, 0, 0 },
|
||||||
{ "window", db_dump_window, 0, 0 },
|
{ "window", db_dump_window, 0, 0 },
|
||||||
{ "cpu", db_cpu_cmd, 0, 0 },
|
{ "cpu", db_cpu_cmd, 0, 0 },
|
||||||
|
{ "sir", db_sir_cmd, 0, 0 },
|
||||||
{ .name = NULL, }
|
{ .name = NULL, }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue