summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/krtld
diff options
context:
space:
mode:
authorszhou <none@none>2006-06-14 08:13:45 -0700
committerszhou <none@none>2006-06-14 08:13:45 -0700
commit28cdc3d776761766afeb198769d1b70ed7e0f2e1 (patch)
treedcd414ef42c58760887d0d10bd015602dc5ff922 /usr/src/uts/common/krtld
parent5c21526ad35328e623c67f0515b6460b6c058865 (diff)
downloadillumos-joyent-28cdc3d776761766afeb198769d1b70ed7e0f2e1.tar.gz
6426010 Need ability to direct console to USB serial device
Diffstat (limited to 'usr/src/uts/common/krtld')
-rw-r--r--usr/src/uts/common/krtld/kobj.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/usr/src/uts/common/krtld/kobj.c b/usr/src/uts/common/krtld/kobj.c
index 1cdf93e98f..01032117ec 100644
--- a/usr/src/uts/common/krtld/kobj.c
+++ b/usr/src/uts/common/krtld/kobj.c
@@ -1204,12 +1204,35 @@ load_primary(struct module *mp, int lmid)
}
static int
+console_is_usb_serial(void)
+{
+ char *console;
+ int len, ret;
+
+ if ((len = BOP_GETPROPLEN(ops, "console")) == -1)
+ return (0);
+
+ console = kobj_zalloc(len, KM_WAIT|KM_TMP);
+ (void) BOP_GETPROP(ops, "console", console);
+ ret = (strcmp(console, "usb-serial") == 0);
+ kobj_free(console, len);
+
+ return (ret);
+}
+
+static int
load_kmdb(val_t *bootaux)
{
struct modctl *mctl;
struct module *mp;
Sym *sym;
+ if (console_is_usb_serial()) {
+ _kobj_printf(ops, "kmdb not loaded "
+ "(unsupported on usb serial console)\n");
+ return (0);
+ }
+
_kobj_printf(ops, "Loading kmdb...\n");
if ((mctl = add_primary("misc/kmdbmod", KOBJ_LM_DEBUGGER)) == NULL)