aboutsummaryrefslogtreecommitdiff
path: root/drivers/mxc/amd-gpu/include/api/gsl_types.h
blob: 99d984966113ab0898403684b40a8fba4b431c91 (plain)
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
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
/* Copyright (c) 2008-2010, Code Aurora Forum. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * 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.
 *     * Neither the name of Code Aurora Forum nor
 *       the names of its contributors may be used to endorse or promote
 *       products derived from this software without specific prior written
 *       permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR CONTRIBUTORS 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.
 *
 */

#ifndef __GSL_TYPES_H
#define __GSL_TYPES_H

#include "stddef.h"


//////////////////////////////////////////////////////////////////////////////
// status
//////////////////////////////////////////////////////////////////////////////
#define GSL_SUCCESS                     OS_SUCCESS                  
#define GSL_FAILURE                     OS_FAILURE                  
#define GSL_FAILURE_SYSTEMERROR         OS_FAILURE_SYSTEMERROR      
#define GSL_FAILURE_DEVICEERROR         OS_FAILURE_DEVICEERROR  
#define GSL_FAILURE_OUTOFMEM            OS_FAILURE_OUTOFMEM         
#define GSL_FAILURE_BADPARAM            OS_FAILURE_BADPARAM         
#define GSL_FAILURE_OFFSETINVALID       OS_FAILURE_OFFSETINVALID
#define GSL_FAILURE_NOTSUPPORTED        OS_FAILURE_NOTSUPPORTED     
#define GSL_FAILURE_NOMOREAVAILABLE     OS_FAILURE_NOMOREAVAILABLE  
#define GSL_FAILURE_NOTINITIALIZED      OS_FAILURE_NOTINITIALIZED 
#define GSL_FAILURE_ALREADYINITIALIZED  OS_FAILURE_ALREADYINITIALIZED
#define GSL_FAILURE_TIMEOUT             OS_FAILURE_TIMEOUT


//////////////////////////////////////////////////////////////////////////////
// memory allocation flags
//////////////////////////////////////////////////////////////////////////////
#define GSL_MEMFLAGS_ANY                0x00000000      // dont care

#define GSL_MEMFLAGS_CHANNELANY         0x00000000
#define GSL_MEMFLAGS_CHANNEL1           0x00000000
#define GSL_MEMFLAGS_CHANNEL2           0x00000001
#define GSL_MEMFLAGS_CHANNEL3           0x00000002
#define GSL_MEMFLAGS_CHANNEL4           0x00000003
                                        
#define GSL_MEMFLAGS_BANKANY            0x00000000
#define GSL_MEMFLAGS_BANK1              0x00000010
#define GSL_MEMFLAGS_BANK2              0x00000020
#define GSL_MEMFLAGS_BANK3              0x00000040
#define GSL_MEMFLAGS_BANK4              0x00000080
                                        
#define GSL_MEMFLAGS_DIRANY             0x00000000
#define GSL_MEMFLAGS_DIRTOP             0x00000100
#define GSL_MEMFLAGS_DIRBOT             0x00000200
                                        
#define GSL_MEMFLAGS_APERTUREANY        0x00000000
#define GSL_MEMFLAGS_EMEM               0x00000000
#define GSL_MEMFLAGS_CONPHYS            0x00001000
                                        
#define GSL_MEMFLAGS_ALIGNANY           0x00000000      // minimum alignment is 32 bytes 
#define GSL_MEMFLAGS_ALIGN32            0x00000000
#define GSL_MEMFLAGS_ALIGN64            0x00060000
#define GSL_MEMFLAGS_ALIGN128           0x00070000
#define GSL_MEMFLAGS_ALIGN256           0x00080000
#define GSL_MEMFLAGS_ALIGN512           0x00090000
#define GSL_MEMFLAGS_ALIGN1K            0x000A0000
#define GSL_MEMFLAGS_ALIGN2K            0x000B0000
#define GSL_MEMFLAGS_ALIGN4K            0x000C0000
#define GSL_MEMFLAGS_ALIGN8K            0x000D0000
#define GSL_MEMFLAGS_ALIGN16K           0x000E0000
#define GSL_MEMFLAGS_ALIGN32K           0x000F0000
#define GSL_MEMFLAGS_ALIGN64K           0x00100000
#define GSL_MEMFLAGS_ALIGNPAGE          GSL_MEMFLAGS_ALIGN4K

