octeon_fpareg.h revision 1.5 1 1.5 simonb /* $NetBSD: octeon_fpareg.h,v 1.5 2020/06/23 05:14:18 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 /* ---- operations */
163 1.1 hikaru
164 1.1 hikaru /*
165 1.1 hikaru * Free Pool Unit Operations
166 1.1 hikaru */
167 1.1 hikaru
168 1.2 simonb #define FPA_MAJOR_DID 0x5
169 1.1 hikaru
170 1.1 hikaru /* Store Operations */
171 1.2 simonb #define FPA_OPS_STORE_ADDR UINT64_C(0x000000ffffffffff)
172 1.1 hikaru
173 1.1 hikaru #define FPA_OPS_STORE_DATA_DWBCOUNT UINT64_C(0x00000000000001ff)
174 1.1 hikaru
175 1.1 hikaru /* ---- bus_space(9) */
176 1.1 hikaru
177 1.1 hikaru #define FPA_BASE 0x0001180028000000ULL
178 1.1 hikaru #define FPA_SIZE 0x0200
179 1.1 hikaru
180 1.5 simonb #define FPA_NPOOLS 8
181 1.5 simonb
182 1.1 hikaru #define FPA_INT_SUM_OFFSET 0x0040
183 1.1 hikaru #define FPA_INT_ENB_OFFSET 0x0048
184 1.1 hikaru #define FPA_CTL_STATUS_OFFSET 0x0050
185 1.1 hikaru #define FPA_QUE0_AVAILABLE_OFFSET 0x0098
186 1.1 hikaru #define FPA_QUE1_AVAILABLE_OFFSET 0x00a0
187 1.1 hikaru #define FPA_QUE2_AVAILABLE_OFFSET 0x00a8
188 1.1 hikaru #define FPA_QUE3_AVAILABLE_OFFSET 0x00b0
189 1.1 hikaru #define FPA_QUE4_AVAILABLE_OFFSET 0x00b8
190 1.1 hikaru #define FPA_QUE5_AVAILABLE_OFFSET 0x00c0
191 1.1 hikaru #define FPA_QUE6_AVAILABLE_OFFSET 0x00c8
192 1.1 hikaru #define FPA_QUE7_AVAILABLE_OFFSET 0x00d0
193 1.1 hikaru #define FPA_WART_CTL_OFFSET 0x00d8
194 1.1 hikaru #define FPA_WART_STATUS_OFFSET 0x00e0
195 1.1 hikaru #define FPA_BIST_STATUS_OFFSET 0x00e8
196 1.1 hikaru #define FPA_QUE0_PAGE_INDEX_OFFSET 0x00f0
197 1.1 hikaru #define FPA_QUE1_PAGE_INDEX_OFFSET 0x00f8
198 1.1 hikaru #define FPA_QUE2_PAGE_INDEX_OFFSET 0x0100
199 1.1 hikaru #define FPA_QUE3_PAGE_INDEX_OFFSET 0x0108
200 1.1 hikaru #define FPA_QUE4_PAGE_INDEX_OFFSET 0x0110
201 1.1 hikaru #define FPA_QUE5_PAGE_INDEX_OFFSET 0x0118
202 1.1 hikaru #define FPA_QUE6_PAGE_INDEX_OFFSET 0x0120
203 1.1 hikaru #define FPA_QUE7_PAGE_INDEX_OFFSET 0x0128
204 1.1 hikaru #define FPA_QUE_EXP_OFFSET 0x0130
205 1.1 hikaru #define FPA_QUE_ACT_OFFSET 0x0138
206 1.1 hikaru
207 1.1 hikaru #endif /* _OCTEON_FPAREG_H_ */
208