diff options
Diffstat (limited to 'sys/arch/vax/dec/dzcons.c')
-rw-r--r-- | sys/arch/vax/dec/dzcons.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/sys/arch/vax/dec/dzcons.c b/sys/arch/vax/dec/dzcons.c index 3e40c7c70f8..79bac467ce9 100644 --- a/sys/arch/vax/dec/dzcons.c +++ b/sys/arch/vax/dec/dzcons.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dzcons.c,v 1.3 2008/08/20 18:55:24 miod Exp $ */ +/* $OpenBSD: dzcons.c,v 1.4 2008/08/20 19:00:01 miod Exp $ */ /* $NetBSD: dz_ibus.c,v 1.15 1999/08/27 17:50:42 ragge Exp $ */ /* * Copyright (c) 1998 Ludd, University of Lule}, Sweden. @@ -50,6 +50,7 @@ #ifdef VAX60 #include <vax/mbus/mbusreg.h> #include <vax/mbus/mbusvar.h> +#include <vax/mbus/fwioreg.h> #endif #include <vax/qbus/dzreg.h> @@ -164,12 +165,14 @@ dzcnprobe(cndev) struct consdev *cndev; { extern vaddr_t iospace; - int diagcons, major; + int diagcons, major, pri; paddr_t ioaddr = 0x200a0000; if ((major = getmajor(dzopen)) < 0) return; + pri = CN_DEAD; + switch (vax_boardtype) { case VAX_BTYP_410: case VAX_BTYP_420: @@ -194,8 +197,9 @@ dzcnprobe(cndev) #ifdef VAX60 case VAX_BTYP_60: - ioaddr = MBUS_SLOT_BASE(mbus_ioslot) + 0x600000; - diagcons = 3; /* XXX force serial for now */ + ioaddr = MBUS_SLOT_BASE(mbus_ioslot) + FWIO_DZ_REG_OFFSET; + diagcons = 3; + pri = CN_LOWPRI; /* graphics console always wins */ break; #endif @@ -203,7 +207,9 @@ dzcnprobe(cndev) return; } - cndev->cn_pri = diagcons != 0 ? CN_HIGHPRI : CN_LOWPRI; + if (pri == CN_DEAD) + pri = diagcons != 0 ? CN_HIGHPRI : CN_LOWPRI; + cndev->cn_pri = pri; cndev->cn_dev = makedev(major, dz_can_have_kbd() ? 3 : diagcons); dz_console_regs = iospace; ioaccess(iospace, ioaddr, 1); |