#define GSL_MEMFLAGS_GPUREADWRITE       0x00000000
#define GSL_MEMFLAGS_GPUREADONLY        0x01000000
#define GSL_MEMFLAGS_GPUWRITEONLY       0x02000000
#define GSL_MEMFLAGS_GPUNOACCESS        0x04000000

#define GSL_MEMFLAGS_FORCEPAGESIZE      0x40000000
#define GSL_MEMFLAGS_STRICTREQUEST      0x80000000      // fail the alloc if the flags cannot be honored 
                    
#define GSL_MEMFLAGS_CHANNEL_MASK       0x0000000F
#define GSL_MEMFLAGS_BANK_MASK          0x000000F0
#define GSL_MEMFLAGS_DIR_MASK           0x00000F00
#define GSL_MEMFLAGS_APERTURE_MASK      0x0000F000
#define GSL_MEMFLAGS_ALIGN_MASK         0x00FF0000
#define GSL_MEMFLAGS_GPUAP_MASK         0x0F000000

#define GSL_MEMFLAGS_CHANNEL_SHIFT      0
#define GSL_MEMFLAGS_BANK_SHIFT         4
#define GSL_MEMFLAGS_DIR_SHIFT          8
#define GSL_MEMFLAGS_APERTURE_SHIFT     12
#define GSL_MEMFLAGS_ALIGN_SHIFT        16
#define GSL_MEMFLAGS_GPUAP_SHIFT        24


//////////////////////////////////////////////////////////////////////////////
// debug flags
//////////////////////////////////////////////////////////////////////////////
#define GSL_DBGFLAGS_ALL                0xFFFFFFFF
#define GSL_DBGFLAGS_DEVICE             0x00000001
#define GSL_DBGFLAGS_CTXT               0x00000002
#define GSL_DBGFLAGS_MEMMGR             0x00000004
#define GSL_DBGFLAGS_MMU                0x00000008
#define GSL_DBGFLAGS_POWER              0x00000010
#define GSL_DBGFLAGS_IRQ                0x00000020
#define GSL_DBGFLAGS_BIST               0x00000040
#define GSL_DBGFLAGS_PM4                0x00000080
#define GSL_DBGFLAGS_PM4MEM             0x00000100
#define GSL_DBGFLAGS_PM4CHECK           0x00000200
#define GSL_DBGFLAGS_DUMPX              0x00000400
#define GSL_DBGFLAGS_DUMPX_WITHOUT_IFH  0x00000800
#define GSL_DBGFLAGS_IFH                0x00001000
#define GSL_DBGFLAGS_NULL               0x00002000


//////////////////////////////////////////////////////////////////////////////
// generic flag values
//////////////////////////////////////////////////////////////////////////////
#define GSL_FLAGS_NORMALMODE            0x00000000
#define GSL_FLAGS_SAFEMODE              0x00000001
#define GSL_FLAGS_INITIALIZED0          0x00000002
#define GSL_FLAGS_INITIALIZED           0x00000004
#define GSL_FLAGS_STARTED               0x00000008
#define GSL_FLAGS_ACTIVE                0x00000010
#define GSL_FLAGS_RESERVED0             0x00000020
#define GSL_FLAGS_RESERVED1             0x00000040
#define GSL_FLAGS_RESERVED2             0x00000080


//////////////////////////////////////////////////////////////////////////////
// power flags
//////////////////////////////////////////////////////////////////////////////
#define GSL_PWRFLAGS_POWER_OFF          0x00000001
#define GSL_PWRFLAGS_POWER_ON           0x00000002
#define GSL_PWRFLAGS_CLK_ON             0x00000004
#define GSL_PWRFLAGS_CLK_OFF            0x00000008
#define GSL_PWRFLAGS_OVERRIDE_ON        0x00000010
#define GSL_PWRFLAGS_OVERRIDE_OFF       0x00000020

//////////////////////////////////////////////////////////////////////////////
// DMI flags
//////////////////////////////////////////////////////////////////////////////
#define GSL_DMIFLAGS_ENABLE_SINGLE      0x00000001  //  Single buffered DMI
#define GSL_DMIFLAGS_ENABLE_DOUBLE      0x00000002  //  Double buffered DMI
#define GSL_DMIFLAGS_ENABLE_TRIPLE      0x00000004  //  Triple buffered DMI
#define GSL_DMIFLAGS_DISABLE            0x00000008
#define GSL_DMIFLAGS_NEXT_BUFFER        0x00000010

