xref: /netbsd-src/sys/arch/vax/include/lcgreg.h (revision ce099b40997c43048fb78bd578195f81d2456523)
1*ce099b40Smartin /* $NetBSD: lcgreg.h,v 1.5 2008/04/28 20:23:39 martin Exp $ */
27964d803Smatt 
37964d803Smatt /*-
47964d803Smatt  * Copyright (c) 2000 The NetBSD Foundation, Inc.
57964d803Smatt  * All rights reserved.
67964d803Smatt  *
77964d803Smatt  * This code is derived from software contributed to The NetBSD Foundation
87964d803Smatt  * by Matt Thomas of 3am Software Foundry.
97964d803Smatt  *
107964d803Smatt  * Redistribution and use in source and binary forms, with or without
117964d803Smatt  * modification, are permitted provided that the following conditions
127964d803Smatt  * are met:
137964d803Smatt  * 1. Redistributions of source code must retain the above copyright
147964d803Smatt  *    notice, this list of conditions and the following disclaimer.
157964d803Smatt  * 2. Redistributions in binary form must reproduce the above copyright
167964d803Smatt  *    notice, this list of conditions and the following disclaimer in the
177964d803Smatt  *    documentation and/or other materials provided with the distribution.
187964d803Smatt  *
197964d803Smatt  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
207964d803Smatt  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
217964d803Smatt  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
227964d803Smatt  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
237964d803Smatt  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
247964d803Smatt  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
257964d803Smatt  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
267964d803Smatt  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
277964d803Smatt  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
287964d803Smatt  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
297964d803Smatt  * POSSIBILITY OF SUCH DAMAGE.
307964d803Smatt  */
317964d803Smatt 
327964d803Smatt #ifndef	_VAX_LCGREG_H
337964d803Smatt #define	_VAX_LCGREG_H
347964d803Smatt 
357964d803Smatt /* The registers of the LCG used in the VS4000/60 and VS4000/VLC.
367964d803Smatt  * All relative to 0x20100000
377964d803Smatt  */
387964d803Smatt 
39964859d8Sabs /* Memory Control, Flow Control, Configuration Registers
407964d803Smatt  */
417964d803Smatt #define	LCG_REG_MEM_CONFIG		0x001800
427964d803Smatt #define	LCG_REG_MEM_STATUS		0x001804
437964d803Smatt #define	LCG_REG_MEM_CURRENT_STATE	0x001808
447964d803Smatt #define	LCG_REG_MEM_ERROR		0x00180c
457964d803Smatt #define	LCG_REG_SLOW_CONTROL_STATUS	0x001810
467964d803Smatt 
477964d803Smatt /* Video Control Registers
487964d803Smatt  */
497964d803Smatt #define	LCG_REG_VIDEO_CONFIG		0x001e00
507964d803Smatt #define	LCG_REG_VIDEO_HTIMING		0x001e10
517964d803Smatt #define	LCG_REG_VIDEO_VTIMING		0x001e14
527964d803Smatt #define	LCG_REG_VIDEO_TIMING		0x001e18
537964d803Smatt #define	LCG_REG_VIDEO_X			0x000e30
547964d803Smatt #define	LCG_REG_VIDEO_Y			0x000e30
557964d803Smatt #define	LCG_REG_VIDEO_REFRESH_BASE	0x000e34
567964d803Smatt #define	LCG_REG_VIDEO_REFRESH_SHIFT	0x000e40
577964d803Smatt #define	LCG_REG_VIDEO_LUT_LOAD_COUNT	0x000e40
587964d803Smatt #define	LCG_REG_CURSOR_SCANLINE_LW0	0x000e50
597964d803Smatt #define	LCG_REG_CURSOR_SCANLINE_LW1	0x000e54
607964d803Smatt #define	LCG_REG_CURSOR_SCANLINE_LW2	0x000e58
617964d803Smatt #define	LCG_REG_CURSOR_SCANLINE_LW3	0x000e5c
627964d803Smatt #define	LCG_REG_CURSOR_BASE		0x000e80
637964d803Smatt #define	LCG_REG_CURSOR_XY		0x000e84
647964d803Smatt #define	LCG_REG_CURSOR_X		0x000e84
657964d803Smatt #define	LCG_REG_CURSOR_Y		0x000e84
667964d803Smatt #define	LCG_REG_LUT_CONSOLE_SEL		0x000ee0
677964d803Smatt #define	LCG_REG_LUT_COLOR_BASE_W	0x0006e4
687964d803Smatt #define	LCG_REG_LUT_COLOR_BASE_R	0x0006e4
697964d803Smatt #define	LCG_REG_LUT_CONTROL_BASE	0x000ee8
707964d803Smatt #define	LCG_REG_VIDEO_COUNTER_TEST	0x000f00
717964d803Smatt #define	LCG_REG_MEM_REFRESH_BASE	0x000f04
727964d803Smatt 
737964d803Smatt /* Graphics Control and VM Registers
747964d803Smatt  */
757964d803Smatt #define	LCG_REG_LCG_GO			0x000c80
767964d803Smatt #define	LCG_REG_NEXT_ADDRESS		0x001334
777964d803Smatt #define	LCG_REG_PA_SPTE_PTE		0x001338
787964d803Smatt #define	LCG_REG_TB_INVALIDATE_SINGLE	0x001a00
797964d803Smatt #define	LCG_REG_TB_INVALIDATE_ALL	0x001a08
807964d803Smatt #define	LCG_REG_TB_INVALIDATE_STATUS	0x001a10
817964d803Smatt #define	LCG_REG_TB_STATUS		0x001c00
827964d803Smatt #define	LCG_REG_TB_VPN_COUNT		0x001c04
837964d803Smatt #define	LCG_REG_TB_DEST_VPN		0x001c14
847964d803Smatt #define	LCG_REG_TB_SOURCE_VPN		0x001c18
857964d803Smatt #define	LCG_REG_TB_STENCIL_VPN		0x001c1c
867964d803Smatt #define	LCG_REG_TB_DEST_DATA_PFN_R	0x001c24
877964d803Smatt #define	LCG_REG_TB_DEST_DATA_PFN_W	0x001c24
887964d803Smatt #define	LCG_REG_TB_SOURCE_DATA_PFN_R	0x001c28
897964d803Smatt #define	LCG_REG_TB_SOURCE_DATA_PFN_W	0x001c28
907964d803Smatt #define	LCG_REG_TB_STENCIL_DATA_PFN_R	0x001c2c
917964d803Smatt #define	LCG_REG_TB_STENCIL_DATA_PFN_W	0x001c2c
927964d803Smatt #define	LCG_REG_TB_DEST_PRE_PFN_R	0x001c34
937964d803Smatt #define	LCG_REG_TB_DEST_PRE_PFN_W	0x001c34
947964d803Smatt #define	LCG_REG_TB_SOURCE_PTE_PFN_R	0x001c38
957964d803Smatt #define	LCG_REG_TB_SOURCE_PTE_PFN_W	0x001c38
967964d803Smatt #define	LCG_REG_TB_STENCIL_PTE_PFN_R	0x001c3c
977964d803Smatt #define	LCG_REG_TB_STENCIL_PTE_PFN_W	0x001c3c
987964d803Smatt #define	LCG_REG_GRAPHICS_CONFIG		0x001c90
997964d803Smatt #define	LCG_REG_GRAPHICS_INT_STATUS	0x001c94
1007964d803Smatt #define	LCG_REG_GRAPHICS_INT_SET_ENABLE	0x001c98
1017964d803Smatt #define	LCG_REG_GRAPHICS_INT_CLR_ENABLE	0x001c9c
1027964d803Smatt #define	LCG_REG_GRAPHICS_SUB_STATUS	0x001ca0
1037964d803Smatt #define	LCG_REG_GRAPHICS_CONTROL	0x001ca4
1047964d803Smatt #define	LCG_REG_BREAKPT_ADDRESS		0x001cb0
1057964d803Smatt #define	LCG_REG_BREAKPT_VIRTUAL		0x001cb0
1067964d803Smatt #define	LCG_REG_WRITE_PROTECT_LOW_HIGH	0x001cc0
1077964d803Smatt #define	LCG_REG_WRITE_PROTECT_LOW	0x001cc0
1087964d803Smatt #define	LCG_REG_WRITE_PROTECT_HIGH	0x001cc0
1097964d803Smatt #define	LCG_REG_MAX_VIRTUAL_ADDRESS	0x002350
1107964d803Smatt #define	LCG_REG_PA_SPTE_POBR		0x002354
1117964d803Smatt 
1127964d803Smatt /* Clip List / Command FIFO Registers
1137964d803Smatt  */
1147964d803Smatt #define	LCG_REG_CLIP_LIST_OFFSET	0x0004e4
1157964d803Smatt #define	LCG_REG_CLIP_LIST_BASE		0x0004e4
1167964d803Smatt #define	LCG_REG_CLIP_LIST		0x0004e4
1177964d803Smatt #define	LCG_REG_FIFO_MASKS		0x000570
1187964d803Smatt #define	LCG_REG_FIFO_HEAD_OFFSET	0x000574
1197964d803Smatt #define	LCG_REG_FIFO_BASE		0x000574
1207964d803Smatt #define	LCG_REG_FIFO_HEAD		0x000574
1217964d803Smatt #define	LCG_REG_FIFO_TAIL_OFFSET	0x000578
1227964d803Smatt #define	LCG_REG_FIFO_BASE2		0x000578
1237964d803Smatt #define	LCG_REG_FIFO_TAIL		0x000578
1247964d803Smatt #define	LCG_REG_CLIP_LIST_SAVE_OFFSET	0x000ce4
1257fe25253Smatt #define	LCG_REG_FIFO_RESIDUE_LW0	0x000d04
1267fe25253Smatt #define	LCG_REG_FIFO_RESIDUE_LW1	0x000d08
1277964d803Smatt #define	LCG_REG_FIFO_RESIDUE_LW2	0x000d0c
1287964d803Smatt #define	LCG_REG_FIFO_LENGTH		0x000d70
1297964d803Smatt #define	LCG_REG_FIFO_SAVE_HEAD_OFFSET	0x000d74
1307964d803Smatt #define	LCG_REG_FIFO_WINDOW_BASE	0x080000
1317964d803Smatt #define	LCG_REG_FIFO_WINDOW_END		0x100000
1327964d803Smatt 
1337964d803Smatt /* Graphics Data Buffer and Pixel SLU Registers
1347964d803Smatt  */
1357964d803Smatt #define	LCG_REG_LOGICAL_FUNCTION	0x000220
1367964d803Smatt #define	LCG_REG_PLANE_MASK		0x000234
1377964d803Smatt #define	LCG_REG_SOURCE_PLANE_INDEX	0x00026c
1387964d803Smatt #define	LCG_REG_FOREGROUND_PIXEL	0x0002c0
1397964d803Smatt #define	LCG_REG_BACKGROUND_PIXEL	0x0004c0
1407964d803Smatt #define	LCG_REG_GDB_LW0			0x000d80
1417964d803Smatt #define	LCG_REG_GDB_LW1			0x000d84
1427964d803Smatt #define	LCG_REG_GDB_LW2			0x000d88
1437964d803Smatt #define	LCG_REG_GDB_LW3			0x000d8c
1447964d803Smatt #define	LCG_REG_GDB_LW4			0x000d90
1457964d803Smatt #define	LCG_REG_GDB_LW5			0x000d94
1467964d803Smatt #define	LCG_REG_GDB_LW6			0x000d98
1477964d803Smatt #define	LCG_REG_GDB_LW7			0x000d9c
1487964d803Smatt #define	LCG_REG_SLU_STATE		0x000da0
1497964d803Smatt 
1507964d803Smatt /* Address Generator Registers
1517964d803Smatt  */
1527964d803Smatt #define	LCG_REG_CLIP_MIN_Y		0x000244
1537964d803Smatt #define	LCG_REG_CLIP_MIN_MAX_X		0x000248
1547964d803Smatt #define	LCG_REG_CLIP_MIN_X		0x000248
1557964d803Smatt #define	LCG_REG_CLIP_MAX_X		0x000248
1567964d803Smatt #define	LCG_REG_CLIP_MAX_Y		0x00024c
1577964d803Smatt #define	LCG_REG_DEST_X_BIAS		0x000250
1587964d803Smatt #define	LCG_REG_DEST_Y_ORIGIN		0x000254
1597964d803Smatt #define	LCG_REG_DEST_Y_STEP		0x000258
1607964d803Smatt #define	LCG_REG_SOURCE_X_BIAS		0x000260
1617964d803Smatt #define	LCG_REG_SOURCE_Y_BASE		0x000264
1627964d803Smatt #define	LCG_REG_SOURCE_Y_STEP_WIDTH	0x000268
1637964d803Smatt #define	LCG_REG_SOURCE_Y_STEP		0x000268
1647964d803Smatt #define	LCG_REG_SOURCE_WIDTH		0x000268
1657964d803Smatt #define	LCG_REG_STENCIL_X_BIAS		0x000270
1667964d803Smatt #define	LCG_REG_STENCIL_Y_BASE		0x000274
1677964d803Smatt #define	LCG_REG_STENCIL_Y_STEP		0x000278
1687964d803Smatt #define	LCG_REG_DEST_Y_BASE		0x000284
1697964d803Smatt #define	LCG_REG_DEST_X			0x000290
1707964d803Smatt #define	LCG_REG_DEST_WIDTH_HEIGHT	0x000294
1717964d803Smatt #define	LCG_REG_DEST_WIDTH		0x000294
1727964d803Smatt #define	LCG_REG_DEST_HEIGHT		0x000294
1737964d803Smatt #define	LCG_REG_AG_STATUS2		0x000320
1747964d803Smatt #define	LCG_REG_AG_CURRENT_STATE	0x000320
1757964d803Smatt #define	LCG_REG_CURRENT_OPCODE		0x000320
1767964d803Smatt #define	LCG_REG_OP_ACTION_CODE		0x000320
1777964d803Smatt #define	LCG_REG_AG_STATUS		0x000324
1787964d803Smatt #define	LCG_REG_NEXT_X			0x000330
1797964d803Smatt #define	LCG_REG_CLIP_X_DIFF		0x000330
1807964d803Smatt #define	LCG_REG_SOURCE_X_BIAS0		0x000460
1817964d803Smatt #define	LCG_REG_SOURCE_WIDTH0		0x000468
1827964d803Smatt #define	LCG_REG_DEST_X0			0x000490
1837964d803Smatt #define	LCG_REG_DEST_WIDTH0		0x000494
1847964d803Smatt #define	LCG_REG_TILE_ROTATION		0x000660
1857964d803Smatt #define	LCG_REG_TILE_WIDTH		0x000668
1867964d803Smatt 
1877964d803Smatt #endif	/* _VAX_LCGREG_H */
188