Annotation of sys/arch/vax/vsa/lcgreg.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: lcgreg.h,v 1.3 2006/08/22 21:05:03 miod Exp $ */
2: /* $NetBSD: lcgreg.h,v 1.4 2005/12/11 12:19:34 christos Exp $ */
3:
4: /*-
5: * Copyright (c) 2000 The NetBSD Foundation, Inc.
6: * All rights reserved.
7: *
8: * This code is derived from software contributed to The NetBSD Foundation
9: * by Matt Thomas of 3am Software Foundry.
10: *
11: * Redistribution and use in source and binary forms, with or without
12: * modification, are permitted provided that the following conditions
13: * are met:
14: * 1. Redistributions of source code must retain the above copyright
15: * notice, this list of conditions and the following disclaimer.
16: * 2. Redistributions in binary form must reproduce the above copyright
17: * notice, this list of conditions and the following disclaimer in the
18: * documentation and/or other materials provided with the distribution.
19: * 3. All advertising materials mentioning features or use of this software
20: * must display the following acknowledgement:
21: * This product includes software developed by the NetBSD
22: * Foundation, Inc. and its contributors.
23: * 4. Neither the name of The NetBSD Foundation nor the names of its
24: * contributors may be used to endorse or promote products derived
25: * from this software without specific prior written permission.
26: *
27: * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
28: * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
29: * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
30: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
31: * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37: * POSSIBILITY OF SUCH DAMAGE.
38: */
39:
40: /*
41: * The registers of the LCG used in the VS4000/60 and VS4000/VLC.
42: * All relative to 0x20100000
43: */
44:
45: /* Memory Control, Flow Control, Configuration Registers
46: */
47: #define LCG_REG_MEM_CONFIG 0x001800
48: #define LCG_REG_MEM_STATUS 0x001804
49: #define LCG_REG_MEM_CURRENT_STATE 0x001808
50: #define LCG_REG_MEM_ERROR 0x00180c
51: #define LCG_REG_SLOW_CONTROL_STATUS 0x001810
52:
53: /* Video Control Registers
54: */
55: #define LCG_REG_VIDEO_CONFIG 0x001e00
56: #define VIDEO_VSTATE 0xc0000000
57: #define VIDEO_VFRONT_PORCH 0x00000000
58: #define VIDEO_VSYNC 0x40000000
59: #define VIDEO_VBACK_PORCH 0x80000000
60: #define VIDEO_VACTIVE 0xc0000000
61: #define VIDEO_HSTATE 0x30000000
62: #define VIDEO_HFRONT_PORCH 0x00000000
63: #define VIDEO_HSYNC 0x10000000
64: #define VIDEO_HBACK_PORCH 0x20000000
65: #define VIDEO_HACTIVE 0x30000000
66: #define VIDEO_CONSOLE_LUT 0x02000000
67: #define VIDEO_CONTROL_LUT 0x01000000
68: #define VIDEO_CURSOR_ACTIVE 0x00400000
69: #define VIDEO_CURSOR_SCANLINE 0x003f0000
70: #define VIDEO_RESET 0x00008000
71: #define VIDEO_LUT_LOAD_SIZE 0x00002000
72: #define VIDEO_SYNC_ENABLE 0x00001000
73: #define VIDEO_LUT_SHIFT_SEL 0x00000800
74: #define VIDEO_CLOCK_SEL 0x00000400
75: #define VIDEO_MEM_REFRESH_SEL_MASK 0x00000300
76: #define VIDEO_MEM_REFRESH_SEL_SHIFT 8
77: #define VIDEO_REFRESH_SEL 0x000000c0
78: #define VIDEO_SHIFT_SEL 0x00000020
79: #define VIDEO_CURSOR_PIN_TYPE 0x00000010
80: #define VIDEO_LUT_LOAD_ENABLE 0x00000008
81: #define VIDEO_CURSOR_ENABLE 0x00000004
82: #define VIDEO_ENABLE_VIDEO 0x00000002
83: #define VIDEO_TIMING_ENABLE 0x00000001
84: #define LCG_REG_VIDEO_HTIMING 0x001e10
85: #define LCG_REG_VIDEO_VTIMING 0x001e14
86: #define LCG_REG_VIDEO_TIMING 0x001e18
87: #define LCG_REG_VIDEO_X 0x000e30
88: #define LCG_REG_VIDEO_Y 0x000e30
89: #define LCG_REG_VIDEO_REFRESH_BASE 0x000e34
90: #define LCG_REG_VIDEO_REFRESH_SHIFT 0x000e40
91: #define LCG_REG_VIDEO_LUT_LOAD_COUNT 0x000e40
92: #define LCG_REG_CURSOR_SCANLINE_LW0 0x000e50
93: #define LCG_REG_CURSOR_SCANLINE_LW1 0x000e54
94: #define LCG_REG_CURSOR_SCANLINE_LW2 0x000e58
95: #define LCG_REG_CURSOR_SCANLINE_LW3 0x000e5c
96: #define LCG_REG_CURSOR_BASE 0x000e80
97: #define LCG_REG_CURSOR_XY 0x000e84
98: #define LCG_REG_CURSOR_X 0x000e84
99: #define LCG_REG_CURSOR_Y 0x000e84
100: #define LCG_REG_LUT_CONSOLE_SEL 0x000ee0
101: #define LUT_SEL_CONSOLE 0x00000000
102: #define LUT_SEL_COLOR 0x00000001
103: #define LCG_REG_LUT_COLOR_BASE_W 0x0006e4
104: #define LCG_REG_LUT_COLOR_BASE_R 0x0006e4
105: #define LCG_REG_LUT_CONTROL_BASE 0x000ee8
106: #define LCG_REG_VIDEO_COUNTER_TEST 0x000f00
107: #define LCG_REG_MEM_REFRESH_BASE 0x000f04
108:
109: /* Graphics Control and VM Registers
110: */
111: #define LCG_REG_LCG_GO 0x000c80
112: #define GO_VM 0x00000008
113: #define GO_AG 0x00000002
114: #define GO_FIFO 0x00000001
115: #define LCG_REG_NEXT_ADDRESS 0x001334
116: #define LCG_REG_PA_SPTE_PTE 0x001338
117: #define LCG_REG_TB_INVALIDATE_SINGLE 0x001a00
118: #define LCG_REG_TB_INVALIDATE_ALL 0x001a08
119: #define LCG_REG_TB_INVALIDATE_STATUS 0x001a10
120: #define LCG_REG_TB_STATUS 0x001c00
121: #define LCG_REG_TB_VPN_COUNT 0x001c04
122: #define LCG_REG_TB_DEST_VPN 0x001c14
123: #define LCG_REG_TB_SOURCE_VPN 0x001c18
124: #define LCG_REG_TB_STENCIL_VPN 0x001c1c
125: #define LCG_REG_TB_DEST_DATA_PFN_R 0x001c24
126: #define LCG_REG_TB_DEST_DATA_PFN_W 0x001c24
127: #define LCG_REG_TB_SOURCE_DATA_PFN_R 0x001c28
128: #define LCG_REG_TB_SOURCE_DATA_PFN_W 0x001c28
129: #define LCG_REG_TB_STENCIL_DATA_PFN_R 0x001c2c
130: #define LCG_REG_TB_STENCIL_DATA_PFN_W 0x001c2c
131: #define LCG_REG_TB_DEST_PRE_PFN_R 0x001c34
132: #define LCG_REG_TB_DEST_PRE_PFN_W 0x001c34
133: #define LCG_REG_TB_SOURCE_PTE_PFN_R 0x001c38
134: #define LCG_REG_TB_SOURCE_PTE_PFN_W 0x001c38
135: #define LCG_REG_TB_STENCIL_PTE_PFN_R 0x001c3c
136: #define LCG_REG_TB_STENCIL_PTE_PFN_W 0x001c3c
137: #define LCG_REG_GRAPHICS_CONFIG 0x001c90
138: #define LCG_REG_GRAPHICS_INT_STATUS 0x001c94
139: #define LCG_REG_GRAPHICS_INT_SET_ENABLE 0x001c98
140: #define LCG_REG_GRAPHICS_INT_CLR_ENABLE 0x001c9c
141: #define LCG_REG_GRAPHICS_SUB_STATUS 0x001ca0
142: #define GSS_AG_BUSY 0x80000000
143: #define GSS_SHORT_CIRCUIT 0x20000000
144: #define GSS_VALID_PACKET 0x10000000
145: #define GSS_1ST_LONGWORD 0x08000000
146: #define GSS_FIFO_ARBITRATE 0x04000000
147: #define GSS_FIFO_COMMANDER 0x03000000
148: #define GSS_AG_BACKWARDS 0x00800000
149: #define GSS_AG_VIRTUAL 0x00400000
150: #define GSS_AG_ARBITRATE 0x00200000
151: #define GSS_AG_READ_ID 0x00100000
152: #define GSS_AG_ACCESS_TYPE 0x000c0000
153: #define GSS_AG_ACCESS_SIZE 0x00030000
154: #define GSS_RESIDUE_LW0 0x00008000
155: #define GSS_RESIDUE_LW1 0x00004000
156: #define GSS_RESIDUE_LW2 0x00002000
157: #define GSS_FIFO_TAIL_BITS 0x00001800
158: #define GSS_FIFO_IDU 0x00000400
159: #define GSS_EXECUTING_CLIP 0x00000200
160: #define GSS_FIFO_BPT_STALL 0x00000100
161: #define GSS_FIFO_WFSYNC_STALL 0x00000080
162: #define GSS_FIFO_AGBUSY_STALL 0x00000040
163: #define GSS_ADRS_BPT_VIRTUAL 0x00000010
164: #define GSS_VM 0x00000008
165: #define GSS_FIFO_IDLE 0x00000004
166: #define GSS_AG_ACCESS 0x00000002
167: #define GSS_FIFO 0x00000001
168: #define LCG_REG_GRAPHICS_CONTROL 0x001ca4
169: #define CTRL_RESET 0x80000000
170: #define CTRL_AG 0x40000000
171: #define CTRL_CLIP_LIST 0x20000000
172: #define CTRL_FIFO 0x10000000
173: #define CTRL_SHORT_CIRCUIT 0x08000000
174: #define CTRL_VM 0x04000000
175: #define CTRL_VM_PROTECTION 0x02000000
176: #define CTRL_OPT_INTERFACE 0x01000000
177: #define CTRL_OPT_TIMEOUT_SEL 0x00c00000
178: #define CTRL_OPT_RESET 0x00200000
179: #define CTRL_OPTION_NORESET 0x00100000
180: #define CTRL_AG_ACCESS_BPT_ARM 0x00000800
181: #define CTRL_PACKET_BPT_ARM 0x00000200
182: #define CTRL_ADDRESS_BPT_ARM 0x00000100
183: #define LCG_REG_BREAKPT_ADDRESS 0x001cb0
184: #define LCG_REG_BREAKPT_VIRTUAL 0x001cb0
185: #define LCG_REG_WRITE_PROTECT_LOW_HIGH 0x001cc0
186: #define LCG_REG_WRITE_PROTECT_LOW 0x001cc0
187: #define LCG_REG_WRITE_PROTECT_HIGH 0x001cc0
188: #define LCG_REG_MAX_VIRTUAL_ADDRESS 0x002350
189: #define LCG_REG_PA_SPTE_POBR 0x002354
190:
191: /* Clip List / Command FIFO Registers
192: */
193: #define LCG_REG_CLIP_LIST_OFFSET 0x0004e4
194: #define LCG_REG_CLIP_LIST_BASE 0x0004e4
195: #define LCG_REG_CLIP_LIST 0x0004e4
196: #define LCG_REG_FIFO_MASKS 0x000570
197: #define FIFO_16K 0x00000000
198: #define FIFO_32K 0x00004000
199: #define FIFO_64K 0x0000c000
200: #define FIFO_AFULL_AT_64 0x00000000
201: #define FIFO_AFULL_AT_128 0x00002000
202: #define FIFO_AFULL_AT_256 0x00003000
203: #define FIFO_AFULL_AT_512 0x00003800
204: #define FIFO_AFULL_AT_1024 0x00003c00
205: #define FIFO_AFULL_AT_2048 0x00003e00
206: #define FIFO_AFULL_AT_4096 0x00003f00
207: #define FIFO_AEMPTY_AT_32 0x00000000
208: #define FIFO_AEMPTY_AT_64 0x00000080
209: #define FIFO_AEMPTY_AT_128 0x00000040
210: #define FIFO_AEMPTY_AT_256 0x00000020
211: #define FIFO_AEMPTY_AT_512 0x00000010
212: #define FIFO_AEMPTY_AT_1024 0x00000008
213: #define FIFO_AEMPTY_AT_2048 0x00000004
214: #define FIFO_AEMPTY_AT_4096 0x00000002
215: #define FIFO_AEMPTY_AT_8192 0x00000001
216: #define LCG_REG_FIFO_HEAD_OFFSET 0x000574
217: #define LCG_REG_FIFO_BASE 0x000574
218: #define LCG_REG_FIFO_HEAD 0x000574
219: #define LCG_REG_FIFO_TAIL_OFFSET 0x000578
220: #define LCG_REG_FIFO_BASE2 0x000578
221: #define LCG_REG_FIFO_TAIL 0x000578
222: #define LCG_REG_CLIP_LIST_SAVE_OFFSET 0x000ce4
223: #define LCG_REG_FIFO_RESIDUE_LW0 0x000d04
224: #define LCG_REG_FIFO_RESIDUE_LW1 0x000d08
225: #define LCG_REG_FIFO_RESIDUE_LW2 0x000d0c
226: #define LCG_REG_FIFO_LENGTH 0x000d70
227: #define LCG_REG_FIFO_SAVE_HEAD_OFFSET 0x000d74
228: #define LCG_REG_FIFO_WINDOW_BASE 0x080000
229: #define LCG_REG_FIFO_WINDOW_END 0x100000
230:
231: /* Graphics Data Buffer and Pixel SLU Registers
232: */
233: #define LCG_REG_LOGICAL_FUNCTION 0x000220
234: #define LCG_REG_PLANE_MASK 0x000234
235: #define LCG_REG_SOURCE_PLANE_INDEX 0x00026c
236: #define LCG_REG_FOREGROUND_PIXEL 0x0002c0
237: #define LCG_REG_BACKGROUND_PIXEL 0x0004c0
238: #define LCG_REG_GDB_LW0 0x000d80
239: #define LCG_REG_GDB_LW1 0x000d84
240: #define LCG_REG_GDB_LW2 0x000d88
241: #define LCG_REG_GDB_LW3 0x000d8c
242: #define LCG_REG_GDB_LW4 0x000d90
243: #define LCG_REG_GDB_LW5 0x000d94
244: #define LCG_REG_GDB_LW6 0x000d98
245: #define LCG_REG_GDB_LW7 0x000d9c
246: #define LCG_REG_SLU_STATE 0x000da0
247:
248: /* Address Generator Registers
249: */
250: #define LCG_REG_CLIP_MIN_Y 0x000244
251: #define LCG_REG_CLIP_MIN_MAX_X 0x000248
252: #define LCG_REG_CLIP_MIN_X 0x000248
253: #define LCG_REG_CLIP_MAX_X 0x000248
254: #define LCG_REG_CLIP_MAX_Y 0x00024c
255: #define LCG_REG_DEST_X_BIAS 0x000250
256: #define LCG_REG_DEST_Y_ORIGIN 0x000254
257: #define LCG_REG_DEST_Y_STEP 0x000258
258: #define LCG_REG_SOURCE_X_BIAS 0x000260
259: #define LCG_REG_SOURCE_Y_BASE 0x000264
260: #define LCG_REG_SOURCE_Y_STEP_WIDTH 0x000268
261: #define LCG_REG_SOURCE_Y_STEP 0x000268
262: #define LCG_REG_SOURCE_WIDTH 0x000268
263: #define LCG_REG_STENCIL_X_BIAS 0x000270
264: #define LCG_REG_STENCIL_Y_BASE 0x000274
265: #define LCG_REG_STENCIL_Y_STEP 0x000278
266: #define LCG_REG_DEST_Y_BASE 0x000284
267: #define LCG_REG_DEST_X 0x000290
268: #define LCG_REG_DEST_WIDTH_HEIGHT 0x000294
269: #define LCG_REG_DEST_WIDTH 0x000294
270: #define LCG_REG_DEST_HEIGHT 0x000294
271: #define LCG_REG_AG_STATUS2 0x000320
272: #define LCG_REG_AG_CURRENT_STATE 0x000320
273: #define LCG_REG_CURRENT_OPCODE 0x000320
274: #define LCG_REG_OP_ACTION_CODE 0x000320
275: #define LCG_REG_AG_STATUS 0x000324
276: #define LCG_REG_NEXT_X 0x000330
277: #define LCG_REG_CLIP_X_DIFF 0x000330
278: #define LCG_REG_SOURCE_X_BIAS0 0x000460
279: #define LCG_REG_SOURCE_WIDTH0 0x000468
280: #define LCG_REG_DEST_X0 0x000490
281: #define LCG_REG_DEST_WIDTH0 0x000494
282: #define LCG_REG_TILE_ROTATION 0x000660
283: #define LCG_REG_TILE_WIDTH 0x000668
284:
285: /*
286: * LUT data bits
287: */
288: #define LUT_ADRS_REG 0x00 /* write to address register */
289: #define LUT_COLOR_AUTOINC 0x01 /* write to LUT and autoincrement */
CVSweb