//////////////////////////////////////////////////////////////////////////////
// cache flags
//////////////////////////////////////////////////////////////////////////////
#define GSL_CACHEFLAGS_CLEAN            0x00000001  /* flush cache          */
#define GSL_CACHEFLAGS_INVALIDATE       0x00000002  /* invalidate cache     */
#define GSL_CACHEFLAGS_WRITECLEAN       0x00000004  /* flush write cache    */


//////////////////////////////////////////////////////////////////////////////
//  context
//////////////////////////////////////////////////////////////////////////////
#define GSL_CONTEXT_MAX             20
#define GSL_CONTEXT_NONE            0
#define GSL_CONTEXT_SAVE_GMEM       1
#define GSL_CONTEXT_NO_GMEM_ALLOC   2


//////////////////////////////////////////////////////////////////////////////
// other
//////////////////////////////////////////////////////////////////////////////
#define GSL_TIMEOUT_NONE                        0
#define GSL_TIMEOUT_DEFAULT                     0xFFFFFFFF

#define GSL_PAGESIZE                            0x1000
#define GSL_PAGESIZE_SHIFT                      12

#define GSL_TIMESTAMP_EPSILON           20000

//////////////////////////////////////////////////////////////////////////////
// types
//////////////////////////////////////////////////////////////////////////////
typedef unsigned int        gsl_devhandle_t;
typedef unsigned int        gsl_ctxthandle_t;
typedef int                 gsl_timestamp_t;
typedef unsigned int        gsl_flags_t;
typedef unsigned int        gpuaddr_t;

// ---------
// device id
// ---------
typedef enum _gsl_deviceid_t
{
    GSL_DEVICE_ANY    = 0,
    GSL_DEVICE_YAMATO = 1,
    GSL_DEVICE_G12    = 2,
    GSL_DEVICE_MAX    = 2,

    GSL_DEVICE_FOOBAR = 0x7FFFFFFF
} gsl_deviceid_t;

// ----------------
// chip revision id
// ----------------
//
// coreid:8 majorrev:8 minorrev:8 patch:8
// 
// coreid = 0x00 = YAMATO_DX
// coreid = 0x80 = G12
//

#define COREID(x)   ((((unsigned int)x & 0xFF) << 24))
#define MAJORID(x)  ((((unsigned int)x & 0xFF) << 16))
#define MINORID(x)  ((((unsigned int)x & 0xFF) <<  8))
#define PATCHID(x)  ((((unsigned int)x & 0xFF) <<  0))

typedef enum _gsl_chipid_t
{
    GSL_CHIPID_YAMATODX_REV13   = (COREID(0x00) | MAJORID(0x01) | MINORID(0x03) | PATCHID(0x00)),
    GSL_CHIPID_YAMATODX_REV14   = (COREID(0x00) | MAJORID(0x01) | MINORID(0x04) | PATCHID(0x00)),
    GSL_CHIPID_YAMATODX_REV20   = (COREID(0x00) | MAJORID(0x02) | MINORID(0x00) | PATCHID(0x00)),
    GSL_CHIPID_YAMATODX_REV21   = (COREID(0x00) | MAJORID(0x02) | MINORID(0x01) | PATCHID(0x00)),
    GSL_CHIPID_YAMATODX_REV211  = (COREID(0x00) | MAJORID(0x02) | MINORID(0x01) | PATCHID(0x01)),
    GSL_CHIPID_YAMATODX_REV22   = (COREID(0x00) | MAJORID(0x02) | MINORID(0x02) | PATCHID(0x00)),
    GSL_CHIPID_YAMATODX_REV23   = (COREID(0x00) | MAJORID(0x02) | MINORID(0x03) | PATCHID(0x00)),
    GSL_CHIPID_YAMATODX_REV231  = (COREID(0x00) | MAJORID(0x02) | MINORID(0x03) | PATCHID(0x01)),
    GSL_CHIPID_YAMATODX_REV24   = (COREID(0x00) | MAJORID(0x02) | MINORID(0x04) | PATCHID(0x00)),
    GSL_CHIPID_YAMATODX_REV25   = (COREID(0x00) | MAJORID(0x02) | MINORID(0x05) | PATCHID(0x00)),
    GSL_CHIPID_YAMATODX_REV251  = (COREID(0x00) | MAJORID(0x02) | MINORID(0x05) | PATCHID(0x01)),
    GSL_CHIPID_G12_REV00        = (int)(COREID(0x80) | MAJORID(0x00) | MINORID(0x00) | PATCHID(0x00)),
    GSL_CHIPID_ERROR            = (int)0xFFFFFFFF

} gsl_chipid_t;

