summaryrefslogtreecommitdiffstats
path: root/sys/arch/vax/dec/dzcons.c
diff options
context:
space:
mode:
authormiod <miod@openbsd.org>2008-08-20 18:59:59 +0000
committermiod <miod@openbsd.org>2008-08-20 18:59:59 +0000
commit2693ffa811b543a36df2743b848bb70d0890b45e (patch)
tree4f764642d65cf13c0127753cb4e26113c880c5d1 /sys/arch/vax/dec/dzcons.c
parentDo not mask bit 0x80 in dzcngetc() - we run serial consoles in 8N1. (diff)
downloadwireguard-openbsd-2693ffa811b543a36df2743b848bb70d0890b45e.tar.xz
wireguard-openbsd-2693ffa811b543a36df2743b848bb70d0890b45e.zip
Minimal driver for the VAXstation 35x0/38x0 LEGSS option, currently limited
to 8 bit mode operation, and no color or accelerated features until I can find documentation about it. Speed is decent by VAX standards, except for scrolling, which is so abysmally slow one could see ZZ Top's beards growing while waiting for the screen to scroll...
Diffstat (limited to 'sys/arch/vax/dec/dzcons.c')
-rw-r--r--sys/arch/vax/dec/dzcons.c16
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);