xref: /netbsd/sys/dev/sbus/zxvar.h (revision c4a72b64)
1 /*	$NetBSD: zxvar.h,v 1.1 2002/09/13 14:03:53 ad Exp $	*/
2 
3 /*
4  *  Copyright (c) 2002 The NetBSD Foundation, Inc.
5  *  All rights reserved.
6  *
7  *  This code is derived from software contributed to The NetBSD Foundation
8  *  by Andrew Doran.
9  *
10  *  Redistribution and use in source and binary forms, with or without
11  *  modification, are permitted provided that the following conditions
12  *  are met:
13  *  1. Redistributions of source code must retain the above copyright
14  *     notice, this list of conditions and the following disclaimer.
15  *  2. Redistributions in binary form must reproduce the above copyright
16  *     notice, this list of conditions and the following disclaimer in the
17  *     documentation and/or other materials provided with the distribution.
18  *  3. All advertising materials mentioning features or use of this software
19  *     must display the following acknowledgement:
20  *         This product includes software developed by the NetBSD
21  *         Foundation, Inc. and its contributors.
22  *  4. Neither the name of The NetBSD Foundation nor the names of its
23  *     contributors may be used to endorse or promote products derived
24  *     from this software without specific prior written permission.
25  *
26  *  THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
27  *  ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
28  *  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29  *  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
30  *  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31  *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32  *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33  *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34  *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35  *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36  *  POSSIBILITY OF SUCH DAMAGE.
37  */
38 
39 /*
40  * Copyright (C) 1999, 2000 Jakub Jelinek (jakub@redhat.com)
41  *
42  * Permission is hereby granted, free of charge, to any person obtaining a copy
43  * of this software and associated documentation files (the "Software"), to deal
44  * in the Software without restriction, including without limitation the rights
45  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
46  * copies of the Software, and to permit persons to whom the Software is
47  * furnished to do so, subject to the following conditions:
48  *
49  * The above copyright notice and this permission notice shall be included in
50  * all copies or substantial portions of the Software.
51  *
52  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
53  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
54  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
55  * JAKUB JELINEK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
56  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
57  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
58  *
59  */
60 
61 #ifndef _DEV_SBUS_ZXVAR_H_
62 #define _DEV_SBUS_ZXVAR_H_
63 
64 /*
65  * Sun (and Linux) compatible offsets for mmap().
66  */
67 #define ZX_FB0_VOFF		0x00000000
68 #define ZX_LC0_VOFF		0x00800000
69 #define ZX_LD0_VOFF		0x00801000
70 #define ZX_LX0_CURSOR_VOFF	0x00802000
71 #define ZX_FB1_VOFF		0x00803000
72 #define ZX_LC1_VOFF		0x01003000
73 #define ZX_LD1_VOFF		0x01004000
74 #define ZX_LX0_VERT_VOFF	0x01005000
75 #define ZX_LX_KRN_VOFF		0x01006000
76 #define ZX_LC0_KRN_VOFF		0x01007000
77 #define ZX_LC1_KRN_VOFF		0x01008000
78 #define ZX_LD_GBL_VOFF		0x01009000
79 
80 #define	ZX_WID_SHARED_8	0
81 #define	ZX_WID_SHARED_24	1
82 #define	ZX_WID_DBL_8		2
83 #define	ZX_WID_DBL_24		3
84 
85 /*
86  * Per-instance data.
87  */
88 struct zx_softc {
89 	struct device	sc_dv;
90 	struct sbusdev	sc_sd;
91 	struct fbdevice	sc_fb;
92 	bus_space_tag_t	sc_bt;
93 
94 	int		sc_flags;
95 	int		sc_fontw;
96 	int		sc_fonth;
97 	u_int8_t	*sc_cmap;
98 	u_int32_t	*sc_pixels;
99 	bus_addr_t	sc_paddr;
100 	int		sc_shiftx;
101 	int		sc_shifty;
102 
103 	struct fbcurpos	sc_curpos;
104 	struct fbcurpos	sc_curhot;
105 	struct fbcurpos sc_cursize;
106 	u_int8_t	sc_curcmap[8];
107 	u_int32_t	sc_curbits[2][32];
108 
109 	volatile struct zx_command *sc_zc;
110 	volatile struct zx_cross *sc_zx;
111 	volatile struct zx_draw *sc_zd_ss0;
112 	volatile struct zx_draw_ss1 *sc_zd_ss1;
113 	volatile struct zx_cursor *sc_zcu;
114 };
115 #define	ZX_BLANKED	0x01
116 #define	ZX_CURSOR	0x02
117 
118 #endif	/* !_DEV_SBUS_ZXVAR_H_ */
119