summaryrefslogtreecommitdiff
path: root/sys/arch/hp300/dev/grf_tcreg.h
blob: b3146f0100cf17e2ce0fd05d90b238d47e3013b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/*	$OpenBSD: grf_tcreg.h,v 1.2 1997/01/12 15:12:39 downsj Exp $	*/
/*	$NetBSD: grf_tcreg.h,v 1.6 1994/10/26 07:24:06 cgd Exp $	*/

/*
 * Copyright (c) 1988 University of Utah.
 * Copyright (c) 1990, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * This code is derived from software contributed to Berkeley by
 * the Systems Programming Group of the University of Utah Computer
 * Science Department.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *	This product includes software developed by the University of
 *	California, Berkeley and its contributors.
 * 4. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * from: Utah $Hdr: grf_tcreg.h 1.11 92/01/21$
 *
 *	@(#)grf_tcreg.h	8.1 (Berkeley) 6/10/93
 */

#include <hp300/dev/iotypes.h>	/* XXX */

#define tccm_waitbusy(regaddr) \
	while (((struct tcboxfb *)(regaddr))->cmap_busy & 0x04) DELAY(100)

#define tc_waitbusy(regaddr,planes) \
	while (((struct tcboxfb *)(regaddr))->busy & planes) DELAY(100)

struct tcboxfb {
  u_char 	:8;
  vu_char 	reset;			/* reset register		0x01 */
  vu_char	fb_address;		/* frame buffer address 	0x02 */
  vu_char	interrupt;		/* interrupt register		0x03 */
  u_char	:8;
  vu_char	fbwmsb;			/* frame buffer width MSB	0x05 */
  u_char	:8;
  vu_char	fbwlsb;			/* frame buffer width MSB	0x07 */
  u_char	:8;
  vu_char	fbhmsb;			/* frame buffer height MSB	0x09 */
  u_char	:8;
  vu_char	fbhlsb;			/* frame buffer height MSB	0x0b */
  u_char	:8;
  vu_char	dwmsb;			/* display width MSB		0x0d */
  u_char	:8;
  vu_char	dwlsb;			/* display width MSB		0x0f */
  u_char	:8;
  vu_char	dhmsb;			/* display height MSB		0x11 */
  u_char	:8;
  vu_char	dhlsb;			/* display height MSB		0x13 */
  u_char	:8;
  vu_char	fbid;			/* Scondary frame buffer id	0x15 */
  u_char	:8;
  vu_char	bits;			/* square(0)/double-high(1) 	0x17 */
  u_char	f1[0x5b-0x17-1];
  vu_char	num_planes;		/* number of color planes       0x5b */
  u_char	:8;
  vu_char	fbomsb;			/* frame buffer offset MSB	0x5d */
  u_char	:8;
  vu_char	fbolsb;			/* frame buffer offset LSB	0x5f */
  u_char	f2[0x4040-0x5f-1];
  vu_char 	vblank;			/* vertical blanking	      0x4040 */
  u_char	:8,:8,:8;
  vu_char	busy;			/* window move active	      0x4044 */
  u_char	:8,:8,:8;
  vu_char 	vtrace_request;		/* vert retrace intr request  0x4048 */
  u_char	:8,:8,:8;
  vu_char	move_request;		/* window move intr request   0x404C */
  u_char	f3[0x4080-0x404c-1];
  vu_char	nblank;			/* display enable planes      0x4080 */
  u_char 	f4[0x4088-0x4080-1];
  vu_char	wen;			/* write enable plane 	      0x4088 */
  u_char 	f5[0x408c-0x4088-1];
  vu_char	ren;			/* read enable plane          0x408c */
  u_char 	f6[0x4090-0x408c-1];
  vu_char	fben;			/* frame buffer write enable  0x4090 */
  u_char 	f7[0x409c-0x4090-1];
  vu_char	wmove;			/* start window move 	      0x409c */
  u_char 	f8[0x40a0-0x409c-1];
  vu_char	blink;			/* enable blink planes 	      0x40a0 */
  u_char 	f9[0x40a8-0x40a0-1];
  vu_char	altframe;		/* enable alternate frame     0x40a8 */
  u_char 	f10[0x40ac-0x40a8-1];
  vu_char	curon;			/* cursor control register    0x40ac */
  u_char	f11[0x40ea-0x40ac-1];
  vu_char	prr;			/* pixel replacement rule     0x40ea */
  u_char	f12[0x40ef-0x40ea-1];
  vu_char	wmrr;			/* move replacement rule      0x40ef */
  u_char 	f13[0x40f2-0x40ef-1];
  vu_short 	source_x;		/* source x pixel # 	      0x40f2 */
  u_char 	f14[0x40f6-0x40f2-2];
  vu_short 	source_y;		/* source y pixel # 	      0x40f6 */
  u_char 	f15[0x40fa-0x40f6-2];
  vu_short	dest_x;			/* dest x pixel # 	      0x40fa */
  u_char 	f16[0x40fe -0x40fa-2];
  vu_short	dest_y;			/* dest y pixel # 	      0x40fe */
  u_char 	f17[0x4102-0x40fe -2];
  vu_short	wwidth;			/* block mover pixel width    0x4102 */
  u_char	f18[0x4106-0x4102-2];
  vu_short 	wheight;		/* block mover pixel height   0x4106 */
  /* Catseye */
  u_char	f19[0x4206-0x4106-2];
  vu_short	rug_cmdstat;		/* RUG Command/Staus	      0x4206 */
  u_char	f20[0x4510-0x4206-2];
  vu_short	vb_select;		/* Vector/BitBlt Select	      0x4510 */
  vu_short	tcntrl;			/* Three Operand Control      0x4512 */
  vu_short	acntrl;			/* BitBlt Mode		      0x4514 */
  vu_short	pncntrl;		/* Plane Control	      0x4516 */
  u_char	f21[0x4800-0x4516-2];
  vu_short	catseye_status;		/* Catseye Status	      0x4800 */
  /* End of Catseye */
  u_char 	f22[0x6002-0x4800-2];
  vu_short	cmap_busy;		/* Color Ram busy	      0x6002 */
  u_char 	f23[0x60b2-0x6002-2];
  vu_short	rdata;			/* color map red data 	      0x60b2 */
  vu_short 	gdata;			/* color map green data       0x60b4 */
  vu_short	bdata;			/* color map blue data 	      0x60b6 */
  vu_short	cindex;			/* color map index 	      0x60b8 */
  vu_short	plane_mask;		/* plane mask select	      0x60ba */
  u_char 	f24[0x60f0-0x60ba-2];
  vu_short 	strobe;			/* color map trigger 	      0x60f0 */
};