#undef COREID
#undef MAJORID
#undef MINORID
#undef PATCHID

// -----------
// device info
// -----------
typedef struct _gsl_devinfo_t {

    gsl_deviceid_t  device_id;          // ID of this device
    gsl_chipid_t    chip_id;
    int             mmu_enabled;        // mmu address translation enabled
    unsigned int    gmem_gpubaseaddr;
    void *          gmem_hostbaseaddr;  // if gmem_hostbaseaddr is NULL, we would know its not mapped into mmio space
    unsigned int    gmem_sizebytes;
    unsigned int    high_precision; /* mx50 z160 has higher gradient/texture precision */

} gsl_devinfo_t;

// -------------------
// device memory store
// -------------------
typedef struct _gsl_devmemstore_t {
    volatile unsigned int  soptimestamp;
    unsigned int           sbz;
    volatile unsigned int  eoptimestamp;
    unsigned int           sbz2;
} gsl_devmemstore_t;

#define GSL_DEVICE_MEMSTORE_OFFSET(field)       offsetof(gsl_devmemstore_t, field)

// -----------
// aperture id
// -----------
typedef enum _gsl_apertureid_t
{
    GSL_APERTURE_EMEM   = (GSL_MEMFLAGS_EMEM),
    GSL_APERTURE_PHYS   = (GSL_MEMFLAGS_CONPHYS >> GSL_MEMFLAGS_APERTURE_SHIFT),
    GSL_APERTURE_MMU    = (GSL_APERTURE_EMEM | 0x10000000),
    GSL_APERTURE_MAX    = 2,

    GSL_APERTURE_FOOBAR = 0x7FFFFFFF
} gsl_apertureid_t;

// ----------
// channel id
// ----------
typedef enum _gsl_channelid_t
{
    GSL_CHANNEL_1      = (GSL_MEMFLAGS_CHANNEL1 >> GSL_MEMFLAGS_CHANNEL_SHIFT),
    GSL_CHANNEL_2      = (GSL_MEMFLAGS_CHANNEL2 >> GSL_MEMFLAGS_CHANNEL_SHIFT),
    GSL_CHANNEL_3      = (GSL_MEMFLAGS_CHANNEL3 >> GSL_MEMFLAGS_CHANNEL_SHIFT),
    GSL_CHANNEL_4      = (GSL_MEMFLAGS_CHANNEL4 >> GSL_MEMFLAGS_CHANNEL_SHIFT),
    GSL_CHANNEL_MAX    = 4,

    GSL_CHANNEL_FOOBAR = 0x7FFFFFFF
} gsl_channelid_t;

// ----------------------
// page access permission
// ----------------------
typedef enum _gsl_ap_t
{
    GSL_AP_NULL   = 0x0,
    GSL_AP_R      = 0x1,
    GSL_AP_W      = 0x2,
    GSL_AP_RW     = 0x3,
    GSL_AP_X      = 0x4,
    GSL_AP_RWX    = 0x5,
    GSL_AP_MAX    = 0x6,

    GSL_AP_FOOBAR = 0x7FFFFFFF
} gsl_ap_t;

// -------------
// memory region
// -------------
typedef struct _gsl_memregion_t {
    unsigned char  *mmio_virt_base;
    unsigned int   mmio_phys_base;
    gpuaddr_t      gpu_base;
    unsigned int   sizebytes;
} gsl_memregion_t;

// ------------------------
// shared memory allocation
// ------------------------
typedef struct _gsl_memdesc_t {
    void          *hostptr;
    gpuaddr_t      gpuaddr;
    int            size;
    unsigned int   priv;                // private
    unsigned int   priv2;               // private

} gsl_memdesc_t;

// ---------------------------------
// physical page scatter/gatter list
// ---------------------------------
typedef struct _gsl_scatterlist_t {
    int           contiguous;       // flag whether pages on the list are physically contiguous
    unsigned int  num;
    unsigned int  *pages;
} gsl_scatterlist_t;

