summaryrefslogtreecommitdiff
path: root/sys/arch/octeon/dev/cn30xxpowreg.h
blob: 17a2dad0b890818faae3147425b9562b13f10577 (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
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
/*
 * THIS FILE IS AUTOMATICALLY GENERATED
 * DONT EDIT THIS FILE
 */

/*	$OpenBSD: cn30xxpowreg.h,v 1.4 2022/12/28 01:39:21 yasuoka Exp $	*/

/*
 * Copyright (c) 2007 Internet Initiative Japan, Inc.
 * 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 AUTHORS 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 AUTHORS 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.
 */

/*
 * Cavium Networks OCTEON CN30XX Hardware Reference Manual
 * CN30XX-HM-1.0
 * 5.12 POW Registers
 */

#ifndef _CN30XXPOWREG_H_
#define _CN30XXPOWREG_H_

/* ---- register addresses */

#define	POW_PP_GRP_MSK0				0x0001670000000000ULL
#define	POW_PP_GRP_MSK1				0x0001670000000008ULL
#define	POW_WQ_INT_THR0				0x0001670000000080ULL
#define	POW_WQ_INT_THR1				0x0001670000000088ULL
#define	POW_WQ_INT_THR2				0x0001670000000090ULL
#define	POW_WQ_INT_THR3				0x0001670000000098ULL
#define	POW_WQ_INT_THR4				0x00016700000000a0ULL
#define	POW_WQ_INT_THR5				0x00016700000000a8ULL
#define	POW_WQ_INT_THR6				0x00016700000000b0ULL
#define	POW_WQ_INT_THR7				0x00016700000000b8ULL
#define	POW_WQ_INT_THR8				0x00016700000000c0ULL
#define	POW_WQ_INT_THR9				0x00016700000000c8ULL
#define	POW_WQ_INT_THR10			0x00016700000000d0ULL
#define	POW_WQ_INT_THR11			0x00016700000000d8ULL
#define	POW_WQ_INT_THR12			0x00016700000000e0ULL
#define	POW_WQ_INT_THR13			0x00016700000000e8ULL
#define	POW_WQ_INT_THR14			0x00016700000000f0ULL
#define	POW_WQ_INT_THR15			0x00016700000000f8ULL
#define	POW_WQ_INT_CNT0				0x0001670000000100ULL
#define	POW_WQ_INT_CNT1				0x0001670000000108ULL
#define	POW_WQ_INT_CNT2				0x0001670000000110ULL
#define	POW_WQ_INT_CNT3				0x0001670000000118ULL
#define	POW_WQ_INT_CNT4				0x0001670000000120ULL
#define	POW_WQ_INT_CNT5				0x0001670000000128ULL
#define	POW_WQ_INT_CNT6				0x0001670000000130ULL
#define	POW_WQ_INT_CNT7				0x0001670000000138ULL
#define	POW_WQ_INT_CNT8				0x0001670000000140ULL
#define	POW_WQ_INT_CNT9				0x0001670000000148ULL
#define	POW_WQ_INT_CNT10			0x0001670000000150ULL
#define	POW_WQ_INT_CNT11			0x0001670000000158ULL
#define	POW_WQ_INT_CNT12			0x0001670000000160ULL
#define	POW_WQ_INT_CNT13			0x0001670000000168ULL
#define	POW_WQ_INT_CNT14			0x0001670000000170ULL
#define	POW_WQ_INT_CNT15			0x0001670000000178ULL
#define	POW_QOS_THR0				0x0001670000000180ULL
#define	POW_QOS_THR1				0x0001670000000188ULL
#define	POW_QOS_THR2				0x0001670000000190ULL
#define	POW_QOS_THR3				0x0001670000000198ULL
#define	POW_QOS_THR4				0x00016700000001a0ULL
#define	POW_QOS_THR5				0x00016700000001a8ULL
#define	POW_QOS_THR6				0x00016700000001b0ULL
#define	POW_QOS_THR7				0x00016700000001b8ULL
#define	POW_QOS_RND0				0x00016700000001c0ULL
#define	POW_QOS_RND1				0x00016700000001c8ULL
#define	POW_QOS_RND2				0x00016700000001d0ULL
#define	POW_QOS_RND3				0x00016700000001d8ULL
#define	POW_QOS_RND4				0x00016700000001e0ULL
#define	POW_QOS_RND5				0x00016700000001e8ULL
#define	POW_QOS_RND6				0x00016700000001f0ULL
#define	POW_QOS_RND7				0x00016700000001f8ULL
#define	POW_WQ_INT				0x0001670000000200ULL
#define	POW_WQ_INT_PC				0x0001670000000208ULL
#define	POW_NW_TIM				0x0001670000000210ULL
#define	POW_ECC_ERR				0x0001670000000218ULL
#define	POW_NOS_CNT				0x0001670000000220ULL
#define	POW_WS_PC0				0x0001670000000280ULL
#define	POW_WS_PC1				0x0001670000000288ULL
#define	POW_WS_PC2				0x0001670000000290ULL
#define	POW_WS_PC3				0x0001670000000298ULL
#define	POW_WS_PC4				0x00016700000002a0ULL
#define	POW_WS_PC5				0x00016700000002a8ULL
#define	POW_WS_PC6				0x00016700000002b0ULL
#define	POW_WS_PC7				0x00016700000002b8ULL
#define	POW_WS_PC8				0x00016700000002c0ULL
#define	POW_WS_PC9				0x00016700000002c8ULL
#define	POW_WS_PC10				0x00016700000002d0ULL
#define	POW_WS_PC11				0x00016700000002d8ULL
#define	POW_WS_PC12				0x00016700000002e0ULL
#define	POW_WS_PC13				0x00016700000002e8ULL
#define	POW_WS_PC14				0x00016700000002f0ULL
#define	POW_WS_PC15				0x00016700000002f8ULL
#define	POW_WA_PC0				0x0001670000000300ULL
#define	POW_WA_PC1				0x0001670000000308ULL
#define	POW_WA_PC2				0x0001670000000310ULL
#define	POW_WA_PC3				0x0001670000000318ULL
#define	POW_WA_PC4				0x0001670000000320ULL
#define	POW_WA_PC5				0x0001670000000328ULL
#define	POW_WA_PC6				0x0001670000000330ULL
#define	POW_WA_PC7				0x0001670000000338ULL
#define	POW_IQ_CNT0				0x0001670000000340ULL
#define	POW_IQ_CNT1				0x0001670000000348ULL
#define	POW_IQ_CNT2				0x0001670000000350ULL
#define	POW_IQ_CNT3				0x0001670000000358ULL
#define	POW_IQ_CNT4				0x0001670000000360ULL
#define	POW_IQ_CNT5				0x0001670000000368ULL
#define	POW_IQ_CNT6				0x0001670000000370ULL
#define	POW_IQ_CNT7				0x0001670000000378ULL
#define	POW_WA_COM_PC				0x0001670000000380ULL
#define	POW_IQ_COM_CNT				0x0001670000000388ULL
#define	POW_TS_PC				0x0001670000000390ULL
#define	POW_DS_PC				0x0001670000000398ULL
#define	POW_BIST_STAT				0x00016700000003f8ULL

#define POW_BASE				0x0001670000000000ULL
#define POW_SIZE				0x400ULL

#define	POW_PP_GRP_MSK_OFFSET(core)		(0x0ULL + (core) * 8)
#define	POW_WQ_INT_THR0_OFFSET			0x80ULL
#define	POW_WQ_INT_THR1_OFFSET			0x88ULL
#define	POW_WQ_INT_THR2_OFFSET			0x90ULL
#define	POW_WQ_INT_THR3_OFFSET			0x98ULL
#define	POW_WQ_INT_THR4_OFFSET			0xa0ULL
#define	POW_WQ_INT_THR5_OFFSET			0xa8ULL
#define	POW_WQ_INT_THR6_OFFSET			0xb0ULL
#define	POW_WQ_INT_THR7_OFFSET			0xb8ULL
#define	POW_WQ_INT_THR8_OFFSET			0xc0ULL
#define	POW_WQ_INT_THR9_OFFSET			0xc8ULL
#define	POW_WQ_INT_THR10_OFFSET			0xd0ULL
#define	POW_WQ_INT_THR11_OFFSET			0xd8ULL
#define	POW_WQ_INT_THR12_OFFSET			0xe0ULL
#define	POW_WQ_INT_THR13_OFFSET			0xe8ULL
#define	POW_WQ_INT_THR14_OFFSET			0xf0ULL
#define	POW_WQ_INT_THR15_OFFSET			0xf8ULL
#define	POW_WQ_INT_CNT0_OFFSET			0x100ULL
#define	POW_WQ_INT_CNT1_OFFSET			0x108ULL
#define	POW_WQ_INT_CNT2_OFFSET			0x110ULL
#define	POW_WQ_INT_CNT3_OFFSET			0x118ULL
#define	POW_WQ_INT_CNT4_OFFSET			0x120ULL
#define	POW_WQ_INT_CNT5_OFFSET			0x128ULL
#define	POW_WQ_INT_CNT6_OFFSET			0x130ULL
#define	POW_WQ_INT_CNT7_OFFSET			0x138ULL
#define	POW_WQ_INT_CNT8_OFFSET			0x140ULL
#define	POW_WQ_INT_CNT9_OFFSET			0x148ULL
#define	POW_WQ_INT_CNT10_OFFSET			0x150ULL
#define	POW_WQ_INT_CNT11_OFFSET			0x158ULL
#define	POW_WQ_INT_CNT12_OFFSET			0x160ULL
#define	POW_WQ_INT_CNT13_OFFSET			0x168ULL
#define	POW_WQ_INT_CNT14_OFFSET			0x170ULL
#define	POW_WQ_INT_CNT15_OFFSET			0x178ULL
#define	POW_QOS_THR0_OFFSET			0x180ULL
#define	POW_QOS_THR1_OFFSET			0x188ULL
#define	POW_QOS_THR2_OFFSET			0x190ULL
#define	POW_QOS_THR3_OFFSET			0x198ULL
#define	POW_QOS_THR4_OFFSET			0x1a0ULL
#define	POW_QOS_THR5_OFFSET			0x1a8ULL
#define	POW_QOS_THR6_OFFSET			0x1b0ULL
#define	POW_QOS_THR7_OFFSET			0x1b8ULL
#define	POW_QOS_RND0_OFFSET			0x1c0ULL
#define	POW_QOS_RND1_OFFSET			0x1c8ULL
#define	POW_QOS_RND2_OFFSET			0x1d0ULL
#define	POW_QOS_RND3_OFFSET			0x1d8ULL
#define	POW_QOS_RND4_OFFSET			0x1e0ULL
#define	POW_QOS_RND5_OFFSET			0x1e8ULL
#define	POW_QOS_RND6_OFFSET			0x1f0ULL
#define	POW_QOS_RND7_OFFSET			0x1f8ULL
#define	POW_WQ_INT_OFFSET			0x200ULL
#define	POW_WQ_INT_PC_OFFSET			0x208ULL
#define	POW_NW_TIM_OFFSET			0x210ULL
#define	POW_ECC_ERR_OFFSET			0x218ULL
#define	POW_NOS_CNT_OFFSET			0x220ULL
#define	POW_WS_PC0_OFFSET			0x280ULL
#define	POW_WS_PC1_OFFSET			0x288ULL
#define	POW_WS_PC2_OFFSET			0x290ULL
#define	POW_WS_PC3_OFFSET			0x298ULL
#define	POW_WS_PC4_OFFSET			0x2a0ULL
#define	POW_WS_PC5_OFFSET			0x2a8ULL
#define	POW_WS_PC6_OFFSET			0x2b0ULL
#define	POW_WS_PC7_OFFSET			0x2b8ULL
#define	POW_WS_PC8_OFFSET			0x2c0ULL
#define	POW_WS_PC9_OFFSET			0x2c8ULL
#define	POW_WS_PC10_OFFSET			0x2d0ULL
#define	POW_WS_PC11_OFFSET			0x2d8ULL
#define	POW_WS_PC12_OFFSET			0x2e0ULL
#define	POW_WS_PC13_OFFSET			0x2e8ULL
#define	POW_WS_PC14_OFFSET			0x2f0ULL
#define	POW_WS_PC15_OFFSET			0x2f8ULL
#define	POW_WA_PC0_OFFSET			0x300ULL
#define	POW_WA_PC1_OFFSET			0x308ULL
#define	POW_WA_PC2_OFFSET			0x310ULL
#define	POW_WA_PC3_OFFSET			0x318ULL
#define	POW_WA_PC4_OFFSET			0x320ULL
#define	POW_WA_PC5_OFFSET			0x328ULL
#define	POW_WA_PC6_OFFSET			0x330ULL
#define	POW_WA_PC7_OFFSET			0x338ULL
#define	POW_IQ_CNT0_OFFSET			0x340ULL
#define	POW_IQ_CNT1_OFFSET			0x348ULL
#define	POW_IQ_CNT2_OFFSET			0x350ULL
#define	POW_IQ_CNT3_OFFSET			0x358ULL
#define	POW_IQ_CNT4_OFFSET			0x360ULL
#define	POW_IQ_CNT5_OFFSET			0x368ULL
#define	POW_IQ_CNT6_OFFSET			0x370ULL
#define	POW_IQ_CNT7_OFFSET			0x378ULL
#define	POW_WA_COM_PC_OFFSET			0x380ULL
#define	POW_IQ_COM_CNT_OFFSET			0x388ULL
#define	POW_TS_PC_OFFSET			0x390ULL
#define	POW_DS_PC_OFFSET			0x398ULL
#define	POW_BIST_STAT_OFFSET			0x3f8ULL

/* ---- register bits */

#define	POW_PP_GRP_MSKX_XXX_63_16		0xffffffffffff0000ULL
#define	POW_PP_GRP_MSKX_GRP_MSK			0x000000000000ffffULL
#define	 POW_PP_GRP_MSKX_GRP_MSK_SHIFT		0

#define	POW_WQ_INT_THRX_XXX_63_29		0xffffffffe0000000ULL
#define	POW_WQ_INT_THRX_TC_EN			0x0000000010000000ULL
#define	POW_WQ_INT_THRX_TC_THR			0x000000000f000000ULL
#define	 POW_WQ_INT_THRX_TC_THR_SHIFT		24
#define	POW_WQ_INT_THRX_XXX_23_18		0x0000000000fc0000ULL
#define	POW_WQ_INT_THRX_DS_THR			0x000000000003f000ULL
#define	 POW_WQ_INT_THRX_DS_THR_SHIFT		12
#define	POW_WQ_INT_THRX_XXX_11_6		0x0000000000000fc0ULL
#define	POW_WQ_INT_THRX_IQ_THR			0x000000000000003fULL
#define	 POW_WQ_INT_THRX_IQ_THR_SHIFT		0

#define	POW_WQ_INT_CNTX_XXX_63_28		0xfffffffff0000000ULL
#define	POW_WQ_INT_CNTX_TC_CNT			0x000000000f000000ULL
#define	 POW_WQ_INT_CNTX_TC_CNT_SHIFT		24
#define	POW_WQ_INT_CNTX_XXX_23_18		0x0000000000fc0000ULL
#define	POW_WQ_INT_CNTX_DS_CNT			0x000000000003f000ULL
#define	 POW_WQ_INT_CNTX_DS_CNT_SHIFT		12
#define	POW_WQ_INT_CNTX_XXX_11_6		0x0000000000000fc0ULL
#define	POW_WQ_INT_CNTX_IQ_CNT			0x000000000000003fULL
#define	 POW_WQ_INT_CNTX_IQ_CNT_SHIFT		0

#define	POW_QOS_THRX_XXX_63_55			0xff80000000000000ULL
#define	POW_QOS_THRX_DES_CNT			0x007f000000000000ULL
#define	 POW_QOS_THRX_DES_CNT_SHIFT		48
#define	POW_QOS_THRX_XXX_47_43			0x0000f80000000000ULL
#define	POW_QOS_THRX_BUF_CNT			0x000007f000000000ULL
#define	 POW_QOS_THRX_BUF_CNT_SHIFT		36
#define	POW_QOS_THRX_XXX_35_31			0x0000000f80000000ULL
#define	POW_QOS_THRX_FREE_CNT			0x000000007f000000ULL
#define	 POW_QOS_THRX_FREE_CNT_SHIFT		24
#define	POW_QOS_THRX_XXX_23_18			0x0000000000fc0000ULL
#define	POW_QOS_THRX_MAX_THR			0x000000000003f000ULL
#define	 POW_QOS_THRX_MAX_THR_SHIFT		12
#define	POW_QOS_THRX_XXX_11_6			0x0000000000000fc0ULL
#define	POW_QOS_THRX_MIN_THR			0x000000000000003fULL
#define	 POW_QOS_THRX_MIN_THR_SHIFT		0

#define	POW_QOS_RNDX_XXX_63_32			0xffffffff00000000ULL
#define	POW_QOS_RNDX_RND_P3			0x00000000ff000000ULL
#define	 POW_QOS_RNDX_RND_P3_SHIFT		24
#define	POW_QOS_RNDX_RND_P2			0x0000000000ff0000ULL
#define	 POW_QOS_RNDX_RND_P2_SHIFT		16
#define	POW_QOS_RNDX_RND_P1			0x000000000000ff00ULL
#define	 POW_QOS_RNDX_RND_P1_SHIFT		8
#define	POW_QOS_RNDX_RND			0x00000000000000ffULL
#define	 POW_QOS_RNDX_RND_SHIFT			0

#define	POW_WQ_INT_XXX_63_32			0xffffffff00000000ULL
#define	POW_WQ_INT_IQ_DIS			0x00000000ffff0000ULL
#define	 POW_WQ_INT_IQ_DIS_SHIFT		16
#define	POW_WQ_INT_WQ_INT			0x000000000000ffffULL
#define	 POW_WQ_INT_WQ_INT_SHIFT		0

#define	POW_WQ_INT_PC_XXX_63_60			0xf000000000000000ULL
#define	POW_WQ_INT_PC_PC			0x0fffffff00000000ULL
#define	 POW_WQ_INT_PC_PC_SHIFT			32
#define	POW_WQ_INT_PC_XXX_31_28			0x00000000f0000000ULL
#define	POW_WQ_INT_PC_PC_THR			0x000000000fffff00ULL
#define	 POW_WQ_INT_PC_PC_THR_SHIFT		8
#define	POW_WQ_INT_PC_XXX_7_0			0x00000000000000ffULL

#define	POW_NW_TIM_XXX_63_10			0xfffffffffffffc00ULL
#define	POW_NW_TIM_NW_TIM			0x00000000000003ffULL
#define	 POW_NW_TIM_NW_TIM_SHIFT		0

#define	POW_ECC_ERR_XXX_63_45			0xffffe00000000000ULL
#define	POW_ECC_ERR_IOP_IE			0x00001fff00000000ULL
#define	 POW_ECC_ERR_IOP_IE_SHIFT		32
#define	POW_ECC_ERR_XXX_31_29			0x00000000e0000000ULL
#define	POW_ECC_ERR_IOP				0x000000001fff0000ULL
#define	 POW_ECC_ERR_IOP_SHIFT			16
#define	  POW_ECC_ERR_IOP_CSRPEND		(28) << POW_ECC_ERR_IOP_SHIFTULL
#define	  POW_ECC_ERR_IOP_DBGPEND		(27) << POW_ECC_ERR_IOP_SHIFTULL
#define	  POW_ECC_ERR_IOP_ADDWORK		(26) << POW_ECC_ERR_IOP_SHIFTULL
#define	  POW_ECC_ERR_IOP_ILLOP			(25) << POW_ECC_ERR_IOP_SHIFTULL
#define	  POW_ECC_ERR_IOP_PEND24		(24) << POW_ECC_ERR_IOP_SHIFTULL
#define	  POW_ECC_ERR_IOP_PEND23		(23) << POW_ECC_ERR_IOP_SHIFTULL
#define	  POW_ECC_ERR_IOP_PEND22		(22) << POW_ECC_ERR_IOP_SHIFTULL
#define	  POW_ECC_ERR_IOP_PEND21		(21) << POW_ECC_ERR_IOP_SHIFTULL
#define	  POW_ECC_ERR_IOP_TAGNULL		(20) << POW_ECC_ERR_IOP_SHIFTULL
#define	  POW_ECC_ERR_IOP_TAGNULLNULL		(19) << POW_ECC_ERR_IOP_SHIFTULL
#define	  POW_ECC_ERR_IOP_ORDATOM		(18) << POW_ECC_ERR_IOP_SHIFTULL
#define	  POW_ECC_ERR_IOP_NULL			(17) << POW_ECC_ERR_IOP_SHIFTULL
#define	  POW_ECC_ERR_IOP_NULLNULL		(16) << POW_ECC_ERR_IOP_SHIFTULL
#define	POW_ECC_ERR_XXX_15_14			0x000000000000c000ULL
#define	POW_ECC_ERR_RPE_IE			0x0000000000002000ULL
#define	POW_ECC_ERR_RPE				0x0000000000001000ULL
#define	POW_ECC_ERR_XXX_11_9			0x0000000000000e00ULL
#define	POW_ECC_ERR_SYN				0x00000000000001f0ULL
#define	 POW_ECC_ERR_SYN_SHIFT			4
#define	POW_ECC_ERR_DBE_IE			0x0000000000000008ULL
#define	POW_ECC_ERR_SBE_IE			0x0000000000000004ULL
#define	POW_ECC_ERR_DBE				0x0000000000000002ULL
#define	POW_ECC_ERR_SBE				0x0000000000000001ULL

#define	POW_NOS_CNT_XXX_63_7			0xffffffffffffff80ULL
#define	POW_NOS_CNT_NOS_CNT			0x000000000000007fULL
#define	 POW_NOS_CNT_NOS_CNT_SHIFT		0

#define	POW_WS_PC0_XXX_63_32			0xffffffff00000000ULL
#define	POW_WS_PC0_WS_PC			0x00000000ffffffffULL
#define	 POW_WS_PC0_WS_PC_SHIFT			0

#define	POW_WA_PC0_XXX_63_32			0xffffffff00000000ULL
#define	POW_WA_PC0_WA_PC			0x00000000ffffffffULL
#define	 POW_WA_PC0_WA_PC_SHIFT			0

#define	POW_IQ_CNT0_XXX_63_32			0xffffffff00000000ULL
#define	POW_IQ_CNT0_IQ_CNT			0x00000000ffffffffULL
#define	 POW_IQ_CNT0_IQ_CNT_SHIFT		0

#define	POW_WA_COM_PC_XXX_63_32			0xffffffff00000000ULL
#define	POW_WA_COM_PC_WA_PC			0x00000000ffffffffULL
#define	 POW_WA_COM_PC_WA_PC_SHIFT		0

#define	POW_WQ_COM_CNT_XXX_63_32		0xffffffff00000000ULL
#define	POW_WQ_COM_CNT_IQ_CNT			0x00000000ffffffffULL
#define	 POW_WQ_COM_CNT_IQ_CNT_SHIFT		0

#define	POW_TS_PC_XXX_63_32			0xffffffff00000000ULL
#define	POW_TS_PC_TS_PC				0x00000000ffffffffULL
#define	 POW_TS_PC_TS_PC_SHIFT			0

#define	POW_DS_PC_XXX_63_32			0xffffffff00000000ULL
#define	POW_DS_PC_DS_PC				0x00000000ffffffffULL
#define	 POW_DS_PC_DS_PC_SHIFT			0

#define	POW_BIST_STAT_XXX_63_7			0xfffffffffffe0000ULL
#define	POW_BIST_STAT_PP			0x0000000000010000ULL
#define	POW_BIST_STAT_XXX_15_9			0x000000000000fe00ULL
#define	POW_BIST_STAT_CAM			0x0000000000000100ULL
#define	POW_BIST_STAT_NBT1			0x0000000000000080ULL
#define	POW_BIST_STAT_NBT0			0x0000000000000040ULL
#define	POW_BIST_STAT_IDX			0x0000000000000020ULL
#define	POW_BIST_STAT_FIDX			0x0000000000000010ULL
#define	POW_BIST_STAT_NBR1			0x0000000000000008ULL
#define	POW_BIST_STAT_NBR0			0x0000000000000004ULL
#define	POW_BIST_STAT_PEND			0x0000000000000002ULL
#define	POW_BIST_STAT_ADR			0x0000000000000001ULL

/* ---- pow operations */ 

/* pow operations base */ 
#define POW_OPERATION_BASE_IO_BIT		0x0001000000000000ULL
#define POW_OPERATION_BASE_MAJOR_DID		0x0000f80000000000ULL
#define POW_OPERATION_BASE_SUB_DID		0x0000070000000000ULL
#define	POW_OPERATION_BASE_IO_BIT_SHIFT	48
#define	POW_OPERATION_BASE_MAJOR_DID_SHIFT	43
#define	POW_OPERATION_BASE_SUB_DID_SHIFT	40

/* get work load  (subid = 0) */
#define POW_GET_WORK_LOAD_WAIT			0x0000000000000008ULL
#define POW_GET_WORK_LOAD_2_0			0x0000000000000007ULL
#define	POW_GET_WORK_LOAD_WAIT_SHIFT	3
#define	POW_GET_WORK_LOAD_2_0_SHIFT	0

#define POW_GET_WORK_LOAD_RESULT_NO_WORK	0x8000000000000000ULL
#define POW_GET_WORK_LOAD_RESULT_62_40		0x7fffff0000000000ULL
#define POW_GET_WORK_LOAD_RESULT_ADDR		0x000000ffffffffffULL

/* pow status load (subid = 1) */
#define POW_STATUS_LOAD_COREID			0x00000000000003c0ULL
#define POW_STATUS_LOAD_GET_REV			0x0000000000000020ULL
#define POW_STATUS_LOAD_GET_CUR			0x0000000000000010ULL
#define POW_STATUS_LOAD_GET_WQP			0x0000000000000008ULL
#define POW_STATUS_LOAD_GET_2_0			0x0000000000000007ULL
#define	POW_STATUS_LOAD_COREID_SHIFT	6
#define	POW_STATUS_LOAD_GET_REV_SHIFT	5
#define	POW_STATUS_LOAD_GET_CUR_SHIFT	4
#define	POW_STATUS_LOAD_GET_WQP_SHIFT	3
#define	POW_STATUS_LOAD_GET_2_0_SHIFT	0

/* get_cur = 0 and get_wqp = 0 ("pend_tag") */
#define POW_STATUS_LOAD_RESULT_PEND_TAG_XXX_63_62		0xc000000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_SWITCH		0x2000000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_SWITCH_FULL	0x1000000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_SWITCH_NULL	0x0800000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_DESCHED		0x0400000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_DESCHED_SWITCH	0x0200000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NOSCHED		0x0100000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NEW_WORK		0x0080000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NEW_WORK_WAIT	0x0040000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NULL_RD		0x0020000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NOSCHED_CLR	0x0010000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_XXX_51		0x0008000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_INDEX		0x0007ff0000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_GRP		0x000000f000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_XXX_35_34		0x0000000c00000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_TYPE		0x0000000300000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_TAG		0x00000000ffffffffULL

/* get_cur = 0 and get_wqp = 1 ("pend_wqp") */
#define POW_STATUS_LOAD_RESULT_PEND_WQP_XXX_63_62		0xc000000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_SWITCH		0x2000000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_SWITCH_FULL	0x1000000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_SWITCH_NULL	0x0800000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_DESCHED		0x0400000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_DESCHED_SWITCH	0x0200000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NOSCHED		0x0100000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NEW_WORK		0x0080000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NEW_WORK_WAIT	0x0040000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NULL_RD		0x0020000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NOSCHED_CLR	0x0010000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_XXX_51		0x0008000000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_INDEX		0x0007ff0000000000ULL
#define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_WQP		0x0000000fffffffffULL

/* get_cur = 1 and get_wqp = 0 and get_rev = 0 ("cur_tag_next") */
#define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_XXX_63_62		0xc000000000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_LINK_INDEX		0x3ff8000000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_INDEX		0x0007ff0000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_GRP			0x000000f000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_HEAD		0x0000000800000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_TAIL		0x0000000400000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_TAG_TYPE		0x0000000300000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_TAG			0x00000000ffffffffULL

/* get_cur = 1 and get_wqp = 0 and get_rev = 1 ("cur_tag_prev") */
#define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_XXX_63_62		0xc000000000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_REVLINK_INDEX	0x3ff8000000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_INDEX		0x0007ff0000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_GRP			0x000000f000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_HEAD		0x0000000800000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_TAIL		0x0000000400000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_TAG_TYPE		0x0000000300000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_TAG			0x00000000ffffffffULL

/* get_cur = 1 and get_wqp = 1 and get_rev = 0 ("cur_wqp_next") */
#define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_XXX_63_62		0xc000000000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_LINK_INDEX		0x3ff8000000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_INDEX		0x0007ff0000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_GRP			0x000000f000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_WQP			0x0000000fffffffffULL

/* get_cur = 1 and get_wqp = 1 and get_rev = 1 ("cur_wqp_prev") */
#define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_XXX_63_62		0xc000000000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_REVLINK_INDEX	0x3ff8000000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_INDEX		0x0007ff0000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_GRP			0x000000f000000000ULL
#define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_WQP			0x0000000fffffffffULL

/* pow memory load (subid = 2) */
#define POW_MEMORY_LOAD_INDEX		0x000000000000ffe0ULL
#define POW_MEMORY_LOAD_GET_DES		0x0000000000000010ULL
#define POW_MEMORY_LOAD_GET_WQP		0x0000000000000008ULL
#define POW_MEMORY_LOAD_2_0		0x0000000000000007ULL
#define	POW_MEMORY_LOAD_GET_DES_SHIFT	4
#define	POW_MEMORY_LOAD_INDEX_SHIFT	5
#define	POW_MEMORY_LOAD_2_0_SHIFT	0
#define	POW_MEMORY_LOAD_GET_WQP_SHIFT	3

/* get_des = 0 and get_wqp = 0 ("tag") */
#define POW_MEMORY_LOAD_RESULT_TAG_XXX_63_51			0xfff8000000000000ULL
#define POW_MEMORY_LOAD_RESULT_TAG_NEXT_INDEX			0x0007ff0000000000ULL
#define POW_MEMORY_LOAD_RESULT_TAG_GRP				0x000000f000000000ULL
#define POW_MEMORY_LOAD_RESULT_TAG_XXX_35			0x0000000800000000ULL
#define POW_MEMORY_LOAD_RESULT_TAG_TAIL				0x0000000400000000ULL
#define POW_MEMORY_LOAD_RESULT_TAG_TAG_TYPE			0x0000000300000000ULL
#define POW_MEMORY_LOAD_RESULT_TAG_TAG				0x00000000ffffffffULL

/* get_des = 0 and get_wqp = 1 ("wqp") */
#define POW_MEMORY_LOAD_RESULT_WQP_XXX_63_51			0xfff8000000000000ULL
#define POW_MEMORY_LOAD_RESULT_WQP_NEXT_INDEX			0x0007ff0000000000ULL
#define POW_MEMORY_LOAD_RESULT_WQP_GRP				0x000000f000000000ULL
#define POW_MEMORY_LOAD_RESULT_WQP_WQP				0x0000000fffffffffULL

/* get_des = 1 ("desched") */
#define POW_MEMORY_LOAD_RESULT_DESCHED_XXX_63_51		0xfff8000000000000ULL
#define POW_MEMORY_LOAD_RESULT_DESCHED_FWD_INDEX		0x0007ff0000000000ULL
#define POW_MEMORY_LOAD_RESULT_DESCHED_GRP			0x000000f000000000ULL
#define POW_MEMORY_LOAD_RESULT_DESCHED_NOSCHED			0x0000000800000000ULL
#define POW_MEMORY_LOAD_RESULT_DESCHED_PEND_SWITCH		0x0000000400000000ULL
#define POW_MEMORY_LOAD_RESULT_DESCHED_PEND_TYPE		0x0000000300000000ULL
#define POW_MEMORY_LOAD_RESULT_DESCHED_PEND_TAG			0x00000000ffffffffULL

/* pow index/pointer load (subid = 3) */
#define POW_IDXPTR_LOAD_QOSGRP			0x00000000000001e0ULL
#define POW_IDXPTR_LOAD_GET_DES_GET_TAIL	0x0000000000000010ULL
#define POW_IDXPTR_LOAD_GET_RMT			0x0000000000000008ULL
#define POW_IDXPTR_LOAD_2_0			0x0000000000000007ULL
#define	POW_IDXPTR_LOAD_GET_DES_GET_TAIL_SHIFT	4
#define	POW_IDXPTR_LOAD_QOSGRP_SHIFT	5
#define	POW_IDXPTR_LOAD_2_0_SHIFT	0
#define	POW_IDXPTR_LOAD_GET_RMT_SHIFT	3

/* get_rmt = 0 and get_des_get_tail = 0 ("qos") */
#define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_63_52		0xfff0000000000000ULL
#define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_FREE_VAL		0x0008000000000000ULL
#define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_FREE_ONE		0x0004000000000000ULL
#define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_49		0x0002000000000000ULL
#define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_FREE_HEAD		0x0001ffc000000000ULL
#define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_37		0x0000002000000000ULL
#define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_FREE_TAIL		0x0000001ffc000000ULL
#define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_LOC_VAL		0x0000000002000000ULL
#define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_LOC_ONE		0x0000000001000000ULL
#define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_23		0x0000000000800000ULL
#define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_LOC_HEAD		0x00000000007ff000ULL
#define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_11		0x0000000000000800ULL
#define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_LOC_TAIL		0x00000000000007ffULL

/* get_rmt = 0 and get_des_get_tail = 1 ("desched") */
#define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_63_52	0xfff0000000000000ULL
#define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_NOSCHED_VAL	0x0008000000000000ULL
#define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_NOSCHED_ONE	0x0004000000000000ULL
#define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_49		0x0002000000000000ULL
#define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_NOSCHED_HEAD	0x0001ffc000000000ULL
#define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_37		0x0000002000000000ULL
#define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_NOSCHED_TAIL	0x0000001ffc000000ULL
#define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_DES_VAL		0x0000000002000000ULL
#define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_DES_ONE		0x0000000001000000ULL
#define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_23		0x0000000000800000ULL
#define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_DES_HEAD		0x00000000007ff000ULL
#define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_11		0x0000000000000800ULL
#define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_DES_TAIL		0x00000000000007ffULL

/* get_rmt = 1 and get_des_get_tail = 0 ("remote_head") */
#define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_XXX_63_39	0xffffff8000000000ULL
#define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_RMT_IS_HEAD	0x0000004000000000ULL
#define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_RMT_VAL	0x0000002000000000ULL
#define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_RMT_ONE	0x0000001000000000ULL
#define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_RMT_HEAD	0x0000000fffffffffULL

/* get_rmt = 1 and get_des_get_tail = 1 ("remote_tail") */
#define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_XXX_63_39	0xffffff8000000000ULL
#define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_RMT_IS_HEAD	0x0000004000000000ULL
#define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_RMT_VAL	0x0000002000000000ULL
#define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_RMT_ONE	0x0000001000000000ULL
#define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_RMT_TAIL	0x0000000fffffffffULL

/* pow index/pointer load (subid = 2) */
#define POW_NULL_RD_LOAD_39_3			0x000000fffffffff8ULL
#define POW_NULL_RD_LOAD_2_0			0x0000000000000007ULL
#define	POW_NULL_RD_LOAD_2_0_SHIFT	0
#define	POW_NULL_RD_LOAD_39_3_SHIFT	3

#define POW_NULL_RD_LOAD_RESULT_63_2		0xfffffffffffffffcULL
#define POW_NULL_RD_LOAD_RESULT_STATUS		0x0000000000000003ULL

/* pow store operations */

#define POW_PHY_ADDR_STORE_ADDR			0x0000000fffffffffULL
#define	POW_PHY_ADDR_STORE_ADDR_SHIFT	0

#define POW_STORE_DATA_NO_SCHED			0x8000000000000000ULL
#define POW_STORE_DATA_62_61			0x6000000000000000ULL
#define POW_STORE_DATA_INDEX			0x1fff000000000000ULL
#define POW_STORE_DATA_OP			0x0000f00000000000ULL
#define POW_STORE_DATA_43_42			0x00000c0000000000ULL
#define POW_STORE_DATA_QOS			0x0000038000000000ULL
#define POW_STORE_DATA_GRP			0x0000007800000000ULL
#define POW_STORE_DATA_TYPE			0x0000000700000000ULL
#define POW_STORE_DATA_TAG			0x00000000ffffffffULL
#define	POW_STORE_DATA_NO_SCHED_SHIFT	63
#define	POW_STORE_DATA_62_61_SHIFT	61
#define	POW_STORE_DATA_INDEX_SHIFT	48
#define	POW_STORE_DATA_OP_SHIFT	44
#define	POW_STORE_DATA_43_42_SHIFT	42
#define	POW_STORE_DATA_QOS_SHIFT	39
#define	POW_STORE_DATA_GRP_SHIFT	35
#define	POW_STORE_DATA_TYPE_SHIFT	32
#define	POW_STORE_DATA_TAG_SHIFT	0

/* pow iobdma operations */ 

/* pow iobdma operations base*/ 
#define POW_IOBDMA_BASE_SCRADDR			0xff00000000000000ULL
#define POW_IOBDMA_BASE_LEN			0x00ff000000000000ULL
#define POW_IOBDMA_BASE_MAJOR_DID		0x0000f80000000000ULL
#define POW_IOBDMA_BASE_SUB_DID			0x0000070000000000ULL
#define POW_IOBDMA_BASE_39_0			0x000000ffffffffffULL
#define	POW_IOBDMA_BASE_SCRADDR_SHIFT	56
#define	POW_IOBDMA_BASE_SUB_DID_SHIFT	40
#define	POW_IOBDMA_BASE_39_0_SHIFT	0
#define	POW_IOBDMA_BASE_LEN_SHIFT	48
#define	POW_IOBDMA_BASE_MAJOR_DID_SHIFT	43

/* pow iobdma get work (subid = 0) */ 
#define POW_IOBDMA_GET_WORK_39_4		0x000000ffffffffffULL
#define POW_IOBDMA_GET_WORK_WAIT		0x0000000000000008ULL
#define POW_IOBDMA_GET_WORK_2_0			0x0000000000000007ULL
#define	POW_IOBDMA_GET_WORK_39_4_SHIFT	0
#define	POW_IOBDMA_GET_WORK_2_0_SHIFT	0
#define	POW_IOBDMA_GET_WORK_WAIT_SHIFT	3

#define POW_IOBDMA_GET_WORK_RESULT_NO_WORK	0x8000000000000000ULL
#define POW_IOBDMA_GET_WORK_RESULT_62_40	0x7fffff0000000000ULL
#define POW_IOBDMA_GET_WORK_RESULT_ADDR		0x000000ffffffffffULL

/* pow iobdma null rd (subid = 4) */
#define POW_IOBDMA_NULL_RD_39_0			0x000000ffffffffffULL
#define	POW_IOBDMA_NULL_RD_39_0_SHIFT	0

#define POW_IOBDMA_NULL_RD_RESULT_63_2		0xfffffffffffffffcULL
#define POW_IOBDMA_NULL_RD_RESULT_STATUS	0x0000000000000003ULL

/* ------------------------------------------------------------------------- */

/* Work Queue Entry */

#define	POW_WQE_WORD0_XXX_63_40			0xffffff0000000000ULL
#define	POW_WQE_WORD0_NEXT			0x000000ffffffffffULL
#define	POW_WQE_WORD0_NEXT_SHIFT	0

#define	POW_WQE_WORD1_XXX_63_42			0xfffffc0000000000ULL
#define	POW_WQE_WORD1_QOS			0x0000038000000000ULL
#define	POW_WQE_WORD1_GRP			0x0000007800000000ULL
#define	POW_WQE_WORD1_TT			0x0000000700000000ULL
#define	POW_WQE_WORD1_TAG			0x00000000ffffffffULL
#define	POW_WQE_WORD1_GRP_SHIFT	35
#define	POW_WQE_WORD1_QOS_SHIFT	39
#define	POW_WQE_WORD1_TT_SHIFT	32
#define	POW_WQE_WORD1_TAG_SHIFT	0

#endif /* _CN30XXPOWREG_H_ */