~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to drivers/gpu/pvr/sgxfeaturedefs.h

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**********************************************************************
 
2
 *
 
3
 * Copyright (C) Imagination Technologies Ltd. All rights reserved.
 
4
 * 
 
5
 * This program is free software; you can redistribute it and/or modify it
 
6
 * under the terms and conditions of the GNU General Public License,
 
7
 * version 2, as published by the Free Software Foundation.
 
8
 * 
 
9
 * This program is distributed in the hope it will be useful but, except 
 
10
 * as otherwise stated in writing, without any warranty; without even the 
 
11
 * implied warranty of merchantability or fitness for a particular purpose. 
 
12
 * See the GNU General Public License for more details.
 
13
 * 
 
14
 * You should have received a copy of the GNU General Public License along with
 
15
 * this program; if not, write to the Free Software Foundation, Inc.,
 
16
 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
 
17
 * 
 
18
 * The full GNU General Public License is included in this distribution in
 
19
 * the file called "COPYING".
 
20
 *
 
21
 * Contact Information:
 
22
 * Imagination Technologies Ltd. <gpl-support@imgtec.com>
 
23
 * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
 
24
 *
 
25
 ******************************************************************************/
 
26
 
 
27
#if defined(SGX520)
 
28
        #define SGX_CORE_FRIENDLY_NAME                                                  "SGX520"
 
29
        #define SGX_CORE_ID                                                                             SGX_CORE_ID_520
 
30
        #define SGX_FEATURE_ADDRESS_SPACE_SIZE                                  (28)
 
31
        #define SGX_FEATURE_AUTOCLOCKGATING
 
32
#else
 
33
#if defined(SGX530)
 
34
        #define SGX_CORE_FRIENDLY_NAME                                                  "SGX530"
 
35
        #define SGX_CORE_ID                                                                             SGX_CORE_ID_530
 
36
        #define SGX_FEATURE_ADDRESS_SPACE_SIZE                                  (28)
 
37
        #define SGX_FEATURE_AUTOCLOCKGATING
 
38
#else
 
39
#if defined(SGX531)
 
40
        #define SGX_CORE_FRIENDLY_NAME                                                  "SGX531"
 
41
        #define SGX_CORE_ID                                                                             SGX_CORE_ID_531
 
42
        #define SGX_FEATURE_ADDRESS_SPACE_SIZE                                  (28)
 
43
        #define SGX_FEATURE_AUTOCLOCKGATING
 
44
        #define SGX_FEATURE_MULTI_EVENT_KICK
 
45
#else
 
46
#if defined(SGX535)
 
47
        #define SGX_CORE_FRIENDLY_NAME                                                  "SGX535"
 
48
        #define SGX_CORE_ID                                                                             SGX_CORE_ID_535
 
49
        #define SGX_FEATURE_ADDRESS_SPACE_SIZE                                  (32)
 
50
        #define SGX_FEATURE_MULTIPLE_MEM_CONTEXTS
 
51
        #define SGX_FEATURE_BIF_NUM_DIRLISTS                                    (16)
 
52
        #define SGX_FEATURE_2D_HARDWARE
 
53
        #define SGX_FEATURE_AUTOCLOCKGATING
 
54
        #define SUPPORT_SGX_GENERAL_MAPPING_HEAP
 
55
        #define SGX_FEATURE_EDM_VERTEX_PDSADDR_FULL_RANGE
 
56
#else
 
57
#if defined(SGX540)
 
58
        #define SGX_CORE_FRIENDLY_NAME                                                  "SGX540"
 
59
        #define SGX_CORE_ID                                                                             SGX_CORE_ID_540
 
60
        #define SGX_FEATURE_ADDRESS_SPACE_SIZE                                  (28)
 
61
        #define SGX_FEATURE_AUTOCLOCKGATING
 
62
        #define SGX_FEATURE_MULTI_EVENT_KICK
 
63
#else
 
64
#if defined(SGX543)
 
65
        #define SGX_CORE_FRIENDLY_NAME                                                  "SGX543"
 
66
        #define SGX_CORE_ID                                                                             SGX_CORE_ID_543
 
67
        #define SGX_FEATURE_USE_NO_INSTRUCTION_PAIRING
 
