summaryrefslogtreecommitdiff
path: root/sys/arch/hp300/stand/include/itevar.h
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2011-08-18 20:02:59 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2011-08-18 20:02:59 +0000
commitd8a6b2508d19a028506f1028b66d6c2162f5b865 (patch)
treee7bea31207a9a2c323968f95a4b8ecec9206b9fb /sys/arch/hp300/stand/include/itevar.h
parent10bf584eedef89396c2517839d033fced9385366 (diff)
So, it turns out that models 362 and 382 built-in frame buffer only shows up
in DIO-II space, as a fat device spanning four select codes (i.e. 16MB of memory). This is way too much for an at-most 2 Mpixel 8bit frame buffer, and it turns out that this is because the device provides both a regular DIO-II frame buffer (spanning two select codes) and a regular STI frame buffer (spanning the other two select codes). This commit introduces a straightforward sti@dio attachment to get a working sti(4) and wsdisplay(4) in a ridiculously small number of lines; however the console code needs some changes to avoid duplicating globals. While there, add sti@dio support for the bootblocks, and I couldn't help myself but clean the most rotten parts of them, and try to have them reuse various files in sys/arch/hp300/dev instead of rolling their outdated ones. Tested on a real 382 with the low-resolution frame buffer: sti0 at dio0 scode 132: rev 8.02;129, ID 0x27134CB440A00499 sti0: 382V, 2048x512 frame buffer, 640x480x8 display sti0: 8x16 font type 1, 16 bpc, charset 0-255 wsdisplay0 at sti0 mux 1: console (std, vt100 emulation) Boot blocks updates tested on DIO-II 425t (serial/glass console), SGC 425e (serial/glass console) and 382 (serial/glass console). And will be tested on SGC 425t soon as well.
Diffstat (limited to 'sys/arch/hp300/stand/include/itevar.h')
-rw-r--r--sys/arch/hp300/stand/include/itevar.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/arch/hp300/stand/include/itevar.h b/sys/arch/hp300/stand/include/itevar.h
index 35191ccf820..12c46c0f330 100644
--- a/sys/arch/hp300/stand/include/itevar.h
+++ b/sys/arch/hp300/stand/include/itevar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: itevar.h,v 1.5 2006/08/17 06:31:10 miod Exp $ */
+/* $OpenBSD: itevar.h,v 1.6 2011/08/18 20:02:58 miod Exp $ */
/* $NetBSD: itevar.h,v 1.1 1996/03/03 04:23:42 thorpej Exp $ */
/*
@@ -50,6 +50,7 @@ typedef void (*ite_windowmover)(struct ite_data *, int, int, int, int, int,
struct ite_data {
int alive;
+ int scode; /* DIO select code or SGC slot # */
struct itesw *isw;
caddr_t regbase, fbbase;
short curx, cury;
@@ -67,6 +68,7 @@ struct ite_data {
struct itesw {
int ite_hwid;
+ int (*ite_probe)(struct ite_data *);
void (*ite_init)(struct ite_data *);
void (*ite_clear)(struct ite_data *, int, int, int, int);
void (*ite_putc)(struct ite_data *, int, int, int);
@@ -125,7 +127,9 @@ void dvbox_init(struct ite_data *);
void hyper_init(struct ite_data *);
void tvrx_init(struct ite_data *);
-void sti_iteinit(struct ite_data *);
+int sti_dio_probe(struct ite_data *);
+void sti_iteinit_dio(struct ite_data *);
+void sti_iteinit_sgc(struct ite_data *);
void sti_clear(struct ite_data *, int, int, int, int);
void sti_putc(struct ite_data *, int, int, int);
void sti_cursor(struct ite_data *, int);