diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2011-08-18 20:02:59 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2011-08-18 20:02:59 +0000 |
commit | d8a6b2508d19a028506f1028b66d6c2162f5b865 (patch) | |
tree | e7bea31207a9a2c323968f95a4b8ecec9206b9fb /sys/arch/hp300/stand/include/itevar.h | |
parent | 10bf584eedef89396c2517839d033fced9385366 (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.h | 8 |
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); |