octeon_powreg.h revision 1.2 1 /* $NetBSD: octeon_powreg.h,v 1.2 2020/06/18 13:52:08 simonb Exp $ */
2
3 /*
4 * Copyright (c) 2007 Internet Initiative Japan, Inc.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 */
28
29 /*
30 * POW Registers
31 */
32
33 #ifndef _OCTEON_POWREG_H_
34 #define _OCTEON_POWREG_H_
35
36 /* ---- register addresses */
37
38 #define POW_PP_GRP_MSK0 UINT64_C(0x0001670000000000)
39 #define POW_PP_GRP_MSK1 UINT64_C(0x0001670000000008)
40 #define POW_WQ_INT_THR0 UINT64_C(0x0001670000000080)
41 #define POW_WQ_INT_THR1 UINT64_C(0x0001670000000088)
42 #define POW_WQ_INT_THR2 UINT64_C(0x0001670000000090)
43 #define POW_WQ_INT_THR3 UINT64_C(0x0001670000000098)
44 #define POW_WQ_INT_THR4 UINT64_C(0x00016700000000a0)
45 #define POW_WQ_INT_THR5 UINT64_C(0x00016700000000a8)
46 #define POW_WQ_INT_THR6 UINT64_C(0x00016700000000b0)
47 #define POW_WQ_INT_THR7 UINT64_C(0x00016700000000b8)
48 #define POW_WQ_INT_THR8 UINT64_C(0x00016700000000c0)
49 #define POW_WQ_INT_THR9 UINT64_C(0x00016700000000c8)
50 #define POW_WQ_INT_THR10 UINT64_C(0x00016700000000d0)
51 #define POW_WQ_INT_THR11 UINT64_C(0x00016700000000d8)
52 #define POW_WQ_INT_THR12 UINT64_C(0x00016700000000e0)
53 #define POW_WQ_INT_THR13 UINT64_C(0x00016700000000e8)
54 #define POW_WQ_INT_THR14 UINT64_C(0x00016700000000f0)
55 #define POW_WQ_INT_THR15 UINT64_C(0x00016700000000f8)
56 #define POW_WQ_INT_CNT0 UINT64_C(0x0001670000000100)
57 #define POW_WQ_INT_CNT1 UINT64_C(0x0001670000000108)
58 #define POW_WQ_INT_CNT2 UINT64_C(0x0001670000000110)
59 #define POW_WQ_INT_CNT3 UINT64_C(0x0001670000000118)
60 #define POW_WQ_INT_CNT4 UINT64_C(0x0001670000000120)
61 #define POW_WQ_INT_CNT5 UINT64_C(0x0001670000000128)
62 #define POW_WQ_INT_CNT6 UINT64_C(0x0001670000000130)
63 #define POW_WQ_INT_CNT7 UINT64_C(0x0001670000000138)
64 #define POW_WQ_INT_CNT8 UINT64_C(0x0001670000000140)
65 #define POW_WQ_INT_CNT9 UINT64_C(0x0001670000000148)
66 #define POW_WQ_INT_CNT10 UINT64_C(0x0001670000000150)
67 #define POW_WQ_INT_CNT11 UINT64_C(0x0001670000000158)
68 #define POW_WQ_INT_CNT12 UINT64_C(0x0001670000000160)
69 #define POW_WQ_INT_CNT13 UINT64_C(0x0001670000000168)
70 #define POW_WQ_INT_CNT14 UINT64_C(0x0001670000000170)
71 #define POW_WQ_INT_CNT15 UINT64_C(0x0001670000000178)
72 #define POW_QOS_THR0 UINT64_C(0x0001670000000180)
73 #define POW_QOS_THR1 UINT64_C(0x0001670000000188)
74 #define POW_QOS_THR2 UINT64_C(0x0001670000000190)
75 #define POW_QOS_THR3 UINT64_C(0x0001670000000198)
76 #define POW_QOS_THR4 UINT64_C(0x00016700000001a0)
77 #define POW_QOS_THR5 UINT64_C(0x00016700000001a8)
78 #define POW_QOS_THR6 UINT64_C(0x00016700000001b0)
79 #define POW_QOS_THR7 UINT64_C(0x00016700000001b8)
80 #define POW_QOS_RND0 UINT64_C(0x00016700000001c0)
81 #define POW_QOS_RND1 UINT64_C(0x00016700000001c8)
82 #define POW_QOS_RND2 UINT64_C(0x00016700000001d0)
83 #define POW_QOS_RND3 UINT64_C(0x00016700000001d8)
84 #define POW_QOS_RND4 UINT64_C(0x00016700000001e0)
85 #define POW_QOS_RND5 UINT64_C(0x00016700000001e8)
86 #define POW_QOS_RND6 UINT64_C(0x00016700000001f0)
87 #define POW_QOS_RND7 UINT64_C(0x00016700000001f8)
88 #define POW_WQ_INT UINT64_C(0x0001670000000200)
89 #define POW_WQ_INT_PC UINT64_C(0x0001670000000208)
90 #define POW_NW_TIM UINT64_C(0x0001670000000210)
91 #define POW_ECC_ERR UINT64_C(0x0001670000000218)
92 #define POW_NOS_CNT UINT64_C(0x0001670000000220)
93 #define POW_WS_PC0 UINT64_C(0x0001670000000280)
94 #define POW_WS_PC1 UINT64_C(0x0001670000000288)
95 #define POW_WS_PC2 UINT64_C(0x0001670000000290)
96 #define POW_WS_PC3 UINT64_C(0x0001670000000298)
97 #define POW_WS_PC4 UINT64_C(0x00016700000002a0)
98 #define POW_WS_PC5 UINT64_C(0x00016700000002a8)
99 #define POW_WS_PC6 UINT64_C(0x00016700000002b0)
100 #define POW_WS_PC7 UINT64_C(0x00016700000002b8)
101 #define POW_WS_PC8 UINT64_C(0x00016700000002c0)
102 #define POW_WS_PC9 UINT64_C(0x00016700000002c8)
103 #define POW_WS_PC10 UINT64_C(0x00016700000002d0)
104 #define POW_WS_PC11 UINT64_C(0x00016700000002d8)
105 #define POW_WS_PC12 UINT64_C(0x00016700000002e0)
106 #define POW_WS_PC13 UINT64_C(0x00016700000002e8)
107 #define POW_WS_PC14 UINT64_C(0x00016700000002f0)
108 #define POW_WS_PC15 UINT64_C(0x00016700000002f8)
109 #define POW_WA_PC0 UINT64_C(0x0001670000000300)
110 #define POW_WA_PC1 UINT64_C(0x0001670000000308)
111 #define POW_WA_PC2 UINT64_C(0x0001670000000310)
112 #define POW_WA_PC3 UINT64_C(0x0001670000000318)
113 #define POW_WA_PC4 UINT64_C(0x0001670000000320)
114 #define POW_WA_PC5 UINT64_C(0x0001670000000328)
115 #define POW_WA_PC6 UINT64_C(0x0001670000000330)
116 #define POW_WA_PC7 UINT64_C(0x0001670000000338)
117 #define POW_IQ_CNT0 UINT64_C(0x0001670000000340)
118 #define POW_IQ_CNT1 UINT64_C(0x0001670000000348)
119 #define POW_IQ_CNT2 UINT64_C(0x0001670000000350)
120 #define POW_IQ_CNT3 UINT64_C(0x0001670000000358)
121 #define POW_IQ_CNT4 UINT64_C(0x0001670000000360)
122 #define POW_IQ_CNT5 UINT64_C(0x0001670000000368)
123 #define POW_IQ_CNT6 UINT64_C(0x0001670000000370)
124 #define POW_IQ_CNT7 UINT64_C(0x0001670000000378)
125 #define POW_WA_COM_PC UINT64_C(0x0001670000000380)
126 #define POW_IQ_COM_CNT UINT64_C(0x0001670000000388)
127 #define POW_TS_PC UINT64_C(0x0001670000000390)
128 #define POW_DS_PC UINT64_C(0x0001670000000398)
129 #define POW_BIST_STAT UINT64_C(0x00016700000003f8)
130
131 #define POW_BASE UINT64_C(0x0001670000000000)
132 #define POW_SIZE UINT64_C(0x400)
133
134 #define POW_PP_GRP_MSK0_OFFSET UINT64_C(0x0)
135 #define POW_PP_GRP_MSK1_OFFSET UINT64_C(0x8)
136 #define POW_WQ_INT_THR0_OFFSET UINT64_C(0x80)
137 #define POW_WQ_INT_THR1_OFFSET UINT64_C(0x88)
138 #define POW_WQ_INT_THR2_OFFSET UINT64_C(0x90)
139 #define POW_WQ_INT_THR3_OFFSET UINT64_C(0x98)
140 #define POW_WQ_INT_THR4_OFFSET UINT64_C(0xa0)
141 #define POW_WQ_INT_THR5_OFFSET UINT64_C(0xa8)
142 #define POW_WQ_INT_THR6_OFFSET UINT64_C(0xb0)
143 #define POW_WQ_INT_THR7_OFFSET UINT64_C(0xb8)
144 #define POW_WQ_INT_THR8_OFFSET UINT64_C(0xc0)
145 #define POW_WQ_INT_THR9_OFFSET UINT64_C(0xc8)
146 #define POW_WQ_INT_THR10_OFFSET UINT64_C(0xd0)
147 #define POW_WQ_INT_THR11_OFFSET UINT64_C(0xd8)
148 #define POW_WQ_INT_THR12_OFFSET UINT64_C(0xe0)
149 #define POW_WQ_INT_THR13_OFFSET UINT64_C(0xe8)
150 #define POW_WQ_INT_THR14_OFFSET UINT64_C(0xf0)
151 #define POW_WQ_INT_THR15_OFFSET UINT64_C(0xf8)
152 #define POW_WQ_INT_CNT0_OFFSET UINT64_C(0x100)
153 #define POW_WQ_INT_CNT1_OFFSET UINT64_C(0x108)
154 #define POW_WQ_INT_CNT2_OFFSET UINT64_C(0x110)
155 #define POW_WQ_INT_CNT3_OFFSET UINT64_C(0x118)
156 #define POW_WQ_INT_CNT4_OFFSET UINT64_C(0x120)
157 #define POW_WQ_INT_CNT5_OFFSET UINT64_C(0x128)
158 #define POW_WQ_INT_CNT6_OFFSET UINT64_C(0x130)
159 #define POW_WQ_INT_CNT7_OFFSET UINT64_C(0x138)
160 #define POW_WQ_INT_CNT8_OFFSET UINT64_C(0x140)
161 #define POW_WQ_INT_CNT9_OFFSET UINT64_C(0x148)
162 #define POW_WQ_INT_CNT10_OFFSET UINT64_C(0x150)
163 #define POW_WQ_INT_CNT11_OFFSET UINT64_C(0x158)
164 #define POW_WQ_INT_CNT12_OFFSET UINT64_C(0x160)
165 #define POW_WQ_INT_CNT13_OFFSET UINT64_C(0x168)
166 #define POW_WQ_INT_CNT14_OFFSET UINT64_C(0x170)
167 #define POW_WQ_INT_CNT15_OFFSET UINT64_C(0x178)
168 #define POW_QOS_THR0_OFFSET UINT64_C(0x180)
169 #define POW_QOS_THR1_OFFSET UINT64_C(0x188)
170 #define POW_QOS_THR2_OFFSET UINT64_C(0x190)
171 #define POW_QOS_THR3_OFFSET UINT64_C(0x198)
172 #define POW_QOS_THR4_OFFSET UINT64_C(0x1a0)
173 #define POW_QOS_THR5_OFFSET UINT64_C(0x1a8)
174 #define POW_QOS_THR6_OFFSET UINT64_C(0x1b0)
175 #define POW_QOS_THR7_OFFSET UINT64_C(0x1b8)
176 #define POW_QOS_RND0_OFFSET UINT64_C(0x1c0)
177 #define POW_QOS_RND1_OFFSET UINT64_C(0x1c8)
178 #define POW_QOS_RND2_OFFSET UINT64_C(0x1d0)
179 #define POW_QOS_RND3_OFFSET UINT64_C(0x1d8)
180 #define POW_QOS_RND4_OFFSET UINT64_C(0x1e0)
181 #define POW_QOS_RND5_OFFSET UINT64_C(0x1e8)
182 #define POW_QOS_RND6_OFFSET UINT64_C(0x1f0)
183 #define POW_QOS_RND7_OFFSET UINT64_C(0x1f8)
184 #define POW_WQ_INT_OFFSET UINT64_C(0x200)
185 #define POW_WQ_INT_PC_OFFSET UINT64_C(0x208)
186 #define POW_NW_TIM_OFFSET UINT64_C(0x210)
187 #define POW_ECC_ERR_OFFSET UINT64_C(0x218)
188 #define POW_NOS_CNT_OFFSET UINT64_C(0x220)
189 #define POW_WS_PC0_OFFSET UINT64_C(0x280)
190 #define POW_WS_PC1_OFFSET UINT64_C(0x288)
191 #define POW_WS_PC2_OFFSET UINT64_C(0x290)
192 #define POW_WS_PC3_OFFSET UINT64_C(0x298)
193 #define POW_WS_PC4_OFFSET UINT64_C(0x2a0)
194 #define POW_WS_PC5_OFFSET UINT64_C(0x2a8)
195 #define POW_WS_PC6_OFFSET UINT64_C(0x2b0)
196 #define POW_WS_PC7_OFFSET UINT64_C(0x2b8)
197 #define POW_WS_PC8_OFFSET UINT64_C(0x2c0)
198 #define POW_WS_PC9_OFFSET UINT64_C(0x2c8)
199 #define POW_WS_PC10_OFFSET UINT64_C(0x2d0)
200 #define POW_WS_PC11_OFFSET UINT64_C(0x2d8)
201 #define POW_WS_PC12_OFFSET UINT64_C(0x2e0)
202 #define POW_WS_PC13_OFFSET UINT64_C(0x2e8)
203 #define POW_WS_PC14_OFFSET UINT64_C(0x2f0)
204 #define POW_WS_PC15_OFFSET UINT64_C(0x2f8)
205 #define POW_WA_PC0_OFFSET UINT64_C(0x300)
206 #define POW_WA_PC1_OFFSET UINT64_C(0x308)
207 #define POW_WA_PC2_OFFSET UINT64_C(0x310)
208 #define POW_WA_PC3_OFFSET UINT64_C(0x318)
209 #define POW_WA_PC4_OFFSET UINT64_C(0x320)
210 #define POW_WA_PC5_OFFSET UINT64_C(0x328)
211 #define POW_WA_PC6_OFFSET UINT64_C(0x330)
212 #define POW_WA_PC7_OFFSET UINT64_C(0x338)
213 #define POW_IQ_CNT0_OFFSET UINT64_C(0x340)
214 #define POW_IQ_CNT1_OFFSET UINT64_C(0x348)
215 #define POW_IQ_CNT2_OFFSET UINT64_C(0x350)
216 #define POW_IQ_CNT3_OFFSET UINT64_C(0x358)
217 #define POW_IQ_CNT4_OFFSET UINT64_C(0x360)
218 #define POW_IQ_CNT5_OFFSET UINT64_C(0x368)
219 #define POW_IQ_CNT6_OFFSET UINT64_C(0x370)
220 #define POW_IQ_CNT7_OFFSET UINT64_C(0x378)
221 #define POW_WA_COM_PC_OFFSET UINT64_C(0x380)
222 #define POW_IQ_COM_CNT_OFFSET UINT64_C(0x388)
223 #define POW_TS_PC_OFFSET UINT64_C(0x390)
224 #define POW_DS_PC_OFFSET UINT64_C(0x398)
225 #define POW_BIST_STAT_OFFSET UINT64_C(0x3f8)
226
227 /* ---- register bits */
228
229 #define POW_PP_GRP_MSKX_XXX_63_16 UINT64_C(0xffffffffffff0000)
230 #define POW_PP_GRP_MSKX_GRP_MSK UINT64_C(0x000000000000ffff)
231
232 #define POW_WQ_INT_THRX_XXX_63_29 UINT64_C(0xffffffffe0000000)
233 #define POW_WQ_INT_THRX_TC_EN UINT64_C(0x0000000010000000)
234 #define POW_WQ_INT_THRX_TC_THR UINT64_C(0x000000000f000000)
235 #define POW_WQ_INT_THRX_XXX_23_18 UINT64_C(0x0000000000fc0000)
236 #define POW_WQ_INT_THRX_DS_THR UINT64_C(0x000000000003f000)
237 #define POW_WQ_INT_THRX_XXX_11_6 UINT64_C(0x0000000000000fc0)
238 #define POW_WQ_INT_THRX_IQ_THR UINT64_C(0x000000000000003f)
239
240 #define POW_WQ_INT_CNTX_XXX_63_28 UINT64_C(0xfffffffff0000000)
241 #define POW_WQ_INT_CNTX_TC_CNT UINT64_C(0x000000000f000000)
242 #define POW_WQ_INT_CNTX_XXX_23_18 UINT64_C(0x0000000000fc0000)
243 #define POW_WQ_INT_CNTX_DS_CNT UINT64_C(0x000000000003f000)
244 #define POW_WQ_INT_CNTX_XXX_11_6 UINT64_C(0x0000000000000fc0)
245 #define POW_WQ_INT_CNTX_IQ_CNT UINT64_C(0x000000000000003f)
246
247 #define POW_QOS_THRX_XXX_63_55 UINT64_C(0xff80000000000000)
248 #define POW_QOS_THRX_DES_CNT UINT64_C(0x007f000000000000)
249 #define POW_QOS_THRX_XXX_47_43 UINT64_C(0x0000f80000000000)
250 #define POW_QOS_THRX_BUF_CNT UINT64_C(0x000007f000000000)
251 #define POW_QOS_THRX_XXX_35_31 UINT64_C(0x0000000f80000000)
252 #define POW_QOS_THRX_FREE_CNT UINT64_C(0x000000007f000000)
253 #define POW_QOS_THRX_XXX_23_18 UINT64_C(0x0000000000fc0000)
254 #define POW_QOS_THRX_MAX_THR UINT64_C(0x000000000003f000)
255 #define POW_QOS_THRX_XXX_11_6 UINT64_C(0x0000000000000fc0)
256 #define POW_QOS_THRX_MIN_THR UINT64_C(0x000000000000003f)
257
258 #define POW_QOS_RNDX_XXX_63_32 UINT64_C(0xffffffff00000000)
259 #define POW_QOS_RNDX_RND_P3 UINT64_C(0x00000000ff000000)
260 #define POW_QOS_RNDX_RND_P2 UINT64_C(0x0000000000ff0000)
261 #define POW_QOS_RNDX_RND_P1 UINT64_C(0x000000000000ff00)
262 #define POW_QOS_RNDX_RND UINT64_C(0x00000000000000ff)
263
264 #define POW_WQ_INT_XXX_63_32 UINT64_C(0xffffffff00000000)
265 #define POW_WQ_INT_IQ_DIS UINT64_C(0x00000000ffff0000)
266 #define POW_WQ_INT_WQ_INT UINT64_C(0x000000000000ffff)
267
268 #define POW_WQ_INT_PC_XXX_63_60 UINT64_C(0xf000000000000000)
269 #define POW_WQ_INT_PC_PC UINT64_C(0x0fffffff00000000)
270 #define POW_WQ_INT_PC_XXX_31_28 UINT64_C(0x00000000f0000000)
271 #define POW_WQ_INT_PC_PC_THR UINT64_C(0x000000000fffff00)
272 #define POW_WQ_INT_PC_XXX_7_0 UINT64_C(0x00000000000000ff)
273
274 #define POW_NW_TIM_XXX_63_10 UINT64_C(0xfffffffffffffc00)
275 #define POW_NW_TIM_NW_TIM UINT64_C(0x00000000000003ff)
276
277 #define POW_ECC_ERR_XXX_63_45 UINT64_C(0xffffe00000000000)
278 #define POW_ECC_ERR_IOP_IE UINT64_C(0x00001fff00000000)
279 #define POW_ECC_ERR_XXX_31_29 UINT64_C(0x00000000e0000000)
280 #define POW_ECC_ERR_IOP UINT64_C(0x000000001fff0000)
281 #define POW_ECC_ERR_IOP_CSRPEND 28
282 #define POW_ECC_ERR_IOP_DBGPEND 27
283 #define POW_ECC_ERR_IOP_ADDWORK 26
284 #define POW_ECC_ERR_IOP_ILLOP 25
285 #define POW_ECC_ERR_IOP_PEND24 24
286 #define POW_ECC_ERR_IOP_PEND23 23
287 #define POW_ECC_ERR_IOP_PEND22 22
288 #define POW_ECC_ERR_IOP_PEND21 21
289 #define POW_ECC_ERR_IOP_TAGNULL 20
290 #define POW_ECC_ERR_IOP_TAGNULLNULL 19
291 #define POW_ECC_ERR_IOP_ORDATOM 18
292 #define POW_ECC_ERR_IOP_NULL 17
293 #define POW_ECC_ERR_IOP_NULLNULL 16
294 #define POW_ECC_ERR_XXX_15_14 UINT64_C(0x000000000000c000)
295 #define POW_ECC_ERR_RPE_IE UINT64_C(0x0000000000002000)
296 #define POW_ECC_ERR_RPE UINT64_C(0x0000000000001000)
297 #define POW_ECC_ERR_XXX_11_9 UINT64_C(0x0000000000000e00)
298 #define POW_ECC_ERR_SYN UINT64_C(0x00000000000001f0)
299 #define POW_ECC_ERR_DBE_IE UINT64_C(0x0000000000000008)
300 #define POW_ECC_ERR_SBE_IE UINT64_C(0x0000000000000004)
301 #define POW_ECC_ERR_DBE UINT64_C(0x0000000000000002)
302 #define POW_ECC_ERR_SBE UINT64_C(0x0000000000000001)
303
304 #define POW_NOS_CNT_XXX_63_7 UINT64_C(0xffffffffffffff80)
305 #define POW_NOS_CNT_NOS_CNT UINT64_C(0x000000000000007f)
306
307 #define POW_WS_PC0_XXX_63_32 UINT64_C(0xffffffff00000000)
308 #define POW_WS_PC0_WS_PC UINT64_C(0x00000000ffffffff)
309
310 #define POW_WA_PC0_XXX_63_32 UINT64_C(0xffffffff00000000)
311 #define POW_WA_PC0_WA_PC UINT64_C(0x00000000ffffffff)
312
313 #define POW_IQ_CNT0_XXX_63_32 UINT64_C(0xffffffff00000000)
314 #define POW_IQ_CNT0_IQ_CNT UINT64_C(0x00000000ffffffff)
315
316 #define POW_WA_COM_PC_XXX_63_32 UINT64_C(0xffffffff00000000)
317 #define POW_WA_COM_PC_WA_PC UINT64_C(0x00000000ffffffff)
318
319 #define POW_WQ_COM_CNT_XXX_63_32 UINT64_C(0xffffffff00000000)
320 #define POW_WQ_COM_CNT_IQ_CNT UINT64_C(0x00000000ffffffff)
321
322 #define POW_TS_PC_XXX_63_32 UINT64_C(0xffffffff00000000)
323 #define POW_TS_PC_TS_PC UINT64_C(0x00000000ffffffff)
324
325 #define POW_DS_PC_XXX_63_32 UINT64_C(0xffffffff00000000)
326 #define POW_DS_PC_DS_PC UINT64_C(0x00000000ffffffff)
327
328 #define POW_BIST_STAT_XXX_63_7 UINT64_C(0xfffffffffffe0000)
329 #define POW_BIST_STAT_PP UINT64_C(0x0000000000010000)
330 #define POW_BIST_STAT_XXX_15_9 UINT64_C(0x000000000000fe00)
331 #define POW_BIST_STAT_CAM UINT64_C(0x0000000000000100)
332 #define POW_BIST_STAT_NBT1 UINT64_C(0x0000000000000080)
333 #define POW_BIST_STAT_NBT0 UINT64_C(0x0000000000000040)
334 #define POW_BIST_STAT_IDX UINT64_C(0x0000000000000020)
335 #define POW_BIST_STAT_FIDX UINT64_C(0x0000000000000010)
336 #define POW_BIST_STAT_NBR1 UINT64_C(0x0000000000000008)
337 #define POW_BIST_STAT_NBR0 UINT64_C(0x0000000000000004)
338 #define POW_BIST_STAT_PEND UINT64_C(0x0000000000000002)
339 #define POW_BIST_STAT_ADR UINT64_C(0x0000000000000001)
340
341 /* ---- pow operations */
342
343 /* -- pow load operations */
344
345 /* get work load */
346 #define POW_OP_SUBDID_GET_WORK 0
347 #define POW_GET_WORK_LOAD_WAIT UINT64_C(0x0000000000000008)
348
349 /* pow status load */
350 #define POW_OP_SUBDID_STATUS_LOAD 1
351 #define POW_STATUS_LOAD_COREID UINT64_C(0x00000000000003c0)
352 #define POW_STATUS_LOAD_GET_REV UINT64_C(0x0000000000000020)
353 #define POW_STATUS_LOAD_GET_CUR UINT64_C(0x0000000000000010)
354 #define POW_STATUS_LOAD_GET_WQP UINT64_C(0x0000000000000008)
355 #define POW_STATUS_LOAD_GET_2_0 UINT64_C(0x0000000000000007)
356
357 /* get_cur = 0 and get_wqp = 0 ("pend_tag") */
358 #define POW_STATUS_LOAD_RESULT_PEND_TAG_XXX_63_62 UINT64_C(0xc000000000000000)
359 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_SWITCH UINT64_C(0x2000000000000000)
360 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_SWITCH_FULL UINT64_C(0x1000000000000000)
361 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_SWITCH_NULL UINT64_C(0x0800000000000000)
362 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_DESCHED UINT64_C(0x0400000000000000)
363 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_DESCHED_SWITCH UINT64_C(0x0200000000000000)
364 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NOSCHED UINT64_C(0x0100000000000000)
365 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NEW_WORK UINT64_C(0x0080000000000000)
366 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NEW_WORK_WAIT UINT64_C(0x0040000000000000)
367 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NULL_RD UINT64_C(0x0020000000000000)
368 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_NOSCHED_CLR UINT64_C(0x0010000000000000)
369 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_XXX_51 UINT64_C(0x0008000000000000)
370 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_INDEX UINT64_C(0x0007ff0000000000)
371 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_GRP UINT64_C(0x000000f000000000)
372 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_XXX_35_34 UINT64_C(0x0000000c00000000)
373 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_TYPE UINT64_C(0x0000000300000000)
374 #define POW_STATUS_LOAD_RESULT_PEND_TAG_PEND_TAG UINT64_C(0x00000000ffffffff)
375 #define POW_STATUS_LOAD_RESULT_PEND_TAG_BITS \
376 "\177" /* new format */ \
377 "\020" /* hex display */ \
378 "\020" /* %016x format */ \
379 "b\x3d" "PEND_SWITCH\0" \
380 "b\x3c" "PEND_SWITCH_FULL\0" \
381 "b\x3b" "PEND_SWITCH_NULL\0" \
382 "b\x3a" "PEND_DESCHED\0" \
383 "b\x39" "PEND_DESCHED_SWITCH\0" \
384 "b\x38" "PEND_NOSCHED\0" \
385 "b\x37" "PEND_NEW_WORK\0" \
386 "b\x36" "PEND_NEW_WORK_WAIT\0" \
387 "b\x35" "PEND_NULL_RD\0" \
388 "b\x34" "PEND_NOSCHED_CLR\0" \
389 "f\x28\x0b" "PEND_INDEX\0" \
390 "f\x24\x04" "PEND_GRP\0" \
391 "f\x20\x02" "PEND_TYPE\0" \
392 "f\x00\x20" "PEND_TAG\0"
393
394 /* get_cur = 0 and get_wqp = 1 ("pend_wqp") */
395 #define POW_STATUS_LOAD_RESULT_PEND_WQP_XXX_63_62 UINT64_C(0xc000000000000000)
396 #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_SWITCH UINT64_C(0x2000000000000000)
397 #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_SWITCH_FULL UINT64_C(0x1000000000000000)
398 #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_SWITCH_NULL UINT64_C(0x0800000000000000)
399 #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_DESCHED UINT64_C(0x0400000000000000)
400 #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_DESCHED_SWITCH UINT64_C(0x0200000000000000)
401 #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NOSCHED UINT64_C(0x0100000000000000)
402 #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NEW_WORK UINT64_C(0x0080000000000000)
403 #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NEW_WORK_WAIT UINT64_C(0x0040000000000000)
404 #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NULL_RD UINT64_C(0x0020000000000000)
405 #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_NOSCHED_CLR UINT64_C(0x0010000000000000)
406 #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_XXX_51 UINT64_C(0x0008000000000000)
407 #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_INDEX UINT64_C(0x0007ff0000000000)
408 #define POW_STATUS_LOAD_RESULT_PEND_WQP_PEND_WQP UINT64_C(0x0000000fffffffff)
409 #define POW_STATUS_LOAD_RESULT_PEND_WQP_BITS \
410 "\177" /* new format */ \
411 "\020" /* hex display */ \
412 "\020" /* %016x format */ \
413 "b\x3d" "PEND_SWITCH\0" \
414 "b\x3c" "PEND_SWITCH_FULL\0" \
415 "b\x3b" "PEND_SWITCH_NULL\0" \
416 "b\x3a" "PEND_DESCHED\0" \
417 "b\x39" "PEND_DESCHED_SWITCH\0" \
418 "b\x38" "PEND_NOSCHED\0" \
419 "b\x37" "PEND_NEW_WORK\0" \
420 "b\x36" "PEND_NEW_WORK_WAIT\0" \
421 "b\x35" "PEND_NULL_RD\0" \
422 "b\x34" "PEND_NOSCHED_CLR\0" \
423 "f\x28\x0b" "PEND_INDEX\0" \
424 "f\x00\x24" "PEND_WQP\0"
425
426 /* get_cur = 1 and get_wqp = 0 and get_rev = 0 ("cur_tag_next") */
427 #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_XXX_63_62 UINT64_C(0xc000000000000000)
428 #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_LINK_INDEX UINT64_C(0x3ff8000000000000)
429 #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_INDEX UINT64_C(0x0007ff0000000000)
430 #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_GRP UINT64_C(0x000000f000000000)
431 #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_HEAD UINT64_C(0x0000000800000000)
432 #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_TAIL UINT64_C(0x0000000400000000)
433 #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_TAG_TYPE UINT64_C(0x0000000300000000)
434 #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_TAG UINT64_C(0x00000000ffffffff)
435 #define POW_STATUS_LOAD_RESULT_CUR_TAG_NEXT_BITS \
436 "\177" /* new format */ \
437 "\020" /* hex display */ \
438 "\020" /* %016x format */ \
439 "f\x33\x0b" "LINK_INDEX\0" \
440 "f\x28\x0b" "INDEX\0" \
441 "f\x24\x04" "GRP\0" \
442 "b\x23" "HEAD\0" \
443 "b\x22" "TAIL\0" \
444 "f\x20\x02" "TAG_TYPE\0" \
445 "f\x00\x20" "TAG\0"
446
447 /* get_cur = 1 and get_wqp = 0 and get_rev = 1 ("cur_tag_prev") */
448 #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_XXX_63_62 UINT64_C(0xc000000000000000)
449 #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_REVLINK_INDEX UINT64_C(0x3ff8000000000000)
450 #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_INDEX UINT64_C(0x0007ff0000000000)
451 #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_GRP UINT64_C(0x000000f000000000)
452 #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_HEAD UINT64_C(0x0000000800000000)
453 #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_TAIL UINT64_C(0x0000000400000000)
454 #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_TAG_TYPE UINT64_C(0x0000000300000000)
455 #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_TAG UINT64_C(0x00000000ffffffff)
456 #define POW_STATUS_LOAD_RESULT_CUR_TAG_PREV_BITS \
457 "\177" /* new format */ \
458 "\020" /* hex display */ \
459 "\020" /* %016x format */ \
460 "f\x33\x0b" "REVLINK_INDEX\0" \
461 "f\x28\x0b" "INDEX\0" \
462 "f\x24\x04" "GRP\0" \
463 "b\x23" "HEAD\0" \
464 "b\x22" "TAIL\0" \
465 "f\x20\x02" "TAG_TYPE\0" \
466 "f\x00\x20" "TAG\0"
467
468 /* get_cur = 1 and get_wqp = 1 and get_rev = 0 ("cur_wqp_next") */
469 #define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_XXX_63_62 UINT64_C(0xc000000000000000)
470 #define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_LINK_INDEX UINT64_C(0x3ff8000000000000)
471 #define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_INDEX UINT64_C(0x0007ff0000000000)
472 #define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_GRP UINT64_C(0x000000f000000000)
473 #define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_WQP UINT64_C(0x0000000fffffffff)
474 #define POW_STATUS_LOAD_RESULT_CUR_WQP_NEXT_BITS \
475 "\177" /* new format */ \
476 "\020" /* hex display */ \
477 "\020" /* %016x format */ \
478 "f\x33\x0b" "LINK_INDEX\0" \
479 "f\x28\x0b" "INDEX\0" \
480 "f\x24\x04" "GRP\0" \
481 "f\x00\x24" "WQP\0"
482
483 /* get_cur = 1 and get_wqp = 1 and get_rev = 1 ("cur_wqp_prev") */
484 #define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_XXX_63_62 UINT64_C(0xc000000000000000)
485 #define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_REVLINK_INDEX UINT64_C(0x3ff8000000000000)
486 #define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_INDEX UINT64_C(0x0007ff0000000000)
487 #define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_GRP UINT64_C(0x000000f000000000)
488 #define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_WQP UINT64_C(0x0000000fffffffff)
489 #define POW_STATUS_LOAD_RESULT_CUR_WQP_PREV_BITS \
490 "\177" /* new format */ \
491 "\020" /* hex display */ \
492 "\020" /* %016x format */ \
493 "f\x33\x0b" "REVLINK_INDEX\0" \
494 "f\x28\x0b" "INDEX\0" \
495 "f\x24\x04" "GRP\0" \
496 "f\x00\x24" "WQP\0"
497
498 /* pow memory load */
499 #define POW_OP_SUBDID_MEMORY_LOAD 2
500 #define POW_MEMORY_LOAD_INDEX UINT64_C(0x000000000000ffe0)
501 #define POW_MEMORY_LOAD_GET_DES UINT64_C(0x0000000000000010)
502 #define POW_MEMORY_LOAD_GET_WQP UINT64_C(0x0000000000000008)
503 #define POW_MEMORY_LOAD_2_0 UINT64_C(0x0000000000000007)
504
505 /* get_des = 0 and get_wqp = 0 ("tag") */
506 #define POW_MEMORY_LOAD_RESULT_TAG_XXX_63_51 UINT64_C(0xfff8000000000000)
507 #define POW_MEMORY_LOAD_RESULT_TAG_NEXT_INDEX UINT64_C(0x0007ff0000000000)
508 #define POW_MEMORY_LOAD_RESULT_TAG_GRP UINT64_C(0x000000f000000000)
509 #define POW_MEMORY_LOAD_RESULT_TAG_XXX_35 UINT64_C(0x0000000800000000)
510 #define POW_MEMORY_LOAD_RESULT_TAG_TAIL UINT64_C(0x0000000400000000)
511 #define POW_MEMORY_LOAD_RESULT_TAG_TAG_TYPE UINT64_C(0x0000000300000000)
512 #define POW_MEMORY_LOAD_RESULT_TAG_TAG UINT64_C(0x00000000ffffffff)
513 #define POW_MEMORY_LOAD_RESULT_TAG_BITS \
514 "\177" /* new format */ \
515 "\020" /* hex display */ \
516 "\020" /* %016x format */ \
517 "f\x28\x0b" "NEXT_INDEX\0" \
518 "f\x24\x04" "GRP\0" \
519 "b\x22" "TAIL\0" \
520 "f\x20\x02" "TAG_TYPE\0" \
521 "f\x00\x20" "TAG\0"
522
523 /* get_des = 0 and get_wqp = 1 ("wqp") */
524 #define POW_MEMORY_LOAD_RESULT_WQP_XXX_63_51 UINT64_C(0xfff8000000000000)
525 #define POW_MEMORY_LOAD_RESULT_WQP_NEXT_INDEX UINT64_C(0x0007ff0000000000)
526 #define POW_MEMORY_LOAD_RESULT_WQP_GRP UINT64_C(0x000000f000000000)
527 #define POW_MEMORY_LOAD_RESULT_WQP_WQP UINT64_C(0x0000000fffffffff)
528 #define POW_MEMORY_LOAD_RESULT_WQP_BITS \
529 "\177" /* new format */ \
530 "\020" /* hex display */ \
531 "\020" /* %016x format */ \
532 "f\x28\x0b" "NEXT_INDEX\0" \
533 "f\x24\x04" "GRP\0" \
534 "f\x00\x24" "WQP\0"
535
536 /* get_des = 1 ("desched") */
537 #define POW_MEMORY_LOAD_RESULT_DESCHED_XXX_63_51 UINT64_C(0xfff8000000000000)
538 #define POW_MEMORY_LOAD_RESULT_DESCHED_FWD_INDEX UINT64_C(0x0007ff0000000000)
539 #define POW_MEMORY_LOAD_RESULT_DESCHED_GRP UINT64_C(0x000000f000000000)
540 #define POW_MEMORY_LOAD_RESULT_DESCHED_NOSCHED UINT64_C(0x0000000800000000)
541 #define POW_MEMORY_LOAD_RESULT_DESCHED_PEND_SWITCH UINT64_C(0x0000000400000000)
542 #define POW_MEMORY_LOAD_RESULT_DESCHED_PEND_TYPE UINT64_C(0x0000000300000000)
543 #define POW_MEMORY_LOAD_RESULT_DESCHED_PEND_TAG UINT64_C(0x00000000ffffffff)
544 #define POW_MEMORY_LOAD_RESULT_DESCHED_BITS \
545 "\177" /* new format */ \
546 "\020" /* hex display */ \
547 "\020" /* %016x format */ \
548 "f\x28\x0b" "FWD_INDEX\0" \
549 "f\x24\x04" "GRP\0" \
550 "b\x23" "NOSCHED\0" \
551 "b\x22" "PEND_SWITCH\0" \
552 "f\x20\x02" "PEND_TYPE\0" \
553 "f\x00\x20" "PEND_TAG\0"
554
555 /* pow index/pointer load */
556 #define POW_OP_SUBDID_IDXPTR_LOAD 3
557
558 #define POW_IDXPTR_LOAD_QOSGRP UINT64_C(0x00000000000001e0)
559 #define POW_IDXPTR_LOAD_GET_DES_GET_TAIL UINT64_C(0x0000000000000010)
560 #define POW_IDXPTR_LOAD_GET_RMT UINT64_C(0x0000000000000008)
561 #define POW_IDXPTR_LOAD_2_0 UINT64_C(0x0000000000000007)
562
563 /* get_rmt = 0 and get_des_get_tail = 0 ("qos") */
564 #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_63_52 UINT64_C(0xfff0000000000000)
565 #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_FREE_VAL UINT64_C(0x0008000000000000)
566 #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_FREE_ONE UINT64_C(0x0004000000000000)
567 #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_49 UINT64_C(0x0002000000000000)
568 #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_FREE_HEAD UINT64_C(0x0001ffc000000000)
569 #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_37 UINT64_C(0x0000002000000000)
570 #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_FREE_TAIL UINT64_C(0x0000001ffc000000)
571 #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_LOC_VAL UINT64_C(0x0000000002000000)
572 #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_LOC_ONE UINT64_C(0x0000000001000000)
573 #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_23 UINT64_C(0x0000000000800000)
574 #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_LOC_HEAD UINT64_C(0x00000000007ff000)
575 #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_XXX_11 UINT64_C(0x0000000000000800)
576 #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_LOC_TAIL UINT64_C(0x00000000000007ff)
577 #define POW_IDXPTR_LOAD_RESULT_QOS_FREE_LOC_BITS \
578 "\177" /* new format */ \
579 "\020" /* hex display */ \
580 "\020" /* %016x format */ \
581 "b\x33" "FREE_VAL\0" \
582 "b\x32" "FREE_ONE\0" \
583 "f\x26\x0b" "FREE_HEAD\0" \
584 "f\x1a\x0b" "FREE_TAIL\0" \
585 "b\x19" "LOC_VAL\0" \
586 "b\x18" "LOC_ONE\0" \
587 "f\x0c\x0b" "LOC_HEAD\0" \
588 "f\x00\x0b" "LOC_TAIL\0"
589
590 /* get_rmt = 0 and get_des_get_tail = 1 ("desched") */
591 #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_63_52 UINT64_C(0xfff0000000000000)
592 #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_NOSCHED_VAL UINT64_C(0x0008000000000000)
593 #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_NOSCHED_ONE UINT64_C(0x0004000000000000)
594 #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_49 UINT64_C(0x0002000000000000)
595 #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_NOSCHED_HEAD UINT64_C(0x0001ffc000000000)
596 #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_37 UINT64_C(0x0000002000000000)
597 #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_NOSCHED_TAIL UINT64_C(0x0000001ffc000000)
598 #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_DES_VAL UINT64_C(0x0000000002000000)
599 #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_DES_ONE UINT64_C(0x0000000001000000)
600 #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_23 UINT64_C(0x0000000000800000)
601 #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_DES_HEAD UINT64_C(0x00000000007ff000)
602 #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_XXX_11 UINT64_C(0x0000000000000800)
603 #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_DES_TAIL UINT64_C(0x00000000000007ff)
604 #define POW_IDXPTR_LOAD_RESULT_GRP_NOSCHED_DES_BITS \
605 "\177" /* new format */ \
606 "\020" /* hex display */ \
607 "\020" /* %016x format */ \
608 "b\x33" "NOSCHED_VAL\0" \
609 "b\x32" "NOSCHED_ONE\0" \
610 "f\x26\x0b" "NOSCHED_HEAD\0" \
611 "f\x1a\x0b" "NOSCHED_TAIL\0" \
612 "b\x19" "DES_VAL\0" \
613 "b\x18" "DES_ONE\0" \
614 "f\x0c\x0b" "DES_HEAD\0" \
615 "f\x00\x0b" "DES_TAIL\0"
616
617 /* get_rmt = 1 and get_des_get_tail = 0 ("remote_head") */
618 #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_XXX_63_39 UINT64_C(0xffffff8000000000)
619 #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_RMT_IS_HEAD UINT64_C(0x0000004000000000)
620 #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_RMT_VAL UINT64_C(0x0000002000000000)
621 #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_RMT_ONE UINT64_C(0x0000001000000000)
622 #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_RMT_HEAD UINT64_C(0x0000000fffffffff)
623 #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_HEAD_BITS \
624 "\177" /* new format */ \
625 "\020" /* hex display */ \
626 "\020" /* %016x format */ \
627 "b\x26" "RMT_IS_HEAD\0" \
628 "b\x25" "RMT_VAL\0" \
629 "b\x24" "RMT_ONE\0" \
630 "f\x00\x24" "RMT_HEAD\0"
631
632 /* get_rmt = 1 and get_des_get_tail = 1 ("remote_tail") */
633 #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_XXX_63_39 UINT64_C(0xffffff8000000000)
634 #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_RMT_IS_HEAD UINT64_C(0x0000004000000000)
635 #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_RMT_VAL UINT64_C(0x0000002000000000)
636 #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_RMT_ONE UINT64_C(0x0000001000000000)
637 #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_RMT_TAIL UINT64_C(0x0000000fffffffff)
638 #define POW_IDXPTR_LOAD_RESULT_QUEUE_REMOTE_TAIL_BITS \
639 "\177" /* new format */ \
640 "\020" /* hex display */ \
641 "\020" /* %016x format */ \
642 "b\x26" "RMT_IS_HEAD\0" \
643 "b\x25" "RMT_VAL\0" \
644 "b\x24" "RMT_ONE\0" \
645 "f\x00\x24" "RMT_TAIL\0"
646
647 /* pow null rd */
648 #define POW_OP_SUBDID_NULL_RD 4
649 #define POW_NULL_RD_LOAD_39_3 UINT64_C(0x000000fffffffff8)
650 #define POW_NULL_RD_LOAD_2_0 UINT64_C(0x0000000000000007)
651
652 #define POW_NULL_RD_LOAD_RESULT_63_2 UINT64_C(0xfffffffffffffffc)
653 #define POW_NULL_RD_LOAD_RESULT_STATUS UINT64_C(0x0000000000000003)
654
655 /* -- pow iobdma operations */
656
657 #define POW_MAJOR_DID 0xc
658 #define POW_IOBDMA_LEN 1 /* always 1 for POW */
659
660 /* pow iobdma get work */
661 #define POW_IOBDMA_SUBDID_GET_WORK POW_OP_SUBDID_GET_WORK
662 #define POW_IOBDMA_GET_WORK_WAIT UINT64_C(0x0000000000000008)
663
664 #define POW_IOBDMA_GET_WORK_RESULT_NO_WORK UINT64_C(0x8000000000000000)
665 #define POW_IOBDMA_GET_WORK_RESULT_ADDR UINT64_C(0x000000ffffffffff)
666
667 /* pow iobdma null rd */
668 #define POW_IOBDMA_SUBDID_NULL_RD POW_OP_SUBDID_NULL_RD
669 #define POW_IOBDMA_NULL_RD_RESULT_STATUS UINT64_C(0x0000000000000003)
670
671 /* -- pow store operations */
672 /* pow store operations */
673 #define POW_STORE_SUBDID_SWTAG_FULL 0
674 #define POW_STORE_SUBDID_DESCHED 3
675 #define POW_STORE_SUBDID_OTHER 1
676
677 #define POW_PHY_ADDR_STORE_ADDR UINT64_C(0x0000000fffffffff)
678
679 #define POW_STORE_DATA_NO_SCHED UINT64_C(0x8000000000000000)
680 #define POW_STORE_DATA_62_61 UINT64_C(0x6000000000000000)
681 #define POW_STORE_DATA_INDEX UINT64_C(0x1fff000000000000)
682 #define POW_STORE_DATA_OP UINT64_C(0x0000f00000000000)
683 #define POW_STORE_DATA_43_42 UINT64_C(0x00000c0000000000)
684 #define POW_STORE_DATA_QOS UINT64_C(0x0000038000000000)
685 #define POW_STORE_DATA_GRP UINT64_C(0x0000007800000000)
686 #define POW_STORE_DATA_TYPE UINT64_C(0x0000000700000000)
687 #define POW_STORE_DATA_TAG UINT64_C(0x00000000ffffffff)
688
689 /* ------------------------------------------------------------------------- */
690
691 /* Work Queue Entry */
692
693 #define POW_WQE_WORD0_XXX_63_40 UINT64_C(0xffffff0000000000)
694 #define POW_WQE_WORD0_NEXT UINT64_C(0x000000ffffffffff)
695 #define POW_WQE_WORD0_BITS \
696 "\177" /* new format */ \
697 "\020" /* hex display */ \
698 "\020" /* %016x format */ \
699 "f\x00\x28" "NEXT\0"
700
701 #define POW_WQE_WORD1_XXX_63_42 UINT64_C(0xfffffc0000000000)
702 #define POW_WQE_WORD1_QOS UINT64_C(0x0000038000000000)
703 #define POW_WQE_WORD1_GRP UINT64_C(0x0000007800000000)
704 #define POW_WQE_WORD1_TT UINT64_C(0x0000000700000000)
705 #define POW_WQE_WORD1_TAG UINT64_C(0x00000000ffffffff)
706 #define POW_WQE_WORD1_BITS \
707 "\177" /* new format */ \
708 "\020" /* hex display */ \
709 "\020" /* %016x format */ \
710 "f\x27\x03" "QOS\0" \
711 "f\x23\x04" "GRP\0" \
712 "f\x20\x03" "TT\0" \
713 "f\x00\x20" "TAG\0"
714
715 /* ------------------------------------------------------------------------- */
716
717 /* for snprintb(9) */
718
719 #define POW_PP_GRP_MSKX_BITS \
720 "\177" /* new format */ \
721 "\020" /* hex display */ \
722 "\020" /* %016x format */ \
723 "f\x00\x10" "GRP_MSK\0"
724 #define POW_PP_GRP_MSK0_BITS POW_PP_GRP_MSKX_BITS
725 #define POW_PP_GRP_MSK1_BITS POW_PP_GRP_MSKX_BITS
726 #define POW_WQ_INT_THRX_BITS \
727 "\177" /* new format */ \
728 "\020" /* hex display */ \
729 "\020" /* %016x format */ \
730 "b\x1c" "TC_EN\0" \
731 "f\x18\x04" "TC_THR\0" \
732 "f\x0c\x06" "DS_THR\0" \
733 "f\x00\x06" "IQ_THR\0"
734 #define POW_WQ_INT_THR0_BITS POW_WQ_INT_THRX_BITS
735 #define POW_WQ_INT_THR1_BITS POW_WQ_INT_THRX_BITS
736 #define POW_WQ_INT_THR2_BITS POW_WQ_INT_THRX_BITS
737 #define POW_WQ_INT_THR3_BITS POW_WQ_INT_THRX_BITS
738 #define POW_WQ_INT_THR4_BITS POW_WQ_INT_THRX_BITS
739 #define POW_WQ_INT_THR5_BITS POW_WQ_INT_THRX_BITS
740 #define POW_WQ_INT_THR6_BITS POW_WQ_INT_THRX_BITS
741 #define POW_WQ_INT_THR7_BITS POW_WQ_INT_THRX_BITS
742 #define POW_WQ_INT_THR8_BITS POW_WQ_INT_THRX_BITS
743 #define POW_WQ_INT_THR9_BITS POW_WQ_INT_THRX_BITS
744 #define POW_WQ_INT_THR10_BITS POW_WQ_INT_THRX_BITS
745 #define POW_WQ_INT_THR11_BITS POW_WQ_INT_THRX_BITS
746 #define POW_WQ_INT_THR12_BITS POW_WQ_INT_THRX_BITS
747 #define POW_WQ_INT_THR13_BITS POW_WQ_INT_THRX_BITS
748 #define POW_WQ_INT_THR14_BITS POW_WQ_INT_THRX_BITS
749 #define POW_WQ_INT_THR15_BITS POW_WQ_INT_THRX_BITS
750 #define POW_WQ_INT_CNTX_BITS \
751 "\177" /* new format */ \
752 "\020" /* hex display */ \
753 "\020" /* %016x format */ \
754 "f\x18\x04" "TC_CNT\0" \
755 "f\x0c\x06" "DS_CNT\0" \
756 "f\x00\x06" "IQ_CNT\0"
757 #define POW_WQ_INT_CNT0_BITS POW_WQ_INT_CNTX_BITS
758 #define POW_WQ_INT_CNT1_BITS POW_WQ_INT_CNTX_BITS
759 #define POW_WQ_INT_CNT2_BITS POW_WQ_INT_CNTX_BITS
760 #define POW_WQ_INT_CNT3_BITS POW_WQ_INT_CNTX_BITS
761 #define POW_WQ_INT_CNT4_BITS POW_WQ_INT_CNTX_BITS
762 #define POW_WQ_INT_CNT5_BITS POW_WQ_INT_CNTX_BITS
763 #define POW_WQ_INT_CNT6_BITS POW_WQ_INT_CNTX_BITS
764 #define POW_WQ_INT_CNT7_BITS POW_WQ_INT_CNTX_BITS
765 #define POW_WQ_INT_CNT8_BITS POW_WQ_INT_CNTX_BITS
766 #define POW_WQ_INT_CNT9_BITS POW_WQ_INT_CNTX_BITS
767 #define POW_WQ_INT_CNT10_BITS POW_WQ_INT_CNTX_BITS
768 #define POW_WQ_INT_CNT11_BITS POW_WQ_INT_CNTX_BITS
769 #define POW_WQ_INT_CNT12_BITS POW_WQ_INT_CNTX_BITS
770 #define POW_WQ_INT_CNT13_BITS POW_WQ_INT_CNTX_BITS
771 #define POW_WQ_INT_CNT14_BITS POW_WQ_INT_CNTX_BITS
772 #define POW_WQ_INT_CNT15_BITS POW_WQ_INT_CNTX_BITS
773 #define POW_QOS_THRX_BITS \
774 "\177" /* new format */ \
775 "\020" /* hex display */ \
776 "\020" /* %016x format */ \
777 "f\x30\x07" "DES_CNT\0" \
778 "f\x24\x07" "BUF_CNT\0" \
779 "f\x18\x07" "FREE_CNT\0" \
780 "f\x0c\x06" "MAX_THR\0" \
781 "f\x00\x06" "MIN_THR\0"
782 #define POW_QOS_THR0_BITS POW_QOS_THRX_BITS
783 #define POW_QOS_THR1_BITS POW_QOS_THRX_BITS
784 #define POW_QOS_THR2_BITS POW_QOS_THRX_BITS
785 #define POW_QOS_THR3_BITS POW_QOS_THRX_BITS
786 #define POW_QOS_THR4_BITS POW_QOS_THRX_BITS
787 #define POW_QOS_THR5_BITS POW_QOS_THRX_BITS
788 #define POW_QOS_THR6_BITS POW_QOS_THRX_BITS
789 #define POW_QOS_THR7_BITS POW_QOS_THRX_BITS
790 #define POW_QOS_RNDX_BITS \
791 "\177" /* new format */ \
792 "\020" /* hex display */ \
793 "\020" /* %016x format */ \
794 "f\x18\x08" "RND_P3\0" \
795 "f\x10\x08" "RND_P2\0" \
796 "f\x08\x08" "RND_P1\0" \
797 "f\x00\x08" "RND\0"
798 #define POW_QOS_RND0_BITS POW_QOS_RNDX_BITS
799 #define POW_QOS_RND1_BITS POW_QOS_RNDX_BITS
800 #define POW_QOS_RND2_BITS POW_QOS_RNDX_BITS
801 #define POW_QOS_RND3_BITS POW_QOS_RNDX_BITS
802 #define POW_QOS_RND4_BITS POW_QOS_RNDX_BITS
803 #define POW_QOS_RND5_BITS POW_QOS_RNDX_BITS
804 #define POW_QOS_RND6_BITS POW_QOS_RNDX_BITS
805 #define POW_QOS_RND7_BITS POW_QOS_RNDX_BITS
806 #define POW_WQ_INT_BITS \
807 "\177" /* new format */ \
808 "\020" /* hex display */ \
809 "\020" /* %016x format */ \
810 "f\x10\x10" "IQ_DIS\0" \
811 "f\x00\x10" "WQ_INT\0"
812 #define POW_WQ_INT_PC_BITS \
813 "\177" /* new format */ \
814 "\020" /* hex display */ \
815 "\020" /* %016x format */ \
816 "f\x20\x1c" "PC\0" \
817 "f\x08\x14" "PC_THR\0"
818 #define POW_NW_TIM_BITS \
819 "\177" /* new format */ \
820 "\020" /* hex display */ \
821 "\020" /* %016x format */ \
822 "f\x00\x0a" "NW_TIM\0"
823 #define POW_ECC_ERR_BITS \
824 "\177" /* new format */ \
825 "\020" /* hex display */ \
826 "\020" /* %016x format */ \
827 "f\x20\x0d" "IOP_IE\0" \
828 "f\x10\x0d" "IOP\0" \
829 "b\x0d" "RPE_IE\0" \
830 "b\x0c" "RPE\0" \
831 "f\x04\x05" "SYN\0" \
832 "b\x03" "DBE_IE\0" \
833 "b\x02" "SBE_IE\0" \
834 "b\x01" "DBE\0" \
835 "b\x00" "SBE\0"
836 #define POW_NOS_CNT_BITS \
837 "\177" /* new format */ \
838 "\020" /* hex display */ \
839 "\020" /* %016x format */ \
840 "f\x00\x07" "NOS_CNT\0"
841 #define POW_WS_PCX_BITS \
842 "\177" /* new format */ \
843 "\020" /* hex display */ \
844 "\020" /* %016x format */ \
845
846 #define POW_WS_PC0_BITS POW_WS_PCX_BITS
847 #define POW_WS_PC1_BITS POW_WS_PCX_BITS
848 #define POW_WS_PC2_BITS POW_WS_PCX_BITS
849 #define POW_WS_PC3_BITS POW_WS_PCX_BITS
850 #define POW_WS_PC4_BITS POW_WS_PCX_BITS
851 #define POW_WS_PC5_BITS POW_WS_PCX_BITS
852 #define POW_WS_PC6_BITS POW_WS_PCX_BITS
853 #define POW_WS_PC7_BITS POW_WS_PCX_BITS
854 #define POW_WS_PC8_BITS POW_WS_PCX_BITS
855 #define POW_WS_PC9_BITS POW_WS_PCX_BITS
856 #define POW_WS_PC10_BITS POW_WS_PCX_BITS
857 #define POW_WS_PC11_BITS POW_WS_PCX_BITS
858 #define POW_WS_PC12_BITS POW_WS_PCX_BITS
859 #define POW_WS_PC13_BITS POW_WS_PCX_BITS
860 #define POW_WS_PC14_BITS POW_WS_PCX_BITS
861 #define POW_WS_PC15_BITS POW_WS_PCX_BITS
862 #define POW_WA_PCX_BITS \
863 "\177" /* new format */ \
864 "\020" /* hex display */ \
865 "\020" /* %016x format */ \
866
867 #define POW_WA_PC0_BITS POW_WA_PCX_BITS
868 #define POW_WA_PC1_BITS POW_WA_PCX_BITS
869 #define POW_WA_PC2_BITS POW_WA_PCX_BITS
870 #define POW_WA_PC3_BITS POW_WA_PCX_BITS
871 #define POW_WA_PC4_BITS POW_WA_PCX_BITS
872 #define POW_WA_PC5_BITS POW_WA_PCX_BITS
873 #define POW_WA_PC6_BITS POW_WA_PCX_BITS
874 #define POW_WA_PC7_BITS POW_WA_PCX_BITS
875 #define POW_IQ_CNTX_BITS \
876 "\177" /* new format */ \
877 "\020" /* hex display */ \
878 "\020" /* %016x format */ \
879
880 #define POW_IQ_CNT0_BITS POW_IQ_CNTX_BITS
881 #define POW_IQ_CNT1_BITS POW_IQ_CNTX_BITS
882 #define POW_IQ_CNT2_BITS POW_IQ_CNTX_BITS
883 #define POW_IQ_CNT3_BITS POW_IQ_CNTX_BITS
884 #define POW_IQ_CNT4_BITS POW_IQ_CNTX_BITS
885 #define POW_IQ_CNT5_BITS POW_IQ_CNTX_BITS
886 #define POW_IQ_CNT6_BITS POW_IQ_CNTX_BITS
887 #define POW_IQ_CNT7_BITS POW_IQ_CNTX_BITS
888 #define POW_WA_COM_PC_BITS \
889 "\177" /* new format */ \
890 "\020" /* hex display */ \
891 "\020" /* %016x format */ \
892 "f\x00\x20" "WA_PC\0"
893 #define POW_IQ_COM_CNT_BITS \
894 "\177" /* new format */ \
895 "\020" /* hex display */ \
896 "\020" /* %016x format */ \
897
898 #define POW_TS_PC_BITS \
899 "\177" /* new format */ \
900 "\020" /* hex display */ \
901 "\020" /* %016x format */ \
902 "f\x00\x20" "TS_PC\0"
903 #define POW_DS_PC_BITS \
904 "\177" /* new format */ \
905 "\020" /* hex display */ \
906 "\020" /* %016x format */ \
907 "f\x00\x20" "DS_PC\0"
908 #define POW_BIST_STAT_BITS \
909 "\177" /* new format */ \
910 "\020" /* hex display */ \
911 "\020" /* %016x format */ \
912 "b\x10" "PP\0" \
913 "b\x08" "CAM\0" \
914 "b\x07" "NBT1\0" \
915 "b\x06" "NBT0\0" \
916 "b\x05" "IDX\0" \
917 "b\x04" "FIDX\0" \
918 "b\x03" "NBR1\0" \
919 "b\x02" "NBR0\0" \
920 "b\x01" "PEND\0" \
921 "b\x00" "ADR\0"
922
923 #endif /* _OCTEON_POWREG_H_ */
924