68
        #define SGX_FEATURE_USE_UNLIMITED_PHASES
 
69
        #define SGX_FEATURE_ADDRESS_SPACE_SIZE                                  (32)
 
70
        #define SGX_FEATURE_MULTIPLE_MEM_CONTEXTS
 
71
        #define SGX_FEATURE_BIF_NUM_DIRLISTS                                    (8)
 
72
        #define SGX_FEATURE_AUTOCLOCKGATING
 
73
        #define SGX_FEATURE_MONOLITHIC_UKERNEL
 
74
    #define SGX_FEATURE_SPM_MODE_0
 
75
        #define SGX_FEATURE_MULTI_EVENT_KICK
 
76
        #define SGX_FEATURE_DATA_BREAKPOINTS
 
77
    #define SGX_FEATURE_PERPIPE_BKPT_REGS
 
78
    #define SGX_FEATURE_PERPIPE_BKPT_REGS_NUMPIPES          (2)
 
79
        #define SGX_FEATURE_2D_HARDWARE
 
80
        #define SGX_FEATURE_PTLA
 
81
        #define SGX_FEATURE_EXTENDED_PERF_COUNTERS
 
82
        #define SGX_FEATURE_EDM_VERTEX_PDSADDR_FULL_RANGE
 
83
        #if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING)
 
84
                #if defined(SGX_FEATURE_MP)
 
85
                #define SGX_FEATURE_MASTER_VDM_CONTEXT_SWITCH
 
86
                #endif
 
87
                #define SGX_FEATURE_SLAVE_VDM_CONTEXT_SWITCH
 
88
                #define SGX_FEATURE_ISP_CONTEXT_SWITCH_REV_3
 
89
        #endif
 
90
#else
 
91
#if defined(SGX544)
 
92
        #define SGX_CORE_FRIENDLY_NAME                                                  "SGX544"
 
93
        #define SGX_CORE_ID                                                                             SGX_CORE_ID_544
 
94
        #define SGX_FEATURE_USE_NO_INSTRUCTION_PAIRING
 
95
        #define SGX_FEATURE_USE_UNLIMITED_PHASES
 
96
        #define SGX_FEATURE_ADDRESS_SPACE_SIZE                                  (32)
 
97
        #define SGX_FEATURE_MULTIPLE_MEM_CONTEXTS
 
98
        #define SGX_FEATURE_BIF_NUM_DIRLISTS                                    (8)
 
99
        #define SGX_FEATURE_AUTOCLOCKGATING
 
100
        #define SGX_FEATURE_MONOLITHIC_UKERNEL
 
101
    #define SGX_FEATURE_SPM_MODE_0
 
102
        #define SGX_FEATURE_MULTI_EVENT_KICK
 
103
        #define SGX_FEATURE_EXTENDED_PERF_COUNTERS
 
104
        #define SGX_FEATURE_EDM_VERTEX_PDSADDR_FULL_RANGE
 
105
        #if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING)
 
106
                #if defined(SGX_FEATURE_MP)
 
107
                #define SGX_FEATURE_MASTER_VDM_CONTEXT_SWITCH
 
108
                #endif
 
109
                #define SGX_FEATURE_SLAVE_VDM_CONTEXT_SWITCH
 
110
                #define SGX_FEATURE_ISP_CONTEXT_SWITCH_REV_3
 
111
        #endif
 
112
#else
 
113
#if defined(SGX545)
 
114
        #define SGX_CORE_FRIENDLY_NAME                                                  "SGX545"
 
115
        #define SGX_CORE_ID                                                                             SGX_CORE_ID_545
 
116
        #define SGX_FEATURE_ADDRESS_SPACE_SIZE                                  (32)
 
117
        #define SGX_FEATURE_AUTOCLOCKGATING
 
118
        #define SGX_FEATURE_USE_NO_INSTRUCTION_PAIRING
 
119
        #define SGX_FEATURE_USE_UNLIMITED_PHASES
 
120
        #define SGX_FEATURE_VOLUME_TEXTURES
 
121
        #define SGX_FEATURE_HOST_ALLOC_FROM_DPM
 
