OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [char/] [drm-4.0/] [ffb_drv.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/* $Id: ffb_drv.h,v 1.1.1.1 2004-04-15 02:03:08 phoenix Exp $
2
 * ffb_drv.h: Creator/Creator3D direct rendering driver.
3
 *
4
 * Copyright (C) 2000 David S. Miller (davem@redhat.com)
5
 */
6
 
7
/* Auxilliary clips. */
8
typedef struct  {
9
        volatile unsigned int min;
10
        volatile unsigned int max;
11
} ffb_auxclip, *ffb_auxclipPtr;
12
 
13
/* FFB register set. */
14
typedef struct _ffb_fbc {
15
        /* Next vertex registers, on the right we list which drawops
16
         * use said register and the logical name the register has in
17
         * that context.
18
         */                                     /* DESCRIPTION          DRAWOP(NAME)    */
19
/*0x00*/unsigned int            pad1[3];        /* Reserved                             */
20
/*0x0c*/volatile unsigned int   alpha;          /* ALPHA Transparency                   */
21
/*0x10*/volatile unsigned int   red;            /* RED                                  */
22
/*0x14*/volatile unsigned int   green;          /* GREEN                                */
23
/*0x18*/volatile unsigned int   blue;           /* BLUE                                 */
24
/*0x1c*/volatile unsigned int   z;              /* DEPTH                                */
25
/*0x20*/volatile unsigned int   y;              /* Y                    triangle(DOYF)  */
26
                                                /*                      aadot(DYF)      */
27
                                                /*                      ddline(DYF)     */
28
                                                /*                      aaline(DYF)     */
29
/*0x24*/volatile unsigned int   x;              /* X                    triangle(DOXF)  */
30
                                                /*                      aadot(DXF)      */
31
                                                /*                      ddline(DXF)     */
32
                                                /*                      aaline(DXF)     */
33
/*0x28*/unsigned int            pad2[2];        /* Reserved                             */
34
/*0x30*/volatile unsigned int   ryf;            /* Y (alias to DOYF)    ddline(RYF)     */
35
                                                /*                      aaline(RYF)     */
36
                                                /*                      triangle(RYF)   */
37
/*0x34*/volatile unsigned int   rxf;            /* X                    ddline(RXF)     */
38
                                                /*                      aaline(RXF)     */
39
                                                /*                      triangle(RXF)   */
40
/*0x38*/unsigned int            pad3[2];        /* Reserved                             */
41
/*0x40*/volatile unsigned int   dmyf;           /* Y (alias to DOYF)    triangle(DMYF)  */
42
/*0x44*/volatile unsigned int   dmxf;           /* X                    triangle(DMXF)  */
43
/*0x48*/unsigned int            pad4[2];        /* Reserved                             */
44
/*0x50*/volatile unsigned int   ebyi;           /* Y (alias to RYI)     polygon(EBYI)   */
45
/*0x54*/volatile unsigned int   ebxi;           /* X                    polygon(EBXI)   */
46
/*0x58*/unsigned int            pad5[2];        /* Reserved                             */
47
/*0x60*/volatile unsigned int   by;             /* Y                    brline(RYI)     */
48
                                                /*                      fastfill(OP)    */
49
                                                /*                      polygon(YI)     */
50
                                                /*                      rectangle(YI)   */
51
                                                /*                      bcopy(SRCY)     */
52
                                                /*                      vscroll(SRCY)   */
53
/*0x64*/volatile unsigned int   bx;             /* X                    brline(RXI)     */
54
                                                /*                      polygon(XI)     */
55
                                                /*                      rectangle(XI)   */
56
                                                /*                      bcopy(SRCX)     */
57
                                                /*                      vscroll(SRCX)   */
58
                                                /*                      fastfill(GO)    */
59
/*0x68*/volatile unsigned int   dy;             /* destination Y        fastfill(DSTY)  */
60
                                                /*                      bcopy(DSRY)     */
61
                                                /*                      vscroll(DSRY)   */
62
/*0x6c*/volatile unsigned int   dx;             /* destination X        fastfill(DSTX)  */
63
                                                /*                      bcopy(DSTX)     */
64
                                                /*                      vscroll(DSTX)   */
65
/*0x70*/volatile unsigned int   bh;             /* Y (alias to RYI)     brline(DYI)     */
66
                                                /*                      dot(DYI)        */
67
                                                /*                      polygon(ETYI)   */
68
                                                /* Height               fastfill(H)     */
69
                                                /*                      bcopy(H)        */
70
                                                /*                      vscroll(H)      */
71
                                                /* Y count              fastfill(NY)    */
72
/*0x74*/volatile unsigned int   bw;             /* X                    dot(DXI)        */
73
                                                /*                      brline(DXI)     */
74
                                                /*                      polygon(ETXI)   */
75
                                                /*                      fastfill(W)     */
76
                                                /*                      bcopy(W)        */
77
                                                /*                      vscroll(W)      */
78
                                                /*                      fastfill(NX)    */
79
/*0x78*/unsigned int            pad6[2];        /* Reserved                             */
80
/*0x80*/unsigned int            pad7[32];       /* Reserved                             */
81
 
82
        /* Setup Unit's vertex state register */
83
/*100*/ volatile unsigned int   suvtx;
84
/*104*/ unsigned int            pad8[63];       /* Reserved                             */
85
 
86
        /* Frame Buffer Control Registers */
87
/*200*/ volatile unsigned int   ppc;            /* Pixel Processor Control              */
88
/*204*/ volatile unsigned int   wid;            /* Current WID                          */
89
/*208*/ volatile unsigned int   fg;             /* FG data                              */
90
/*20c*/ volatile unsigned int   bg;             /* BG data                              */
91
/*210*/ volatile unsigned int   consty;         /* Constant Y                           */
92
/*214*/ volatile unsigned int   constz;         /* Constant Z                           */
93
/*218*/ volatile unsigned int   xclip;          /* X Clip                               */
94
/*21c*/ volatile unsigned int   dcss;           /* Depth Cue Scale Slope                */
95
/*220*/ volatile unsigned int   vclipmin;       /* Viewclip XY Min Bounds               */
96
/*224*/ volatile unsigned int   vclipmax;       /* Viewclip XY Max Bounds               */
97
/*228*/ volatile unsigned int   vclipzmin;      /* Viewclip Z Min Bounds                */
98
/*22c*/ volatile unsigned int   vclipzmax;      /* Viewclip Z Max Bounds                */
99
/*230*/ volatile unsigned int   dcsf;           /* Depth Cue Scale Front Bound          */
100
/*234*/ volatile unsigned int   dcsb;           /* Depth Cue Scale Back Bound           */
101
/*238*/ volatile unsigned int   dczf;           /* Depth Cue Z Front                    */
102
/*23c*/ volatile unsigned int   dczb;           /* Depth Cue Z Back                     */
103
/*240*/ unsigned int            pad9;           /* Reserved                             */
104
/*244*/ volatile unsigned int   blendc;         /* Alpha Blend Control                  */
105
/*248*/ volatile unsigned int   blendc1;        /* Alpha Blend Color 1                  */
106
/*24c*/ volatile unsigned int   blendc2;        /* Alpha Blend Color 2                  */
107
/*250*/ volatile unsigned int   fbramitc;       /* FB RAM Interleave Test Control       */
108
/*254*/ volatile unsigned int   fbc;            /* Frame Buffer Control                 */
109
/*258*/ volatile unsigned int   rop;            /* Raster OPeration                     */
110
/*25c*/ volatile unsigned int   cmp;            /* Frame Buffer Compare                 */
111
/*260*/ volatile unsigned int   matchab;        /* Buffer AB Match Mask                 */
112
/*264*/ volatile unsigned int   matchc;         /* Buffer C(YZ) Match Mask              */
113
/*268*/ volatile unsigned int   magnab;         /* Buffer AB Magnitude Mask             */
114
/*26c*/ volatile unsigned int   magnc;          /* Buffer C(YZ) Magnitude Mask          */
115
/*270*/ volatile unsigned int   fbcfg0;         /* Frame Buffer Config 0                */
116
/*274*/ volatile unsigned int   fbcfg1;         /* Frame Buffer Config 1                */
117
/*278*/ volatile unsigned int   fbcfg2;         /* Frame Buffer Config 2                */
118
/*27c*/ volatile unsigned int   fbcfg3;         /* Frame Buffer Config 3                */
119
/*280*/ volatile unsigned int   ppcfg;          /* Pixel Processor Config               */
120
/*284*/ volatile unsigned int   pick;           /* Picking Control                      */
121
/*288*/ volatile unsigned int   fillmode;       /* FillMode                             */
122
/*28c*/ volatile unsigned int   fbramwac;       /* FB RAM Write Address Control         */
123
/*290*/ volatile unsigned int   pmask;          /* RGB PlaneMask                        */
124
/*294*/ volatile unsigned int   xpmask;         /* X PlaneMask                          */
125
/*298*/ volatile unsigned int   ypmask;         /* Y PlaneMask                          */
126
/*29c*/ volatile unsigned int   zpmask;         /* Z PlaneMask                          */
127
/*2a0*/ ffb_auxclip             auxclip[4];     /* Auxilliary Viewport Clip             */
128
 
129
        /* New 3dRAM III support regs */
130
/*2c0*/ volatile unsigned int   rawblend2;
131
/*2c4*/ volatile unsigned int   rawpreblend;
132
/*2c8*/ volatile unsigned int   rawstencil;
133
/*2cc*/ volatile unsigned int   rawstencilctl;
134
/*2d0*/ volatile unsigned int   threedram1;
135
/*2d4*/ volatile unsigned int   threedram2;
136
/*2d8*/ volatile unsigned int   passin;
137
/*2dc*/ volatile unsigned int   rawclrdepth;
138
/*2e0*/ volatile unsigned int   rawpmask;
139
/*2e4*/ volatile unsigned int   rawcsrc;
140
/*2e8*/ volatile unsigned int   rawmatch;
141
/*2ec*/ volatile unsigned int   rawmagn;
142
/*2f0*/ volatile unsigned int   rawropblend;
143
/*2f4*/ volatile unsigned int   rawcmp;
144
/*2f8*/ volatile unsigned int   rawwac;
145
/*2fc*/ volatile unsigned int   fbramid;
146
 
147
/*300*/ volatile unsigned int   drawop;         /* Draw OPeration                       */
148
/*304*/ unsigned int            pad10[2];       /* Reserved                             */
149
/*30c*/ volatile unsigned int   lpat;           /* Line Pattern control                 */
150
/*310*/ unsigned int            pad11;          /* Reserved                             */
151
/*314*/ volatile unsigned int   fontxy;         /* XY Font coordinate                   */
152
/*318*/ volatile unsigned int   fontw;          /* Font Width                           */
153
/*31c*/ volatile unsigned int   fontinc;        /* Font Increment                       */
154
/*320*/ volatile unsigned int   font;           /* Font bits                            */
155
/*324*/ unsigned int            pad12[3];       /* Reserved                             */
156
/*330*/ volatile unsigned int   blend2;
157
/*334*/ volatile unsigned int   preblend;
158
/*338*/ volatile unsigned int   stencil;
159
/*33c*/ volatile unsigned int   stencilctl;
160
 
161
/*340*/ unsigned int            pad13[4];       /* Reserved                             */
162
/*350*/ volatile unsigned int   dcss1;          /* Depth Cue Scale Slope 1              */
163
/*354*/ volatile unsigned int   dcss2;          /* Depth Cue Scale Slope 2              */
164
/*358*/ volatile unsigned int   dcss3;          /* Depth Cue Scale Slope 3              */
165
/*35c*/ volatile unsigned int   widpmask;
166
/*360*/ volatile unsigned int   dcs2;
167
/*364*/ volatile unsigned int   dcs3;
168
/*368*/ volatile unsigned int   dcs4;
169
/*36c*/ unsigned int            pad14;          /* Reserved                             */
170
/*370*/ volatile unsigned int   dcd2;
171
/*374*/ volatile unsigned int   dcd3;
172
/*378*/ volatile unsigned int   dcd4;
173
/*37c*/ unsigned int            pad15;          /* Reserved                             */
174
/*380*/ volatile unsigned int   pattern[32];    /* area Pattern                         */
175
/*400*/ unsigned int            pad16[8];       /* Reserved                             */
176
/*420*/ volatile unsigned int   reset;          /* chip RESET                           */
177
/*424*/ unsigned int            pad17[247];     /* Reserved                             */
178
/*800*/ volatile unsigned int   devid;          /* Device ID                            */
179
/*804*/ unsigned int            pad18[63];      /* Reserved                             */
180
/*900*/ volatile unsigned int   ucsr;           /* User Control & Status Register       */
181
/*904*/ unsigned int            pad19[31];      /* Reserved                             */
182
/*980*/ volatile unsigned int   mer;            /* Mode Enable Register                 */
183
/*984*/ unsigned int            pad20[1439];    /* Reserved                             */
184
} ffb_fbc, *ffb_fbcPtr;
185
 
186
struct ffb_hw_context {
187
        int is_2d_only;
188
 
189
        unsigned int ppc;
190
        unsigned int wid;
191
        unsigned int fg;
192
        unsigned int bg;
193
        unsigned int consty;
194
        unsigned int constz;
195
        unsigned int xclip;
196
        unsigned int dcss;
197
        unsigned int vclipmin;
198
        unsigned int vclipmax;
199
        unsigned int vclipzmin;
200
        unsigned int vclipzmax;
201
        unsigned int dcsf;
202
        unsigned int dcsb;
203
        unsigned int dczf;
204
        unsigned int dczb;
205
        unsigned int blendc;
206
        unsigned int blendc1;
207
        unsigned int blendc2;
208
        unsigned int fbc;
209
        unsigned int rop;
210
        unsigned int cmp;
211
        unsigned int matchab;
212
        unsigned int matchc;
213
        unsigned int magnab;
214
        unsigned int magnc;
215
        unsigned int pmask;
216
        unsigned int xpmask;
217
        unsigned int ypmask;
218
        unsigned int zpmask;
219
        unsigned int auxclip0min;
220
        unsigned int auxclip0max;
221
        unsigned int auxclip1min;
222
        unsigned int auxclip1max;
223
        unsigned int auxclip2min;
224
        unsigned int auxclip2max;
225
        unsigned int auxclip3min;
226
        unsigned int auxclip3max;
227
        unsigned int drawop;
228
        unsigned int lpat;
229
        unsigned int fontxy;
230
        unsigned int fontw;
231
        unsigned int fontinc;
232
        unsigned int area_pattern[32];
233
        unsigned int ucsr;
234
        unsigned int stencil;
235
        unsigned int stencilctl;
236
        unsigned int dcss1;
237
        unsigned int dcss2;
238
        unsigned int dcss3;
239
        unsigned int dcs2;
240
        unsigned int dcs3;
241
        unsigned int dcs4;
242
        unsigned int dcd2;
243
        unsigned int dcd3;
244
        unsigned int dcd4;
245
        unsigned int mer;
246
};
247
 
248
#define FFB_MAX_CTXS    32
249
 
250
enum ffb_chip_type {
251
        ffb1_prototype = 0,      /* Early pre-FCS FFB */
252
        ffb1_standard,          /* First FCS FFB, 100Mhz UPA, 66MHz gclk */
253
        ffb1_speedsort,         /* Second FCS FFB, 100Mhz UPA, 75MHz gclk */
254
        ffb2_prototype,         /* Early pre-FCS vertical FFB2 */
255
        ffb2_vertical,          /* First FCS FFB2/vertical, 100Mhz UPA, 100MHZ gclk,
256
                                   75(SingleBuffer)/83(DoubleBuffer) MHz fclk */
257
        ffb2_vertical_plus,     /* Second FCS FFB2/vertical, same timings */
258
        ffb2_horizontal,        /* First FCS FFB2/horizontal, same timings as FFB2/vert */
259
        ffb2_horizontal_plus,   /* Second FCS FFB2/horizontal, same timings */
260
        afb_m3,                 /* FCS Elite3D, 3 float chips */
261
        afb_m6                  /* FCS Elite3D, 6 float chips */
262
};
263
 
264
typedef struct ffb_dev_priv {
265
        /* Misc software state. */
266
        int                     prom_node;
267
        enum ffb_chip_type      ffb_type;
268
        u64                     card_phys_base;
269
        struct miscdevice       miscdev;
270
 
271
        /* Controller registers. */
272
        ffb_fbcPtr              regs;
273
 
274
        /* Context table. */
275
        struct ffb_hw_context   *hw_state[FFB_MAX_CTXS];
276
} ffb_dev_priv_t;

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.