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
|
/* $NetBSD: pm2reg.h,v 1.4 2010/03/16 21:27:02 macallan Exp $ */
/*
* Copyright (c) 2009 Michael Lorenz
* All rights reserved.
*
* 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.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
*/
/*
* register definitions for Permedia 2 graphics controllers
*/
#ifndef PM2_REG_H
#define PM2_REG_H
#define PM2_RESET 0x00000000 /* any write initiates a chip reset */
#define PM2_RESET_BUSY 0x80000000 /* reset in progress */
#define PM2_INPUT_FIFO_SPACE 0x00000018
#define PM2_OUTPUT_FIFO_WORDS 0x00000020
#define PM2_APERTURE1_CONTROL 0x00000050
#define PM2_APERTURE2_CONTROL 0x00000058
#define PM2_AP_BYTESWAP 0x00000001
#define PM2_AP_HALFWORDSWAP 0x00000002
#define PM2_AP_PACKED16_EN 0x00000008
#define PM2_AP_PACKED16_READ_B 0x00000010 /* Buffer A otherwise */
#define PM2_AP_PACKED16_WRITE_B 0x00000020 /* A otherwise */
#define PM2_AP_PACKED16_WRT_DBL 0x00000040
#define PM2_AP_PACKED16_R31 0x00000080 /* read buffer selected by
* visibility bit in memory
*/
#define PM2_AP_SVGA 0x00000100
#define PM2_AP_ROM 0x00000200
#define PM2_BYPASS_MASK 0x00001100
#define PM2_FB_WRITE_MASK 0x00001140
#define PM2_OUTPUT_FIFO 0x00002000
#define PM2_SCREEN_BASE 0x00003000 /* in 64bit units */
#define PM2_SCREEN_STRIDE 0x00003008 /* in 64bit units */
/* RAMDAC */
#define PM2_DAC_PAL_WRITE_IDX 0x00004000
#define PM2_DAC_DATA 0x00004008
#define PM2_DAC_MASK 0x00004010
#define PM2_DAC_PAL_READ 0x00004018
#define PM2_DAC_CURSOR_PAL 0x00004020
#define PM2_DAC_CURSOR_DATA 0x00004028
#define PM2_DAC_INDEX_DATA 0x00004050
#define PM2_DAC_CURSOR_RAM 0x00004058
#define PM2_DAC_CURSOR_X_LOW 0x00004060
#define PM2_DAC_CURSOR_X_HIGH 0x00004068
#define PM2_DAC_CURSOR_Y_LOW 0x00004070
#define PM2_DAC_CURSOR_Y_HIGH 0x00004078
/* drawing engine */
#define PM2_RE_STARTXDOM 0x00008000
#define PM2_RE_DXDOM 0x00008008
#define PM2_RE_STARTXSUB 0x00008010
#define PM2_RE_STARTY 0x00008020
#define PM2_RE_DY 0x00008028
#define PM2_RE_COUNT 0x00008030
#define PM2_RE_BITMASK 0x00008068 /* for colour expansion */
#define PM2_RE_COLOUR 0x000087f0
#define PM2_RE_CONFIG 0x00008d90
#define PM2RECFG_READ_SRC 0x00000001
#define PM2RECFG_READ_DST 0x00000002
#define PM2RECFG_PACKED 0x00000004
#define PM2RECFG_WRITE_EN 0x00000008
#define PM2RECFG_DDA_EN 0x00000010
#define PM2RECFG_ROP_EN 0x00000020
#define PM2RECFG_ROP_MASK 0x000003c0
#define PM2RECFG_ROP_SHIFT 6
#define PM2_RE_CONST_COLOUR 0x000087e8
#define PM2_RE_BUFFER_OFFSET 0x00008a90 /* distance between src and dst */
#define PM2_RE_SOURCE_BASE 0x00008d80 /* write after windowbase */
#define PM2_RE_SOURCE_DELTA 0x00008d88 /* offset in coordinates */
#define PM2_RE_SOURCE_OFFSET 0x00008a88 /* same in pixels */
#define PM2_RE_WINDOW_BASE 0x00008ab0
#define PM2_RE_WINDOW_ORIGIN 0x000081c8
#define PM2_RE_WRITE_MODE 0x00008ab8
#define PM2WM_WRITE_EN 0x00000001
#define PM2WM_TO_HOST 0x00000008
#define PM2_RE_MODE 0x000080a0
#define PM2RM_MASK_MIRROR 0x00000001 /* mask is right-to-left */
#define PM2RM_MASK_INVERT 0x00000002
#define PM2RM_MASK_OPAQUE 0x00000040 /* BG in TEXEL0 */
#define PM2RM_MASK_SWAP 0x00000180
#define PM2RM_MASK_PAD 0x00000200 /* new line new mask */
#define PM2RM_MASK_OFFSET 0x00007c00
#define PM2RM_HOST_SWAP 0x00018000
#define PM2RM_LIMITS_EN 0x00040000
#define PM2RM_MASK_REL_X 0x00080000
#define PM2_RE_RECT_START 0x000080d0
#define PM2_RE_RECT_SIZE 0x000080d8
#define PM2_RE_RENDER 0x00008038 /* write starts command */
#define PM2RE_STIPPLE 0x00000001
#define PM2RE_FASTFILL 0x00000008
#define PM2RE_LINE 0x00000000
#define PM2RE_TRAPEZOID 0x00000040
#define PM2RE_POINT 0x00000080
#define PM2RE_RECTANGLE 0x000000c0
#define PM2RE_SYNC_ON_MASK 0x00000800 /* wait for write to bitmask
register */
#define PM2RE_SYNC_ON_HOST 0x00001000 /* wait for host data */
#define PM2RE_TEXTURE_EN 0x00002000
#define PM2RE_INC_X 0x00200000 /* drawing direction */
#define PM2RE_INC_Y 0x00400000
#define PM2_RE_TEXEL0 0x00008600 /* background colour */
#define PM2_RE_STATUS 0x00000068
#define PM2ST_BUSY 0x80000000
#define PM2_RE_SYNC 0x00008c40
#define PM2_RE_FILTER_MODE 0x00008c00
#define PM2FLT_PASS_SYNC 0x00000400
#define PM2_RE_DDA_MODE 0x000087e0
#define PM2DDA_ENABLE 0x00000001
#define PM2DDA_GOURAUD 0x00000002 /* flat otherwise */
#define PM2_RE_BLOCK_COLOUR 0x00008ac8
#define PM2_RE_STIPPLE_MODE 0x000081a0
#define PM2ST_ENABLE 0x00000001
#define PM2ST_XOFFSET_MASK 0x00000380
#define PM2ST_YOFFSET_MASK 0x00007000
#define PM2ST_INVERT 0x00020000
#define PM2ST_MIRROR_X 0x00040000
#define PM2ST_MIRROR_Y 0x00080000
#define PM2ST_OPAQUE 0x00100000
#define PM2_HW_WRITEMASK 0x00008ac0
#define PM2_SW_WRITEMASK 0x00008820
#define PM2_FB_READMODE 0x00008a80
#define PM2FB_PP0_MASK 0x00000007
#define PM2FB_PP1_MASK 0x00000038
#define PM2FB_PP2_MASK 0x000001c0
#define PM2FB_READ_SRC 0x00000200
#define PM2FB_READ_DST 0x00000400
#define PM2FB_FBCOLOR 0x00008000 /* for uploads */
#define PM2FB_ORIGIN_BL 0x00010000 /* window origin, TL otherwise */
#define PM2FB_PATCH_EN 0x00020000
#define PM2FB_PACKED 0x00040000
#define PM2FB_OFFSET_M 0x00380000
#define PM2FB_PM_PATCH 0x00000000
#define PM2FB_PM_SUB 0x02000000
#define PM2FB_PM_SUBP 0x04000000
#define PM2_RE_SCISSOR_MODE 0x00008180
#define PM2SC_USER_EN 0x00000001 /* from scissor reg */
#define PM2SC_SCREEN_EN 0x00000002 /* screensize reg */
#define PM2_RE_SCREENSIZE 0x00008198
#define PM2_RE_SCISSOR_MINYX 0x00008188
#define PM2_RE_SCISSOR_MAXYX 0x00008190
#define PM2_RE_TEXMAP_FORMAT 0x00008588
#define PM2_RE_DITHER_MODE 0x00008818
#define PM2_RE_ALPHA_MODE 0x00008810
#define PM2_RE_TEX_COLOUR_MODE 0x00008680
#define PM2_RE_TEX_READ_MODE 0x00008670
#define PM2_RE_TEX_LUT_MODE 0x00008678
#define PM2_RE_TEX_ADDRESS_MODE 0x00008380
#define PM2_RE_YUV_MODE 0x00008f00
#define PM2_RE_DEPTH_MODE 0x000089a0
#define PM2_RE_DEPTH 0x000089a8
#define PM2_RE_STENCIL_MODE 0x00008988
#define PM2_RE_ROP_MODE 0x00008828
#endif /* PM2_REG_H */
|