122
        #define SGX_FEATURE_MULTIPLE_MEM_CONTEXTS
 
123
        #define SGX_FEATURE_BIF_NUM_DIRLISTS                            (16)
 
124
        #define SGX_FEATURE_NUM_USE_PIPES                                       (4)
 
125
        #define SGX_FEATURE_TEXTURESTRIDE_EXTENSION
 
126
        #define SGX_FEATURE_PDS_DATA_INTERLEAVE_2DWORDS
 
127
        #define SGX_FEATURE_MONOLITHIC_UKERNEL
 
128
        #define SGX_FEATURE_ZLS_EXTERNALZ
 
129
        #define SGX_FEATURE_VDM_CONTEXT_SWITCH_REV_2
 
130
        #define SGX_FEATURE_ISP_CONTEXT_SWITCH_REV_2
 
131
        #define SGX_FEATURE_NUM_PDS_PIPES                                       (2)
 
132
        #define SGX_FEATURE_NATIVE_BACKWARD_BLIT
 
133
        #define SGX_FEATURE_MAX_TA_RENDER_TARGETS                               (512)
 
134
        #define SGX_FEATURE_SPM_MODE_0
 
135
        #define SGX_FEATURE_SECONDARY_REQUIRES_USE_KICK
 
136
        #define SGX_FEATURE_WRITEBACK_DCU
 
137
        
 
138
        
 
139
        #define SGX_FEATURE_BIF_WIDE_TILING_AND_4K_ADDRESS
 
140
        #define SGX_FEATURE_MULTI_EVENT_KICK
 
141
        #define SGX_FEATURE_EDM_VERTEX_PDSADDR_FULL_RANGE
 
142
        #if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING)
 
143
                #if defined(USE_SGX_CORE_REV_HEAD)
 
144
                        #define SGX_FEATURE_FAST_RENDER_CONTEXT_SWITCH
 
145
                #endif
 
146
                #define SGX_FEATURE_SLAVE_VDM_CONTEXT_SWITCH
 
147
                #define SGX_FEATURE_ISP_CONTEXT_SWITCH_REV_2
 
148
        #endif
 
149
#else
 
150
#if defined(SGX554)
 
151
        #define SGX_CORE_FRIENDLY_NAME                                                  "SGX554"
 
152
        #define SGX_CORE_ID                                                                             SGX_CORE_ID_554
 
153
        #define SGX_FEATURE_USE_NO_INSTRUCTION_PAIRING
 
154
        #define SGX_FEATURE_USE_UNLIMITED_PHASES
 
155
        #define SGX_FEATURE_ADDRESS_SPACE_SIZE                                  (32)
 
156
        #define SGX_FEATURE_MULTIPLE_MEM_CONTEXTS
 
157
        #define SGX_FEATURE_BIF_NUM_DIRLISTS                                    (8)
 
158
        #define SGX_FEATURE_AUTOCLOCKGATING
 
159
        #define SGX_FEATURE_MONOLITHIC_UKERNEL
 
160
    #define SGX_FEATURE_SPM_MODE_0
 
161
        #define SGX_FEATURE_MULTI_EVENT_KICK
 
162
        #define SGX_FEATURE_2D_HARDWARE
 
163
        #define SGX_FEATURE_PTLA
 
164
        #define SGX_FEATURE_EXTENDED_PERF_COUNTERS
 
165
        #define SGX_FEATURE_EDM_VERTEX_PDSADDR_FULL_RANGE
 
166
        #if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING)
 
167
                #if defined(SGX_FEATURE_MP)
 
168
                #define SGX_FEATURE_MASTER_VDM_CONTEXT_SWITCH
 
169
                #endif
 
170
                #define SGX_FEATURE_SLAVE_VDM_CONTEXT_SWITCH
 
171
                #define SGX_FEATURE_ISP_CONTEXT_SWITCH_REV_3
 
172
        #endif
 
173
#endif
 
174
#endif
 
175
#endif
 
176
#endif
 
177
#endif
 
178
#endif
 
179
#endif
 
180
#endif
 
181
#endif
 
182
 
 
183
#if defined(SGX_FEATURE_SLAVE_VDM_CONTEXT_SWITCH) \
 
