octeon_fpareg.h revision 1.2 1 1.2 simonb /* $NetBSD: octeon_fpareg.h,v 1.2 2020/06/18 13:52:08 simonb Exp $ */
2 1.1 hikaru
3 1.1 hikaru /*
4 1.1 hikaru * Copyright (c) 2007 Internet Initiative Japan, Inc.
5 1.1 hikaru * All rights reserved.
6 1.1 hikaru *
7 1.1 hikaru * Redistribution and use in source and binary forms, with or without
8 1.1 hikaru * modification, are permitted provided that the following conditions
9 1.1 hikaru * are met:
10 1.1 hikaru * 1. Redistributions of source code must retain the above copyright
11 1.1 hikaru * notice, this list of conditions and the following disclaimer.
12 1.1 hikaru * 2. Redistributions in binary form must reproduce the above copyright
13 1.1 hikaru * notice, this list of conditions and the following disclaimer in the
14 1.1 hikaru * documentation and/or other materials provided with the distribution.
15 1.1 hikaru *
16 1.1 hikaru * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 1.1 hikaru * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 1.1 hikaru * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 1.1 hikaru * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 1.1 hikaru * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 1.1 hikaru * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 1.1 hikaru * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 1.1 hikaru * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 1.1 hikaru * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 1.1 hikaru * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 1.1 hikaru * SUCH DAMAGE.
27 1.1 hikaru */
28 1.1 hikaru
29 1.1 hikaru /*
30 1.1 hikaru * FPA Registers
31 1.1 hikaru */
32 1.1 hikaru
33 1.1 hikaru #ifndef _OCTEON_FPAREG_H_
34 1.1 hikaru #define _OCTEON_FPAREG_H_
35 1.1 hikaru
36 1.1 hikaru /* ---- register offsets */
37 1.1 hikaru
38 1.1 hikaru #define FPA_INT_SUM 0x0001180028000040ULL
39 1.1 hikaru #define FPA_INT_ENB 0x0001180028000048ULL
40 1.1 hikaru #define FPA_CTL_STATUS 0x0001180028000050ULL
41 1.1 hikaru #define FPA_QUE0_AVAILABLE 0x0001180028000098ULL
42 1.1 hikaru #define FPA_QUE1_AVAILABLE 0x00011800280000a0ULL
43 1.1 hikaru #define FPA_QUE2_AVAILABLE 0x00011800280000a8ULL
44 1.1 hikaru #define FPA_QUE3_AVAILABLE 0x00011800280000b0ULL
45 1.1 hikaru #define FPA_QUE4_AVAILABLE 0x00011800280000b8ULL
46 1.1 hikaru #define FPA_QUE5_AVAILABLE 0x00011800280000c0ULL
47 1.1 hikaru #define FPA_QUE6_AVAILABLE 0x00011800280000c8ULL
48 1.1 hikaru #define FPA_QUE7_AVAILABLE 0x00011800280000d0ULL
49 1.1 hikaru #define FPA_WART_CTL 0x00011800280000d8ULL
50 1.1 hikaru #define FPA_WART_STATUS 0x00011800280000e0ULL
51 1.1 hikaru #define FPA_BIST_STATUS 0x00011800280000e8ULL
52 1.1 hikaru #define FPA_QUE0_PAGE_INDEX 0x00011800280000f0ULL
53 1.1 hikaru #define FPA_QUE1_PAGE_INDEX 0x00011800280000f8ULL
54 1.1 hikaru #define FPA_QUE2_PAGE_INDEX 0x0001180028000100ULL
55 1.1 hikaru #define FPA_QUE3_PAGE_INDEX 0x0001180028000108ULL
56 1.1 hikaru #define FPA_QUE4_PAGE_INDEX 0x0001180028000110ULL
57 1.1 hikaru #define FPA_QUE5_PAGE_INDEX 0x0001180028000118ULL
58 1.1 hikaru #define FPA_QUE6_PAGE_INDEX 0x0001180028000120ULL
59 1.1 hikaru #define FPA_QUE7_PAGE_INDEX 0x0001180028000128ULL
60 1.1 hikaru #define FPA_QUE_EXP 0x0001180028000130ULL
61 1.1 hikaru #define FPA_QUE_ACT 0x0001180028000138ULL
62 1.1 hikaru
63 1.1 hikaru /* ---- register bit definitions */
64 1.1 hikaru
65 1.1 hikaru #define FPA_INT_SUM_XXX_63_28 UINT64_C(0xfffffffff0000000)
66 1.1 hikaru #define FPA_INT_SUM_Q7_PERR UINT64_C(0x0000000008000000)
67 1.1 hikaru #define FPA_INT_SUM_Q7_COFF UINT64_C(0x0000000004000000)
68 1.1 hikaru #define FPA_INT_SUM_Q7_UND UINT64_C(0x0000000002000000)
69 1.1 hikaru #define FPA_INT_SUM_Q6_PERR UINT64_C(0x0000000001000000)
70 1.1 hikaru #define FPA_INT_SUM_Q6_COFF UINT64_C(0x0000000000800000)
71 1.1 hikaru #define FPA_INT_SUM_Q6_UND UINT64_C(0x0000000000400000)
72 1.1 hikaru #define FPA_INT_SUM_Q5_PERR UINT64_C(0x0000000000200000)
73 1.1 hikaru #define FPA_INT_SUM_Q5_COFF UINT64_C(0x0000000000100000)
74 1.1 hikaru #define FPA_INT_SUM_Q5_UND UINT64_C(0x0000000000080000)
75 1.1 hikaru #define FPA_INT_SUM_Q4_PERR UINT64_C(0x0000000000040000)
76 1.1 hikaru #define FPA_INT_SUM_Q4_COFF UINT64_C(0x0000000000020000)
77 1.1 hikaru #define FPA_INT_SUM_Q4_UND UINT64_C(0x0000000000010000)
78 1.1 hikaru #define FPA_INT_SUM_Q3_PERR UINT64_C(0x0000000000008000)
79 1.1 hikaru #define FPA_INT_SUM_Q3_COFF UINT64_C(0x0000000000004000)
80 1.1 hikaru #define FPA_INT_SUM_Q3_UND UINT64_C(0x0000000000002000)
81 1.1 hikaru #define FPA_INT_SUM_Q2_PERR UINT64_C(0x0000000000001000)
82 1.1 hikaru #define FPA_INT_SUM_Q2_COFF UINT64_C(0x0000000000000800)
83 1.1 hikaru #define FPA_INT_SUM_Q2_UND UINT64_C(0x0000000000000400)
84 1.1 hikaru #define FPA_INT_SUM_Q1_PERR UINT64_C(0x0000000000000200)
85 1.1 hikaru #define FPA_INT_SUM_Q1_COFF UINT64_C(0x0000000000000100)
86 1.1 hikaru #define FPA_INT_SUM_Q1_UND UINT64_C(0x0000000000000080)
87 1.1 hikaru #define FPA_INT_SUM_Q0_PERR UINT64_C(0x0000000000000040)
88 1.1 hikaru #define FPA_INT_SUM_Q0_COFF UINT64_C(0x0000000000000020)
89 1.1 hikaru #define FPA_INT_SUM_Q0_UND UINT64_C(0x0000000000000010)
90 1.1 hikaru #define FPA_INT_SUM_FED1_DBE UINT64_C(0x0000000000000008)
91 1.1 hikaru #define FPA_INT_SUM_FED1_SBE UINT64_C(0x0000000000000004)
92 1.1 hikaru #define FPA_INT_SUM_FED0_DBE UINT64_C(0x0000000000000002)
93 1.1 hikaru #define FPA_INT_SUM_FED0_SBE UINT64_C(0x0000000000000001)
94 1.1 hikaru
95 1.1 hikaru #define FPA_INT_ENB_XXX_63_28 UINT64_C(0xfffffffff0000000)
96 1.1 hikaru #define FPA_INT_ENB_Q7_PERR UINT64_C(0x0000000008000000)
97 1.1 hikaru #define FPA_INT_ENB_Q7_COFF UINT64_C(0x0000000004000000)
98 1.1 hikaru #define FPA_INT_ENB_Q7_UND UINT64_C(0x0000000002000000)
99 1.1 hikaru #define FPA_INT_ENB_Q6_PERR UINT64_C(0x0000000001000000)
100 1.1 hikaru #define FPA_INT_ENB_Q6_COFF UINT64_C(0x0000000000800000)
101 1.1 hikaru #define FPA_INT_ENB_Q6_UND UINT64_C(0x0000000000400000)
102 1.1 hikaru #define FPA_INT_ENB_Q5_PERR UINT64_C(0x0000000000200000)
103 1.1 hikaru #define FPA_INT_ENB_Q5_COFF UINT64_C(0x0000000000100000)
104 1.1 hikaru #define FPA_INT_ENB_Q5_UND UINT64_C(0x0000000000080000)
105 1.1 hikaru #define FPA_INT_ENB_Q4_PERR UINT64_C(0x0000000000040000)
106 1.1 hikaru #define FPA_INT_ENB_Q4_COFF UINT64_C(0x0000000000020000)
107 1.1 hikaru #define FPA_INT_ENB_Q4_UND UINT64_C(0x0000000000010000)
108 1.1 hikaru #define FPA_INT_ENB_Q3_PERR UINT64_C(0x0000000000008000)
109 1.1 hikaru #define FPA_INT_ENB_Q3_COFF UINT64_C(0x0000000000004000)
110 1.1 hikaru #define FPA_INT_ENB_Q3_UND UINT64_C(0x0000000000002000)
111 1.1 hikaru #define FPA_INT_ENB_Q2_PERR UINT64_C(0x0000000000001000)
112 1.1 hikaru #define FPA_INT_ENB_Q2_COFF UINT64_C(0x0000000000000800)
113 1.1 hikaru #define FPA_INT_ENB_Q2_UND UINT64_C(0x0000000000000400)
114 1.1 hikaru #define FPA_INT_ENB_Q1_PERR UINT64_C(0x0000000000000200)
115 1.1 hikaru #define FPA_INT_ENB_Q1_COFF UINT64_C(0x0000000000000100)
116 1.1 hikaru #define FPA_INT_ENB_Q1_UND UINT64_C(0x0000000000000080)
117 1.1 hikaru #define FPA_INT_ENB_Q0_PERR UINT64_C(0x0000000000000040)
118 1.1 hikaru #define FPA_INT_ENB_Q0_COFF UINT64_C(0x0000000000000020)
119 1.1 hikaru #define FPA_INT_ENB_Q0_UND UINT64_C(0x0000000000000010)
120 1.1 hikaru #define FPA_INT_ENB_FED1_DBE UINT64_C(0x0000000000000008)
121 1.1 hikaru #define FPA_INT_ENB_FED1_SBE UINT64_C(0x0000000000000004)
122 1.1 hikaru #define FPA_INT_ENB_FED0_DBE UINT64_C(0x0000000000000002)
123 1.1 hikaru #define FPA_INT_ENB_FED0_SBE UINT64_C(0x0000000000000001)
124 1.1 hikaru
125 1.1 hikaru #define FPA_CTL_STATUS_XXX_63_18 UINT64_C(0xfffffffffffc0000)
126 1.1 hikaru #define FPA_CTL_STATUS_RESET UINT64_C(0x0000000000020000)
127 1.1 hikaru #define FPA_CTL_STATUS_USE_LDT UINT64_C(0x0000000000010000)
128 1.1 hikaru #define FPA_CTL_STATUS_USE_STT UINT64_C(0x0000000000008000)
129 1.1 hikaru #define FPA_CTL_STATUS_ENB UINT64_C(0x0000000000004000)
130 1.1 hikaru #define FPA_CTL_STATUS_MEM1_ERR UINT64_C(0x0000000000003f80)
131 1.1 hikaru #define FPA_CTL_STATUS_MEM0_ERR UINT64_C(0x000000000000007f)
132 1.1 hikaru
133 1.1 hikaru #define FPA_QUEX_AVAILABLE_XXX_63_29 UINT64_C(0xffffffffe0000000)
134 1.1 hikaru #define FPA_QUEX_AVAILABLE_QUE_SIZ UINT64_C(0x000000001fffffff)
135 1.1 hikaru
136 1.1 hikaru #define FPA_WART_CTL_XXX_63_16 UINT64_C(0xffffffffffff0000)
137 1.1 hikaru #define FPA_WART_CTL_CTL UINT64_C(0x000000000000ffff)
138 1.1 hikaru
139 1.1 hikaru #define FPA_WART_STATUS_XXX_63_32 UINT64_C(0xffffffff00000000)
140 1.1 hikaru #define FPA_WART_STATUS_STATUS UINT64_C(0x00000000ffffffff)
141 1.1 hikaru
142 1.1 hikaru #define FPA_BIST_STATUS_XXX_63_5 UINT64_C(0xffffffffffffffe0)
143 1.1 hikaru #define FPA_BIST_STATUS_FRD UINT64_C(0x0000000000000010)
144 1.1 hikaru #define FPA_BIST_STATUS_FPF0 UINT64_C(0x0000000000000008)
145 1.1 hikaru #define FPA_BIST_STATUS_FPF1 UINT64_C(0x0000000000000004)
146 1.1 hikaru #define FPA_BIST_STATUS_FFR UINT64_C(0x0000000000000002)
147 1.1 hikaru #define FPA_BIST_STATUS_FDR UINT64_C(0x0000000000000001)
148 1.1 hikaru
149 1.1 hikaru #define FPA_QUEX_PAGE_INDEX_XXX_63_25 UINT64_C(0xfffffffffe000000)
150 1.1 hikaru #define FPA_QUEX_PAGE_INDEX_PG_NUM UINT64_C(0x0000000001ffffff)
151 1.1 hikaru
152 1.1 hikaru #define FPA_QUE_EXP_XXX_63_32 UINT64_C(0xffffffff00000000)
153 1.1 hikaru #define FPA_QUE_EXP_XXX_31_29 UINT64_C(0x00000000e0000000)
154 1.1 hikaru #define FPA_QUE_EXP_EXP_QUE UINT64_C(0x000000001c000000)
155 1.1 hikaru #define FPA_QUE_EXP_EXP_INDX UINT64_C(0x0000000003ffffff)
156 1.1 hikaru
157 1.1 hikaru #define FPA_QUE_ACT_XXX_63_32 UINT64_C(0xffffffff00000000)
158 1.1 hikaru #define FPA_QUE_ACT_XXX_31_29 UINT64_C(0x00000000e0000000)
159 1.1 hikaru #define FPA_QUE_ACT_ACT_QUE UINT64_C(0x000000001c000000)
160 1.1 hikaru #define FPA_QUE_ACT_ACT_INDX UINT64_C(0x0000000003ffffff)
161 1.1 hikaru
162 1.1 hikaru /* ---- snprintb(9) */
163 1.1 hikaru
164 1.1 hikaru #define FPA_INT_SUM_BITS \
165 1.1 hikaru "\177" /* new format */ \
166 1.1 hikaru "\020" /* hex display */ \
167 1.1 hikaru "\020" /* %016x format */ \
168 1.1 hikaru "b\x1b" "Q7_PERR\0" \
169 1.1 hikaru "b\x1a" "Q7_COFF\0" \
170 1.1 hikaru "b\x19" "Q7_UND\0" \
171 1.1 hikaru "b\x18" "Q6_PERR\0" \
172 1.1 hikaru "b\x17" "Q6_COFF\0" \
173 1.1 hikaru "b\x16" "Q6_UND\0" \
174 1.1 hikaru "b\x15" "Q5_PERR\0" \
175 1.1 hikaru "b\x14" "Q5_COFF\0" \
176 1.1 hikaru "b\x13" "Q5_UND\0" \
177 1.1 hikaru "b\x12" "Q4_PERR\0" \
178 1.1 hikaru "b\x11" "Q4_COFF\0" \
179 1.1 hikaru "b\x10" "Q4_UND\0" \
180 1.1 hikaru "b\x0f" "Q3_PERR\0" \
181 1.1 hikaru "b\x0e" "Q3_COFF\0" \
182 1.1 hikaru "b\x0d" "Q3_UND\0" \
183 1.1 hikaru "b\x0c" "Q2_PERR\0" \
184 1.1 hikaru "b\x0b" "Q2_COFF\0" \
185 1.1 hikaru "b\x0a" "Q2_UND\0" \
186 1.1 hikaru "b\x09" "Q1_PERR\0" \
187 1.1 hikaru "b\x08" "Q1_COFF\0" \
188 1.1 hikaru "b\x07" "Q1_UND\0" \
189 1.1 hikaru "b\x06" "Q0_PERR\0" \
190 1.1 hikaru "b\x05" "Q0_COFF\0" \
191 1.1 hikaru "b\x04" "Q0_UND\0" \
192 1.1 hikaru "b\x03" "FED1_DBE\0" \
193 1.1 hikaru "b\x02" "FED1_SBE\0" \
194 1.1 hikaru "b\x01" "FED0_DBE\0" \
195 1.1 hikaru "b\x00" "FED0_SBE\0"
196 1.1 hikaru
197 1.1 hikaru #define FPA_INT_ENB_BITS \
198 1.1 hikaru "\177" /* new format */ \
199 1.1 hikaru "\020" /* hex display */ \
200 1.1 hikaru "\020" /* %016x format */ \
201 1.1 hikaru "b\x1b" "Q7_PERR\0" \
202 1.1 hikaru "b\x1a" "Q7_COFF\0" \
203 1.1 hikaru "b\x19" "Q7_UND\0" \
204 1.1 hikaru "b\x18" "Q6_PERR\0" \
205 1.1 hikaru "b\x17" "Q6_COFF\0" \
206 1.1 hikaru "b\x16" "Q6_UND\0" \
207 1.1 hikaru "b\x15" "Q5_PERR\0" \
208 1.1 hikaru "b\x14" "Q5_COFF\0" \
209 1.1 hikaru "b\x13" "Q5_UND\0" \
210 1.1 hikaru "b\x12" "Q4_PERR\0" \
211 1.1 hikaru "b\x11" "Q4_COFF\0" \
212 1.1 hikaru "b\x10" "Q4_UND\0" \
213 1.1 hikaru "b\x0f" "Q3_PERR\0" \
214 1.1 hikaru "b\x0e" "Q3_COFF\0" \
215 1.1 hikaru "b\x0d" "Q3_UND\0" \
216 1.1 hikaru "b\x0c" "Q2_PERR\0" \
217 1.1 hikaru "b\x0b" "Q2_COFF\0" \
218 1.1 hikaru "b\x0a" "Q2_UND\0" \
219 1.1 hikaru "b\x09" "Q1_PERR\0" \
220 1.1 hikaru "b\x08" "Q1_COFF\0" \
221 1.1 hikaru "b\x07" "Q1_UND\0" \
222 1.1 hikaru "b\x06" "Q0_PERR\0" \
223 1.1 hikaru "b\x05" "Q0_COFF\0" \
224 1.1 hikaru "b\x04" "Q0_UND\0" \
225 1.1 hikaru "b\x03" "FED1_DBE\0" \
226 1.1 hikaru "b\x02" "FED1_SBE\0" \
227 1.1 hikaru "b\x01" "FED0_DBE\0" \
228 1.1 hikaru "b\x00" "FED0_SBE\0"
229 1.1 hikaru
230 1.1 hikaru #define FPA_CTL_STATUS_BITS \
231 1.1 hikaru "\177" /* new format */ \
232 1.1 hikaru "\020" /* hex display */ \
233 1.1 hikaru "\020" /* %016x format */ \
234 1.1 hikaru "b\x11" "RESET\0" \
235 1.1 hikaru "b\x10" "USE_LDT\0" \
236 1.1 hikaru "b\x0f" "USE_STT\0" \
237 1.1 hikaru "b\x0e" "ENB\0" \
238 1.1 hikaru "f\x07\x07" "MEM1_ERR\0" \
239 1.1 hikaru "f\x00\x07" "MEM0_ERR\0"
240 1.1 hikaru
241 1.1 hikaru #define FPA_QUEX_AVAILABLE_BITS \
242 1.1 hikaru "\177" /* new format */ \
243 1.1 hikaru "\020" /* hex display */ \
244 1.1 hikaru "\020" /* %016x format */ \
245 1.1 hikaru "f\x00\x1d" "QUE_SIZ\0"
246 1.1 hikaru #define FPA_QUE0_AVAILABLE_BITS FPA_QUEX_AVAILABLE_BITS
247 1.1 hikaru #define FPA_QUE1_AVAILABLE_BITS FPA_QUEX_AVAILABLE_BITS
248 1.1 hikaru #define FPA_QUE2_AVAILABLE_BITS FPA_QUEX_AVAILABLE_BITS
249 1.1 hikaru #define FPA_QUE3_AVAILABLE_BITS FPA_QUEX_AVAILABLE_BITS
250 1.1 hikaru #define FPA_QUE4_AVAILABLE_BITS FPA_QUEX_AVAILABLE_BITS
251 1.1 hikaru #define FPA_QUE5_AVAILABLE_BITS FPA_QUEX_AVAILABLE_BITS
252 1.1 hikaru #define FPA_QUE6_AVAILABLE_BITS FPA_QUEX_AVAILABLE_BITS
253 1.1 hikaru #define FPA_QUE7_AVAILABLE_BITS FPA_QUEX_AVAILABLE_BITS
254 1.1 hikaru
255 1.1 hikaru #define FPA_WART_CTL_BITS \
256 1.1 hikaru "\177" /* new format */ \
257 1.1 hikaru "\020" /* hex display */ \
258 1.1 hikaru "\020" /* %016x format */ \
259 1.1 hikaru "f\x00\x10" "CTL\0"
260 1.1 hikaru
261 1.1 hikaru #define FPA_WART_STATUS_BITS \
262 1.1 hikaru "\177" /* new format */ \
263 1.1 hikaru "\020" /* hex display */ \
264 1.1 hikaru "\020" /* %016x format */ \
265 1.1 hikaru "f\x00\x20" "STATUS\0"
266 1.1 hikaru
267 1.1 hikaru #define FPA_BIST_STATUS_BITS \
268 1.1 hikaru "\177" /* new format */ \
269 1.1 hikaru "\020" /* hex display */ \
270 1.1 hikaru "\020" /* %016x format */ \
271 1.1 hikaru "b\x04" "FRD\0" \
272 1.1 hikaru "b\x03" "FPF0\0" \
273 1.1 hikaru "b\x02" "FPF1\0" \
274 1.1 hikaru "b\x01" "FFR\0" \
275 1.1 hikaru "b\x00" "FDR\0"
276 1.1 hikaru
277 1.1 hikaru #define FPA_QUEX_PAGE_INDEX_BITS \
278 1.1 hikaru "\177" /* new format */ \
279 1.1 hikaru "\020" /* hex display */ \
280 1.1 hikaru "\020" /* %016x format */ \
281 1.1 hikaru "f\x00\x19" "PG_NUM\0"
282 1.1 hikaru #define FPA_QUE0_PAGE_INDEX_BITS FPA_QUEX_PAGE_INDEX_BITS
283 1.1 hikaru #define FPA_QUE1_PAGE_INDEX_BITS FPA_QUEX_PAGE_INDEX_BITS
284 1.1 hikaru #define FPA_QUE2_PAGE_INDEX_BITS FPA_QUEX_PAGE_INDEX_BITS
285 1.1 hikaru #define FPA_QUE3_PAGE_INDEX_BITS FPA_QUEX_PAGE_INDEX_BITS
286 1.1 hikaru #define FPA_QUE4_PAGE_INDEX_BITS FPA_QUEX_PAGE_INDEX_BITS
287 1.1 hikaru #define FPA_QUE5_PAGE_INDEX_BITS FPA_QUEX_PAGE_INDEX_BITS
288 1.1 hikaru #define FPA_QUE6_PAGE_INDEX_BITS FPA_QUEX_PAGE_INDEX_BITS
289 1.1 hikaru #define FPA_QUE7_PAGE_INDEX_BITS FPA_QUEX_PAGE_INDEX_BITS
290 1.1 hikaru
291 1.1 hikaru #define FPA_QUE_EXP_BITS \
292 1.1 hikaru "\177" /* new format */ \
293 1.1 hikaru "\020" /* hex display */ \
294 1.1 hikaru "\020" /* %016x format */ \
295 1.1 hikaru "f\x1a\x03" "EXP_QUE\0" \
296 1.1 hikaru "f\x00\x1a" "EXP_INDX\0"
297 1.1 hikaru
298 1.1 hikaru #define FPA_QUE_ACT_BITS \
299 1.1 hikaru "\177" /* new format */ \
300 1.1 hikaru "\020" /* hex display */ \
301 1.1 hikaru "\020" /* %016x format */ \
302 1.1 hikaru "f\x1a\x03" "ACT_QUE\0" \
303 1.1 hikaru "f\x00\x1a" "ACT_INDX\0"
304 1.1 hikaru
305 1.1 hikaru /* ---- operations */
306 1.1 hikaru
307 1.1 hikaru /*
308 1.1 hikaru * Free Pool Unit Operations
309 1.1 hikaru */
310 1.1 hikaru
311 1.2 simonb #define FPA_MAJOR_DID 0x5
312 1.1 hikaru
313 1.1 hikaru /* Store Operations */
314 1.2 simonb #define FPA_OPS_STORE_ADDR UINT64_C(0x000000ffffffffff)
315 1.1 hikaru
316 1.1 hikaru #define FPA_OPS_STORE_DATA_DWBCOUNT UINT64_C(0x00000000000001ff)
317 1.1 hikaru
318 1.1 hikaru /* ---- bus_space(9) */
319 1.1 hikaru
320 1.1 hikaru #define FPA_BASE 0x0001180028000000ULL
321 1.1 hikaru #define FPA_SIZE 0x0200
322 1.1 hikaru
323 1.1 hikaru #define FPA_INT_SUM_OFFSET 0x0040
324 1.1 hikaru #define FPA_INT_ENB_OFFSET 0x0048
325 1.1 hikaru #define FPA_CTL_STATUS_OFFSET 0x0050
326 1.1 hikaru #define FPA_QUE0_AVAILABLE_OFFSET 0x0098
327 1.1 hikaru #define FPA_QUE1_AVAILABLE_OFFSET 0x00a0
328 1.1 hikaru #define FPA_QUE2_AVAILABLE_OFFSET 0x00a8
329 1.1 hikaru #define FPA_QUE3_AVAILABLE_OFFSET 0x00b0
330 1.1 hikaru #define FPA_QUE4_AVAILABLE_OFFSET 0x00b8
331 1.1 hikaru #define FPA_QUE5_AVAILABLE_OFFSET 0x00c0
332 1.1 hikaru #define FPA_QUE6_AVAILABLE_OFFSET 0x00c8
333 1.1 hikaru #define FPA_QUE7_AVAILABLE_OFFSET 0x00d0
334 1.1 hikaru #define FPA_WART_CTL_OFFSET 0x00d8
335 1.1 hikaru #define FPA_WART_STATUS_OFFSET 0x00e0
336 1.1 hikaru #define FPA_BIST_STATUS_OFFSET 0x00e8
337 1.1 hikaru #define FPA_QUE0_PAGE_INDEX_OFFSET 0x00f0
338 1.1 hikaru #define FPA_QUE1_PAGE_INDEX_OFFSET 0x00f8
339 1.1 hikaru #define FPA_QUE2_PAGE_INDEX_OFFSET 0x0100
340 1.1 hikaru #define FPA_QUE3_PAGE_INDEX_OFFSET 0x0108
341 1.1 hikaru #define FPA_QUE4_PAGE_INDEX_OFFSET 0x0110
342 1.1 hikaru #define FPA_QUE5_PAGE_INDEX_OFFSET 0x0118
343 1.1 hikaru #define FPA_QUE6_PAGE_INDEX_OFFSET 0x0120
344 1.1 hikaru #define FPA_QUE7_PAGE_INDEX_OFFSET 0x0128
345 1.1 hikaru #define FPA_QUE_EXP_OFFSET 0x0130
346 1.1 hikaru #define FPA_QUE_ACT_OFFSET 0x0138
347 1.1 hikaru
348 1.1 hikaru #endif /* _OCTEON_FPAREG_H_ */
349