summaryrefslogtreecommitdiffstats
path: root/sys/dev/bvm
diff options
context:
space:
mode:
authorneel <neel@FreeBSD.org>2012-10-27 22:54:23 +0000
committerneel <neel@FreeBSD.org>2012-10-27 22:54:23 +0000
commit1e4c5ce626aeb0ef445b18d433bc3b6142f88be6 (patch)
tree797e0b6400ebc0b313563ddeb79794fb13c90751 /sys/dev/bvm
parent86d868af7f0eb18ca829186c66cecc7117189f41 (diff)
downloadFreeBSD-src-1e4c5ce626aeb0ef445b18d433bc3b6142f88be6.zip
FreeBSD-src-1e4c5ce626aeb0ef445b18d433bc3b6142f88be6.tar.gz
Probe for existence of the bvm debug port instead of just assuming that it is
always present. Suggested by: grehan Obtained from: NetApp
Diffstat (limited to 'sys/dev/bvm')
-rw-r--r--sys/dev/bvm/bvm_dbg.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/sys/dev/bvm/bvm_dbg.c b/sys/dev/bvm/bvm_dbg.c
index 6ae9357..1ba7ce0 100644
--- a/sys/dev/bvm/bvm_dbg.c
+++ b/sys/dev/bvm/bvm_dbg.c
@@ -49,6 +49,8 @@ GDB_DBGPORT(bvm, bvm_dbg_probe, bvm_dbg_init, bvm_dbg_term,
#define BVM_DBG_PORT 0x224
static int bvm_dbg_port = BVM_DBG_PORT;
+#define BVM_DBG_SIG ('B' << 8 | 'V')
+
static int
bvm_dbg_probe(void)
{
@@ -56,17 +58,21 @@ bvm_dbg_probe(void)
disabled = 0;
resource_int_value("bvmdbg", 0, "disabled", &disabled);
- if (disabled)
- return (-1);
- if (resource_int_value("bvmdbg", 0, "port", &port) == 0)
- bvm_dbg_port = port;
+ if (!disabled) {
+ if (resource_int_value("bvmdbg", 0, "port", &port) == 0)
+ bvm_dbg_port = port;
+
+ if (inw(bvm_dbg_port) == BVM_DBG_SIG) {
+ /*
+ * Return a higher priority than 0 to override other
+ * gdb dbgport providers that may be present (e.g. uart)
+ */
+ return (1);
+ }
+ }
- /*
- * Return a higher priority than 0 to override other
- * gdb dbgport providers that may be present (e.g. uart)
- */
- return (1);
+ return (-1);
}
static void
OpenPOWER on IntegriCloud