// --------------
// mem free queue
// --------------
//
// this could be compressed down into the just the memdesc for the node
//
typedef struct _gsl_memnode_t {
    gsl_timestamp_t       timestamp;
    gsl_memdesc_t         memdesc;
    unsigned int          pid;
    struct _gsl_memnode_t *next;
} gsl_memnode_t;

typedef struct _gsl_memqueue_t {
    gsl_memnode_t   *head;
    gsl_memnode_t   *tail;
} gsl_memqueue_t;

// ------------
// timestamp id
// ------------
typedef enum _gsl_timestamp_type_t
{
    GSL_TIMESTAMP_CONSUMED = 1, // start-of-pipeline timestamp
    GSL_TIMESTAMP_RETIRED  = 2, // end-of-pipeline timestamp
    GSL_TIMESTAMP_MAX      = 2,

    GSL_TIMESTAMP_FOOBAR   = 0x7FFFFFFF
} gsl_timestamp_type_t;

// ------------
// context type
// ------------
typedef enum _gsl_context_type_t
{
    GSL_CONTEXT_TYPE_GENERIC = 1,
    GSL_CONTEXT_TYPE_OPENGL  = 2,
    GSL_CONTEXT_TYPE_OPENVG  = 3,

    GSL_CONTEXT_TYPE_FOOBAR  = 0x7FFFFFFF
} gsl_context_type_t;

// ---------
// rectangle
// ---------
typedef struct _gsl_rect_t {
    unsigned int x;
    unsigned int y;
    unsigned int width;
    unsigned int height;
	unsigned int pitch;
} gsl_rect_t;

// -----------------------
// pixel buffer descriptor
// -----------------------
typedef struct _gsl_buffer_desc_t {
    gsl_memdesc_t data;
	unsigned int width;
	unsigned int height;
	unsigned int pitch;
	unsigned int format;
    unsigned int enabled;
} gsl_buffer_desc_t;

// ---------------------
// command window target
// ---------------------
typedef enum _gsl_cmdwindow_t
{
    GSL_CMDWINDOW_MIN     = 0x00000000,
    GSL_CMDWINDOW_2D      = 0x00000000,
    GSL_CMDWINDOW_3D      = 0x00000001,     // legacy
    GSL_CMDWINDOW_MMU     = 0x00000002,
    GSL_CMDWINDOW_ARBITER = 0x000000FF,
    GSL_CMDWINDOW_MAX     = 0x000000FF,

    GSL_CMDWINDOW_FOOBAR  = 0x7FFFFFFF
} gsl_cmdwindow_t;

// ------------
// interrupt id
// ------------
typedef enum _gsl_intrid_t
{
  GSL_INTR_YDX_MH_AXI_READ_ERROR = 0,
  GSL_INTR_YDX_MH_AXI_WRITE_ERROR,
  GSL_INTR_YDX_MH_MMU_PAGE_FAULT,

  GSL_INTR_YDX_CP_SW_INT,
  GSL_INTR_YDX_CP_T0_PACKET_IN_IB,
  GSL_INTR_YDX_CP_OPCODE_ERROR,
  GSL_INTR_YDX_CP_PROTECTED_MODE_ERROR,
  GSL_INTR_YDX_CP_RESERVED_BIT_ERROR,
  GSL_INTR_YDX_CP_IB_ERROR,
  GSL_INTR_YDX_CP_IB2_INT,
  GSL_INTR_YDX_CP_IB1_INT,
  GSL_INTR_YDX_CP_RING_BUFFER,

  GSL_INTR_YDX_RBBM_READ_ERROR,
  GSL_INTR_YDX_RBBM_DISPLAY_UPDATE,
  GSL_INTR_YDX_RBBM_GUI_IDLE,

  GSL_INTR_YDX_SQ_PS_WATCHDOG,
  GSL_INTR_YDX_SQ_VS_WATCHDOG,

  GSL_INTR_G12_MH,
  GSL_INTR_G12_G2D,
  GSL_INTR_G12_FIFO,
#ifndef _Z180
  GSL_INTR_G12_FBC,
#endif // _Z180

  GSL_INTR_G12_MH_AXI_READ_ERROR,
  GSL_INTR_G12_MH_AXI_WRITE_ERROR,
  GSL_INTR_G12_MH_MMU_PAGE_FAULT,

  GSL_INTR_COUNT,

  GSL_INTR_FOOBAR = 0x7FFFFFFF
} gsl_intrid_t;

#endif  // __GSL_TYPES_H