184
        || defined(SGX_FEATURE_MASTER_VDM_CONTEXT_SWITCH)
 
185
#define SGX_FEATURE_VDM_CONTEXT_SWITCH
 
186
#endif
 
187
 
 
188
#if defined(SGX_FEATURE_ISP_CONTEXT_SWITCH_REV_2) \
 
189
        || defined(SGX_FEATURE_ISP_CONTEXT_SWITCH_REV_3)
 
190
#define SGX_FEATURE_ISP_CONTEXT_SWITCH
 
191
#endif
 
192
 
 
193
#if defined(FIX_HW_BRN_22693)
 
194
#undef SGX_FEATURE_AUTOCLOCKGATING
 
195
#endif
 
196
 
 
197
#if defined(FIX_HW_BRN_27266)
 
198
#undef SGX_FEATURE_36BIT_MMU
 
199
#endif
 
200
 
 
201
#if defined(FIX_HW_BRN_27456)
 
202
#undef SGX_FEATURE_BIF_WIDE_TILING_AND_4K_ADDRESS
 
203
#endif
 
204
 
 
205
#if defined(FIX_HW_BRN_22934)   \
 
206
        || defined(FIX_HW_BRN_25499)
 
207
#undef SGX_FEATURE_MULTI_EVENT_KICK
 
208
#endif
 
209
 
 
210
#if defined(SGX_FEATURE_SYSTEM_CACHE)
 
211
        #if defined(SGX_FEATURE_36BIT_MMU)
 
212
                #error SGX_FEATURE_SYSTEM_CACHE is incompatible with SGX_FEATURE_36BIT_MMU
 
213
        #endif
 
214
        #if defined(FIX_HW_BRN_26620) && !defined(SGX_FEATURE_MULTI_EVENT_KICK)
 
215
                #define SGX_BYPASS_SYSTEM_CACHE
 
216
        #endif
 
217
#endif
 
218
 
 
219
#if defined(FIX_HW_BRN_29954)
 
220
#undef SGX_FEATURE_PERPIPE_BKPT_REGS
 
221
#endif
 
222
 
 
223
#if defined(FIX_HW_BRN_31620)
 
224
#undef SGX_FEATURE_MULTIPLE_MEM_CONTEXTS
 
225
#undef SGX_FEATURE_BIF_NUM_DIRLISTS
 
226
#endif
 
227
 
 
228
#if defined(SGX_FEATURE_MP)
 
229
#if defined(SGX_FEATURE_MP_CORE_COUNT_TA) && defined(SGX_FEATURE_MP_CORE_COUNT_3D)
 
230
#if (SGX_FEATURE_MP_CORE_COUNT_TA > SGX_FEATURE_MP_CORE_COUNT_3D)
 
231
#error Number of TA cores larger than number of 3D cores not supported in current driver
 
232
#endif 
 
233
#else
 
234
#if defined(SGX_FEATURE_MP_CORE_COUNT)
 
235
#define SGX_FEATURE_MP_CORE_COUNT_TA            (SGX_FEATURE_MP_CORE_COUNT)
 
236
#define SGX_FEATURE_MP_CORE_COUNT_3D            (SGX_FEATURE_MP_CORE_COUNT)
 
237
#else
 
238
#error Either SGX_FEATURE_MP_CORE_COUNT or \
 
239
both SGX_FEATURE_MP_CORE_COUNT_TA and SGX_FEATURE_MP_CORE_COUNT_3D \
 
240
must be defined when SGX_FEATURE_MP is defined
 
241
#endif 
 
242
#endif 
 
243
#else
 
244
#define SGX_FEATURE_MP_CORE_COUNT               (1)
 
245
#define SGX_FEATURE_MP_CORE_COUNT_TA    (1)
 
246
#define SGX_FEATURE_MP_CORE_COUNT_3D    (1)
 
247
#endif 
 
248
 
 
249
#if defined(SUPPORT_SGX_LOW_LATENCY_SCHEDULING) && !defined(SUPPORT_SGX_PRIORITY_SCHEDULING)
 
250
#define SUPPORT_SGX_PRIORITY_SCHEDULING
 
251
#endif
 
252
 
 
253
#include "img_types.h"
 
254