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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
|
/* $OpenBSD: grf_dvreg.h,v 1.3 2003/06/02 23:27:44 millert Exp $ */
/* $NetBSD: grf_dvreg.h,v 1.5 1994/10/26 07:23:50 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. 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_dvreg.h 1.5 92/01/21$
*
* @(#)grf_dvreg.h 8.1 (Berkeley) 6/10/93
*/
#include <hp300/dev/iotypes.h> /* XXX */
/*
* Map of the DaVinci frame buffer controller chip in memory ...
*/
#define db_waitbusy(regaddr) \
while (((struct dvboxfb *)(regaddr))->wbusy || \
((struct dvboxfb *)(regaddr))->as_busy) DELAY(100)
struct rgb {
u_char :8, :8, :8;
vu_char red;
u_char :8, :8, :8;
vu_char green;
u_char :8, :8, :8;
vu_char blue;
};
struct dvboxfb {
u_char :8;
vu_char reset; /* reset register 0x01 */
u_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; /* frame buffer id 0x15 */
u_char f1[0x47];
vu_char fbomsb; /* frame buffer offset MSB 0x5d */
u_char :8;
vu_char fbolsb; /* frame buffer offset LSB 0x5f */
u_char f2[16359];
vu_char wbusy; /* Window move in progress 0x4047 */
u_char f3[0x405b-0x4047-1];
vu_char as_busy; /* Scan accessing frame buf. 0x405B */
u_char f4[0x4090-0x405b-1];
vu_int fbwen; /* Frame buffer write enable 0x4090 */
u_char f5[0x409f-0x4090-4];
vu_char wmove; /* Initiate window move. 0x409F */
u_char f6[0x40b3-0x409f-1];
vu_char fold; /* Byte/longword per pixel 0x40B3 */
u_char f7[0x40b7-0x40b3-1];
vu_char opwen; /* Overlay plane write enable 0x40B7 */
u_char f8[0x40bf-0x40b7-1];
vu_char drive; /* Select FB vs. Overlay. 0x40BF */
u_char f8a[0x40cb-0x40bf-1];
vu_char zconfig; /* Z buffer configuration 0x40CB */
u_char f8b[0x40cf-0x40cb-1];
vu_char alt_rr; /* Alternate replacement rule 0x40CF */
u_char f8c[0x40d3-0x40cf-1];
vu_char zrr; /* Z replacement rule 0x40D3 */
u_char f9[0x40d7-0x40d3-1];
vu_char en_scan; /* Enable scan DTACK. 0x40D7 */
u_char f10[0x40ef-0x40d7-1];
vu_char rep_rule; /* Replacement rule 0x40EF */
u_char f11[0x40f2-0x40ef-1];
vu_short source_x; /* Window source X origin 0x40F2 */
u_char f12[0x40f6-0x40f2-2];
vu_short source_y; /* Window source Y origin 0x40F6 */
u_char f13[0x40fa-0x40f6-2];
vu_short dest_x; /* Window dest X origin 0x40FA */
u_char f14[0x40fe -0x40fa-2];
vu_short dest_y; /* Window dest Y origin 0x40FE */
u_char f15[0x4102-0x40fe -2];
vu_short wwidth; /* Window width 0x4102 */
u_char f16[0x4106-0x4102-2];
vu_short wheight; /* Window height 0x4106 */
u_char f17[0x6003-0x4106-2];
vu_char cmapbank; /* Bank select (0 or 1) 0x6003 */
u_char f18[0x6007-0x6003-1];
vu_char dispen; /* Display enable 0x6007 */
u_char f18a[0x600B-0x6007-1];
vu_char fbvenp; /* Frame buffer video enable 0x600B */
u_char f18b[0x6017-0x600B-1];
vu_char fbvens; /* fbvenp blink counterpart 0x6017 */
u_char f19[0x6023-0x6017-1];
vu_char vdrive; /* Video display mode 0x6023 */
u_char f20[0x6083-0x6023-1];
vu_char panxh; /* Pan display in X (high) 0x6083 */
u_char f21[0x6087-0x6083-1];
vu_char panxl; /* Pan display in X (low) 0x6087 */
u_char f22[0x608b-0x6087-1];
vu_char panyh; /* Pan display in Y (high) 0x608B */
u_char f23[0x608f-0x608b-1];
vu_char panyl; /* Pan display in Y (low) 0x608F */
u_char f24[0x6093-0x608f-1];
vu_char zoom; /* Zoom factor 0x6093 */
u_char f25[0x6097-0x6093-1];
vu_char pz_trig; /* Pan & zoom trigger 0x6097 */
u_char f26[0x609b-0x6097-1];
vu_char ovly0p; /* Overlay 0 primary map 0x609B */
u_char f27[0x609f-0x609b-1];
vu_char ovly1p; /* Overlay 1 primary map 0x609F */
u_char f28[0x60a3-0x609f-1];
vu_char ovly0s; /* Overlay 0 secondary map 0x60A3 */
u_char f29[0x60a7-0x60a3-1];
vu_char ovly1s; /* Overlay 1 secondary map 0x60A7 */
u_char f30[0x60ab-0x60a7-1];
vu_char opvenp; /* Overlay video enable 0x60AB */
u_char f31[0x60af-0x60ab-1];
vu_char opvens; /* Overlay blink enable 0x60AF */
u_char f32[0x60b3-0x60af-1];
vu_char fv_trig; /* Trigger control registers 0x60B3 */
u_char f33[0x60b7-0x60b3-1];
vu_char cdwidth; /* Iris cdwidth timing reg. 0x60B7 */
u_char f34[0x60bb-0x60b7-1];
vu_char chstart; /* Iris chstart timing reg. 0x60BB */
u_char f35[0x60bf-0x60bb-1];
vu_char cvwidth; /* Iris cvwidth timing reg. 0x60BF */
u_char f36[0x6100-0x60bf-1];
struct rgb rgb[8]; /* overlay color map */
u_char f37[0x6403-0x6100-sizeof(struct rgb)*8];
vu_char red0;
u_char f38[0x6803-0x6403-1];
vu_char green0;
u_char f39[0x6c03-0x6803-1];
vu_char blue0;
u_char f40[0x7403-0x6c03-1];
vu_char red1;
u_char f41[0x7803-0x7403-1];
vu_char green1;
u_char f42[0x7c03-0x7803-1];
vu_char blue1;
u_char f43[0x8012-0x7c03-1];
vu_short status1; /* Master Status register 0x8012 */
u_char f44[0xC226-0x8012-2];
vu_short trans; /* Transparency 0xC226 */
u_char f45[0xC23E -0xC226-2];
vu_short pstop; /* Pace value control 0xc23e */
};
|