1 /***********************license start***************
2  * Copyright (c) 2003-2012  Cavium Inc. ([email protected]). All rights
3  * reserved.
4  *
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are
8  * met:
9  *
10  *   * Redistributions of source code must retain the above copyright
11  *     notice, this list of conditions and the following disclaimer.
12  *
13  *   * Redistributions in binary form must reproduce the above
14  *     copyright notice, this list of conditions and the following
15  *     disclaimer in the documentation and/or other materials provided
16  *     with the distribution.
17 
18  *   * Neither the name of Cavium Inc. nor the names of
19  *     its contributors may be used to endorse or promote products
20  *     derived from this software without specific prior written
21  *     permission.
22 
23  * This Software, including technical data, may be subject to U.S. export  control
24  * laws, including the U.S. Export Administration Act and its  associated
25  * regulations, and may be subject to export or import  regulations in other
26  * countries.
27 
28  * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
29  * AND WITH ALL FAULTS AND CAVIUM INC. MAKES NO PROMISES, REPRESENTATIONS OR
30  * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
31  * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR
32  * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM
33  * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE,
34  * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF
35  * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
36  * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE  RISK ARISING OUT OF USE OR
37  * PERFORMANCE OF THE SOFTWARE LIES WITH YOU.
38  ***********************license end**************************************/
39 
40 
41 /**
42  * cvmx-trax-defs.h
43  *
44  * Configuration and status register (CSR) type definitions for
45  * Octeon trax.
46  *
47  * This file is auto generated. Do not edit.
48  *
49  * <hr>$Revision$<hr>
50  *
51  */
52 #ifndef __CVMX_TRAX_DEFS_H__
53 #define __CVMX_TRAX_DEFS_H__
54 
55 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_BIST_STATUS(unsigned long block_id)56 static inline uint64_t CVMX_TRAX_BIST_STATUS(unsigned long block_id)
57 {
58 	if (!(
59 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
60 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
61 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
62 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
63 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
64 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
65 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
66 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
67 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
68 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
69 		cvmx_warn("CVMX_TRAX_BIST_STATUS(%lu) is invalid on this chip\n", block_id);
70 	return CVMX_ADD_IO_SEG(0x00011800A8000010ull) + ((block_id) & 3) * 0x100000ull;
71 }
72 #else
73 #define CVMX_TRAX_BIST_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000010ull) + ((block_id) & 3) * 0x100000ull)
74 #endif
75 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_CTL(unsigned long block_id)76 static inline uint64_t CVMX_TRAX_CTL(unsigned long block_id)
77 {
78 	if (!(
79 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
80 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
81 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
82 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
83 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
84 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
85 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
86 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
87 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
88 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
89 		cvmx_warn("CVMX_TRAX_CTL(%lu) is invalid on this chip\n", block_id);
90 	return CVMX_ADD_IO_SEG(0x00011800A8000000ull) + ((block_id) & 3) * 0x100000ull;
91 }
92 #else
93 #define CVMX_TRAX_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000000ull) + ((block_id) & 3) * 0x100000ull)
94 #endif
95 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_CYCLES_SINCE(unsigned long block_id)96 static inline uint64_t CVMX_TRAX_CYCLES_SINCE(unsigned long block_id)
97 {
98 	if (!(
99 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
100 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
101 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
102 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
103 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
104 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
105 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
106 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
107 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
108 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
109 		cvmx_warn("CVMX_TRAX_CYCLES_SINCE(%lu) is invalid on this chip\n", block_id);
110 	return CVMX_ADD_IO_SEG(0x00011800A8000018ull) + ((block_id) & 3) * 0x100000ull;
111 }
112 #else
113 #define CVMX_TRAX_CYCLES_SINCE(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000018ull) + ((block_id) & 3) * 0x100000ull)
114 #endif
115 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_CYCLES_SINCE1(unsigned long block_id)116 static inline uint64_t CVMX_TRAX_CYCLES_SINCE1(unsigned long block_id)
117 {
118 	if (!(
119 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
120 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
121 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
122 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
123 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
124 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
125 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
126 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
127 		cvmx_warn("CVMX_TRAX_CYCLES_SINCE1(%lu) is invalid on this chip\n", block_id);
128 	return CVMX_ADD_IO_SEG(0x00011800A8000028ull) + ((block_id) & 3) * 0x100000ull;
129 }
130 #else
131 #define CVMX_TRAX_CYCLES_SINCE1(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000028ull) + ((block_id) & 3) * 0x100000ull)
132 #endif
133 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_FILT_ADR_ADR(unsigned long block_id)134 static inline uint64_t CVMX_TRAX_FILT_ADR_ADR(unsigned long block_id)
135 {
136 	if (!(
137 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
138 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
139 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
140 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
141 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
142 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
143 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
144 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
145 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
146 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
147 		cvmx_warn("CVMX_TRAX_FILT_ADR_ADR(%lu) is invalid on this chip\n", block_id);
148 	return CVMX_ADD_IO_SEG(0x00011800A8000058ull) + ((block_id) & 3) * 0x100000ull;
149 }
150 #else
151 #define CVMX_TRAX_FILT_ADR_ADR(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000058ull) + ((block_id) & 3) * 0x100000ull)
152 #endif
153 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_FILT_ADR_MSK(unsigned long block_id)154 static inline uint64_t CVMX_TRAX_FILT_ADR_MSK(unsigned long block_id)
155 {
156 	if (!(
157 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
158 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
159 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
160 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
161 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
162 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
163 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
164 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
165 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
166 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
167 		cvmx_warn("CVMX_TRAX_FILT_ADR_MSK(%lu) is invalid on this chip\n", block_id);
168 	return CVMX_ADD_IO_SEG(0x00011800A8000060ull) + ((block_id) & 3) * 0x100000ull;
169 }
170 #else
171 #define CVMX_TRAX_FILT_ADR_MSK(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000060ull) + ((block_id) & 3) * 0x100000ull)
172 #endif
173 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_FILT_CMD(unsigned long block_id)174 static inline uint64_t CVMX_TRAX_FILT_CMD(unsigned long block_id)
175 {
176 	if (!(
177 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
178 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
179 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
180 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
181 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
182 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
183 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
184 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
185 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
186 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
187 		cvmx_warn("CVMX_TRAX_FILT_CMD(%lu) is invalid on this chip\n", block_id);
188 	return CVMX_ADD_IO_SEG(0x00011800A8000040ull) + ((block_id) & 3) * 0x100000ull;
189 }
190 #else
191 #define CVMX_TRAX_FILT_CMD(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000040ull) + ((block_id) & 3) * 0x100000ull)
192 #endif
193 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_FILT_DID(unsigned long block_id)194 static inline uint64_t CVMX_TRAX_FILT_DID(unsigned long block_id)
195 {
196 	if (!(
197 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
198 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
199 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
200 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
201 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
202 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
203 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
204 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
205 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
206 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
207 		cvmx_warn("CVMX_TRAX_FILT_DID(%lu) is invalid on this chip\n", block_id);
208 	return CVMX_ADD_IO_SEG(0x00011800A8000050ull) + ((block_id) & 3) * 0x100000ull;
209 }
210 #else
211 #define CVMX_TRAX_FILT_DID(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000050ull) + ((block_id) & 3) * 0x100000ull)
212 #endif
213 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_FILT_SID(unsigned long block_id)214 static inline uint64_t CVMX_TRAX_FILT_SID(unsigned long block_id)
215 {
216 	if (!(
217 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
218 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
219 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
220 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
221 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
222 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
223 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
224 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
225 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
226 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
227 		cvmx_warn("CVMX_TRAX_FILT_SID(%lu) is invalid on this chip\n", block_id);
228 	return CVMX_ADD_IO_SEG(0x00011800A8000048ull) + ((block_id) & 3) * 0x100000ull;
229 }
230 #else
231 #define CVMX_TRAX_FILT_SID(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000048ull) + ((block_id) & 3) * 0x100000ull)
232 #endif
233 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_INT_STATUS(unsigned long block_id)234 static inline uint64_t CVMX_TRAX_INT_STATUS(unsigned long block_id)
235 {
236 	if (!(
237 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
238 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
239 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
240 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
241 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
242 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
243 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
244 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
245 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
246 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
247 		cvmx_warn("CVMX_TRAX_INT_STATUS(%lu) is invalid on this chip\n", block_id);
248 	return CVMX_ADD_IO_SEG(0x00011800A8000008ull) + ((block_id) & 3) * 0x100000ull;
249 }
250 #else
251 #define CVMX_TRAX_INT_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000008ull) + ((block_id) & 3) * 0x100000ull)
252 #endif
253 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_READ_DAT(unsigned long block_id)254 static inline uint64_t CVMX_TRAX_READ_DAT(unsigned long block_id)
255 {
256 	if (!(
257 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
258 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
259 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
260 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
261 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
262 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
263 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
264 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
265 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
266 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
267 		cvmx_warn("CVMX_TRAX_READ_DAT(%lu) is invalid on this chip\n", block_id);
268 	return CVMX_ADD_IO_SEG(0x00011800A8000020ull) + ((block_id) & 3) * 0x100000ull;
269 }
270 #else
271 #define CVMX_TRAX_READ_DAT(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000020ull) + ((block_id) & 3) * 0x100000ull)
272 #endif
273 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_READ_DAT_HI(unsigned long block_id)274 static inline uint64_t CVMX_TRAX_READ_DAT_HI(unsigned long block_id)
275 {
276 	if (!(
277 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
278 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
279 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
280 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
281 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
282 		cvmx_warn("CVMX_TRAX_READ_DAT_HI(%lu) is invalid on this chip\n", block_id);
283 	return CVMX_ADD_IO_SEG(0x00011800A8000030ull) + ((block_id) & 3) * 0x100000ull;
284 }
285 #else
286 #define CVMX_TRAX_READ_DAT_HI(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000030ull) + ((block_id) & 3) * 0x100000ull)
287 #endif
288 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_TRIG0_ADR_ADR(unsigned long block_id)289 static inline uint64_t CVMX_TRAX_TRIG0_ADR_ADR(unsigned long block_id)
290 {
291 	if (!(
292 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
293 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
294 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
295 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
296 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
297 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
298 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
299 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
300 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
301 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
302 		cvmx_warn("CVMX_TRAX_TRIG0_ADR_ADR(%lu) is invalid on this chip\n", block_id);
303 	return CVMX_ADD_IO_SEG(0x00011800A8000098ull) + ((block_id) & 3) * 0x100000ull;
304 }
305 #else
306 #define CVMX_TRAX_TRIG0_ADR_ADR(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000098ull) + ((block_id) & 3) * 0x100000ull)
307 #endif
308 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_TRIG0_ADR_MSK(unsigned long block_id)309 static inline uint64_t CVMX_TRAX_TRIG0_ADR_MSK(unsigned long block_id)
310 {
311 	if (!(
312 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
313 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
314 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
315 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
316 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
317 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
318 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
319 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
320 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
321 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
322 		cvmx_warn("CVMX_TRAX_TRIG0_ADR_MSK(%lu) is invalid on this chip\n", block_id);
323 	return CVMX_ADD_IO_SEG(0x00011800A80000A0ull) + ((block_id) & 3) * 0x100000ull;
324 }
325 #else
326 #define CVMX_TRAX_TRIG0_ADR_MSK(block_id) (CVMX_ADD_IO_SEG(0x00011800A80000A0ull) + ((block_id) & 3) * 0x100000ull)
327 #endif
328 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_TRIG0_CMD(unsigned long block_id)329 static inline uint64_t CVMX_TRAX_TRIG0_CMD(unsigned long block_id)
330 {
331 	if (!(
332 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
333 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
334 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
335 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
336 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
337 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
338 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
339 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
340 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
341 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
342 		cvmx_warn("CVMX_TRAX_TRIG0_CMD(%lu) is invalid on this chip\n", block_id);
343 	return CVMX_ADD_IO_SEG(0x00011800A8000080ull) + ((block_id) & 3) * 0x100000ull;
344 }
345 #else
346 #define CVMX_TRAX_TRIG0_CMD(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000080ull) + ((block_id) & 3) * 0x100000ull)
347 #endif
348 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_TRIG0_DID(unsigned long block_id)349 static inline uint64_t CVMX_TRAX_TRIG0_DID(unsigned long block_id)
350 {
351 	if (!(
352 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
353 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
354 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
355 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
356 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
357 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
358 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
359 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
360 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
361 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
362 		cvmx_warn("CVMX_TRAX_TRIG0_DID(%lu) is invalid on this chip\n", block_id);
363 	return CVMX_ADD_IO_SEG(0x00011800A8000090ull) + ((block_id) & 3) * 0x100000ull;
364 }
365 #else
366 #define CVMX_TRAX_TRIG0_DID(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000090ull) + ((block_id) & 3) * 0x100000ull)
367 #endif
368 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_TRIG0_SID(unsigned long block_id)369 static inline uint64_t CVMX_TRAX_TRIG0_SID(unsigned long block_id)
370 {
371 	if (!(
372 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
373 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
374 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
375 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
376 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
377 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
378 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
379 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
380 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
381 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
382 		cvmx_warn("CVMX_TRAX_TRIG0_SID(%lu) is invalid on this chip\n", block_id);
383 	return CVMX_ADD_IO_SEG(0x00011800A8000088ull) + ((block_id) & 3) * 0x100000ull;
384 }
385 #else
386 #define CVMX_TRAX_TRIG0_SID(block_id) (CVMX_ADD_IO_SEG(0x00011800A8000088ull) + ((block_id) & 3) * 0x100000ull)
387 #endif
388 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_TRIG1_ADR_ADR(unsigned long block_id)389 static inline uint64_t CVMX_TRAX_TRIG1_ADR_ADR(unsigned long block_id)
390 {
391 	if (!(
392 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
393 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
394 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
395 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
396 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
397 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
398 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
399 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
400 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
401 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
402 		cvmx_warn("CVMX_TRAX_TRIG1_ADR_ADR(%lu) is invalid on this chip\n", block_id);
403 	return CVMX_ADD_IO_SEG(0x00011800A80000D8ull) + ((block_id) & 3) * 0x100000ull;
404 }
405 #else
406 #define CVMX_TRAX_TRIG1_ADR_ADR(block_id) (CVMX_ADD_IO_SEG(0x00011800A80000D8ull) + ((block_id) & 3) * 0x100000ull)
407 #endif
408 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_TRIG1_ADR_MSK(unsigned long block_id)409 static inline uint64_t CVMX_TRAX_TRIG1_ADR_MSK(unsigned long block_id)
410 {
411 	if (!(
412 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
413 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
414 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
415 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
416 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
417 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
418 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
419 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
420 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
421 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
422 		cvmx_warn("CVMX_TRAX_TRIG1_ADR_MSK(%lu) is invalid on this chip\n", block_id);
423 	return CVMX_ADD_IO_SEG(0x00011800A80000E0ull) + ((block_id) & 3) * 0x100000ull;
424 }
425 #else
426 #define CVMX_TRAX_TRIG1_ADR_MSK(block_id) (CVMX_ADD_IO_SEG(0x00011800A80000E0ull) + ((block_id) & 3) * 0x100000ull)
427 #endif
428 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_TRIG1_CMD(unsigned long block_id)429 static inline uint64_t CVMX_TRAX_TRIG1_CMD(unsigned long block_id)
430 {
431 	if (!(
432 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
433 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
434 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
435 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
436 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
437 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
438 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
439 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
440 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
441 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
442 		cvmx_warn("CVMX_TRAX_TRIG1_CMD(%lu) is invalid on this chip\n", block_id);
443 	return CVMX_ADD_IO_SEG(0x00011800A80000C0ull) + ((block_id) & 3) * 0x100000ull;
444 }
445 #else
446 #define CVMX_TRAX_TRIG1_CMD(block_id) (CVMX_ADD_IO_SEG(0x00011800A80000C0ull) + ((block_id) & 3) * 0x100000ull)
447 #endif
448 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_TRIG1_DID(unsigned long block_id)449 static inline uint64_t CVMX_TRAX_TRIG1_DID(unsigned long block_id)
450 {
451 	if (!(
452 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
453 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
454 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
455 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
456 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
457 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
458 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
459 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
460 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
461 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
462 		cvmx_warn("CVMX_TRAX_TRIG1_DID(%lu) is invalid on this chip\n", block_id);
463 	return CVMX_ADD_IO_SEG(0x00011800A80000D0ull) + ((block_id) & 3) * 0x100000ull;
464 }
465 #else
466 #define CVMX_TRAX_TRIG1_DID(block_id) (CVMX_ADD_IO_SEG(0x00011800A80000D0ull) + ((block_id) & 3) * 0x100000ull)
467 #endif
468 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
CVMX_TRAX_TRIG1_SID(unsigned long block_id)469 static inline uint64_t CVMX_TRAX_TRIG1_SID(unsigned long block_id)
470 {
471 	if (!(
472 	      (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((block_id == 0))) ||
473 	      (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((block_id == 0))) ||
474 	      (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
475 	      (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
476 	      (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((block_id == 0))) ||
477 	      (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id == 0))) ||
478 	      (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id == 0))) ||
479 	      (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id == 0))) ||
480 	      (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 3))) ||
481 	      (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id == 0)))))
482 		cvmx_warn("CVMX_TRAX_TRIG1_SID(%lu) is invalid on this chip\n", block_id);
483 	return CVMX_ADD_IO_SEG(0x00011800A80000C8ull) + ((block_id) & 3) * 0x100000ull;
484 }
485 #else
486 #define CVMX_TRAX_TRIG1_SID(block_id) (CVMX_ADD_IO_SEG(0x00011800A80000C8ull) + ((block_id) & 3) * 0x100000ull)
487 #endif
488 
489 /**
490  * cvmx_tra#_bist_status
491  *
492  * TRA_BIST_STATUS = Trace Buffer BiST Status
493  *
494  * Description:
495  */
496 union cvmx_trax_bist_status {
497 	uint64_t u64;
498 	struct cvmx_trax_bist_status_s {
499 #ifdef __BIG_ENDIAN_BITFIELD
500 	uint64_t reserved_3_63                : 61;
501 	uint64_t tcf                          : 1;  /**< Bist Results for TCF memory
502                                                          - 0: GOOD (or bist in progress/never run)
503                                                          - 1: BAD */
504 	uint64_t tdf1                         : 1;  /**< Bist Results for TDF memory 1
505                                                          - 0: GOOD (or bist in progress/never run)
506                                                          - 1: BAD */
507 	uint64_t reserved_0_0                 : 1;
508 #else
509 	uint64_t reserved_0_0                 : 1;
510 	uint64_t tdf1                         : 1;
511 	uint64_t tcf                          : 1;
512 	uint64_t reserved_3_63                : 61;
513 #endif
514 	} s;
515 	struct cvmx_trax_bist_status_cn31xx {
516 #ifdef __BIG_ENDIAN_BITFIELD
517 	uint64_t reserved_3_63                : 61;
518 	uint64_t tcf                          : 1;  /**< Bist Results for TCF memory
519                                                          - 0: GOOD (or bist in progress/never run)
520                                                          - 1: BAD */
521 	uint64_t tdf1                         : 1;  /**< Bist Results for TDF memory 1
522                                                          - 0: GOOD (or bist in progress/never run)
523                                                          - 1: BAD */
524 	uint64_t tdf0                         : 1;  /**< Bist Results for TCF memory 0
525                                                          - 0: GOOD (or bist in progress/never run)
526                                                          - 1: BAD */
527 #else
528 	uint64_t tdf0                         : 1;
529 	uint64_t tdf1                         : 1;
530 	uint64_t tcf                          : 1;
531 	uint64_t reserved_3_63                : 61;
532 #endif
533 	} cn31xx;
534 	struct cvmx_trax_bist_status_cn31xx   cn38xx;
535 	struct cvmx_trax_bist_status_cn31xx   cn38xxp2;
536 	struct cvmx_trax_bist_status_cn31xx   cn52xx;
537 	struct cvmx_trax_bist_status_cn31xx   cn52xxp1;
538 	struct cvmx_trax_bist_status_cn31xx   cn56xx;
539 	struct cvmx_trax_bist_status_cn31xx   cn56xxp1;
540 	struct cvmx_trax_bist_status_cn31xx   cn58xx;
541 	struct cvmx_trax_bist_status_cn31xx   cn58xxp1;
542 	struct cvmx_trax_bist_status_cn61xx {
543 #ifdef __BIG_ENDIAN_BITFIELD
544 	uint64_t reserved_1_63                : 63;
545 	uint64_t tdf                          : 1;  /**< Bist Results for TCF memory
546                                                          - 0: GOOD (or bist in progress/never run)
547                                                          - 1: BAD */
548 #else
549 	uint64_t tdf                          : 1;
550 	uint64_t reserved_1_63                : 63;
551 #endif
552 	} cn61xx;
553 	struct cvmx_trax_bist_status_cn61xx   cn63xx;
554 	struct cvmx_trax_bist_status_cn61xx   cn63xxp1;
555 	struct cvmx_trax_bist_status_cn61xx   cn66xx;
556 	struct cvmx_trax_bist_status_cn61xx   cn68xx;
557 	struct cvmx_trax_bist_status_cn61xx   cn68xxp1;
558 	struct cvmx_trax_bist_status_cn61xx   cnf71xx;
559 };
560 typedef union cvmx_trax_bist_status cvmx_trax_bist_status_t;
561 
562 /**
563  * cvmx_tra#_ctl
564  *
565  * TRA_CTL = Trace Buffer Control
566  *
567  * Description:
568  *
569  * Notes:
570  * It is illegal to change the values of WRAP, TRIG_CTL, IGNORE_O while tracing (i.e. when ENA=1).
571  * Note that the following fields are present only in chip revisions beginning with pass2: IGNORE_O
572  */
573 union cvmx_trax_ctl {
574 	uint64_t u64;
575 	struct cvmx_trax_ctl_s {
576 #ifdef __BIG_ENDIAN_BITFIELD
577 	uint64_t reserved_17_63               : 47;
578 	uint64_t rdat_md                      : 1;  /**< TRA_READ_DAT mode bit
579                                                          If set, the TRA_READ_DAT reads will return the lower
580                                                          64 bits of the TRA entry and the upper bits must be
581                                                          read through TRA_READ_DAT_HI.  If not set the return
582                                                          value from TRA_READ_DAT accesses will switch between
583                                                          the lower bits and the upper bits of the TRA entry. */
584 	uint64_t clkalways                    : 1;  /**< Conditional clock enable
585                                                          If set, the TRA clock is never disabled. */
586 	uint64_t ignore_o                     : 1;  /**< Ignore overflow during wrap mode
587                                                          If set and wrapping mode is enabled, then tracing
588                                                          will not stop at the overflow condition.  Each
589                                                          write during an overflow will overwrite the
590                                                          oldest, unread entry and the read pointer is
591                                                          incremented by one entry.  This bit has no effect
592                                                          if WRAP=0. */
593 	uint64_t mcd0_ena                     : 1;  /**< MCD0 enable
594                                                          If set and any PP sends the MCD0 signal, the
595                                                          tracing is disabled. */
596 	uint64_t mcd0_thr                     : 1;  /**< MCD0_threshold
597                                                          At a fill threshold event, sends an MCD0
598                                                          wire pulse that can cause cores to enter debug
599                                                          mode, if enabled.  This MCD0 wire pulse will not
600                                                          occur while (TRA_INT_STATUS.MCD0_THR == 1). */
601 	uint64_t mcd0_trg                     : 1;  /**< MCD0_trigger
602                                                          At an end trigger event, sends an MCD0
603                                                          wire pulse that can cause cores to enter debug
604                                                          mode, if enabled.  This MCD0 wire pulse will not
605                                                          occur while (TRA_INT_STATUS.MCD0_TRG == 1). */
606 	uint64_t ciu_thr                      : 1;  /**< CIU_threshold
607                                                          When set during a fill threshold event,
608                                                          TRA_INT_STATUS[CIU_THR] is set, which can cause
609                                                          core interrupts, if enabled. */
610 	uint64_t ciu_trg                      : 1;  /**< CIU_trigger
611                                                          When set during an end trigger event,
612                                                          TRA_INT_STATUS[CIU_TRG] is set, which can cause
613                                                          core interrupts, if enabled. */
614 	uint64_t full_thr                     : 2;  /**< Full Threshhold
615                                                          0=none
616                                                          1=1/2 full
617                                                          2=3/4 full
618                                                          3=4/4 full */
619 	uint64_t time_grn                     : 3;  /**< Timestamp granularity
620                                                          granularity=8^n cycles, n=0,1,2,3,4,5,6,7 */
621 	uint64_t trig_ctl                     : 2;  /**< Trigger Control
622                                                          Note: trigger events are written to the trace
623                                                          0=no triggers
624                                                          1=trigger0=start trigger, trigger1=stop trigger
625                                                          2=(trigger0 || trigger1)=start trigger
626                                                          3=(trigger0 || trigger1)=stop trigger */
627 	uint64_t wrap                         : 1;  /**< Wrap mode
628                                                          When WRAP=0, the trace buffer will disable itself
629                                                          after having logged 1024 entries.  When WRAP=1,
630                                                          the trace buffer will never disable itself.
631                                                          In this case, tracing may or may not be
632                                                          temporarily suspended during the overflow
633                                                          condition (see IGNORE_O above).
634                                                          0=do not wrap
635                                                          1=wrap */
636 	uint64_t ena                          : 1;  /**< Enable Trace
637                                                          Master enable.  Tracing only happens when ENA=1.
638                                                          When ENA changes from 0 to 1, the read and write
639                                                          pointers are reset to 0x00 to begin a new trace.
640                                                          The MCD0 event may set ENA=0 (see MCD0_ENA
641                                                          above).  When using triggers, tracing occurs only
642                                                          between start and stop triggers (including the
643                                                          triggers themselves).
644                                                          0=disable
645                                                          1=enable */
646 #else
647 	uint64_t ena                          : 1;
648 	uint64_t wrap                         : 1;
649 	uint64_t trig_ctl                     : 2;
650 	uint64_t time_grn                     : 3;
651 	uint64_t full_thr                     : 2;
652 	uint64_t ciu_trg                      : 1;
653 	uint64_t ciu_thr                      : 1;
654 	uint64_t mcd0_trg                     : 1;
655 	uint64_t mcd0_thr                     : 1;
656 	uint64_t mcd0_ena                     : 1;
657 	uint64_t ignore_o                     : 1;
658 	uint64_t clkalways                    : 1;
659 	uint64_t rdat_md                      : 1;
660 	uint64_t reserved_17_63               : 47;
661 #endif
662 	} s;
663 	struct cvmx_trax_ctl_cn31xx {
664 #ifdef __BIG_ENDIAN_BITFIELD
665 	uint64_t reserved_15_63               : 49;
666 	uint64_t ignore_o                     : 1;  /**< Ignore overflow during wrap mode
667                                                          If set and wrapping mode is enabled, then tracing
668                                                          will not stop at the overflow condition.  Each
669                                                          write during an overflow will overwrite the
670                                                          oldest, unread entry and the read pointer is
671                                                          incremented by one entry.  This bit has no effect
672                                                          if WRAP=0. */
673 	uint64_t mcd0_ena                     : 1;  /**< MCD0 enable
674                                                          If set and any PP sends the MCD0 signal, the
675                                                          tracing is disabled. */
676 	uint64_t mcd0_thr                     : 1;  /**< MCD0_threshold
677                                                          At a fill threshold event, sends an MCD0
678                                                          wire pulse that can cause cores to enter debug
679                                                          mode, if enabled.  This MCD0 wire pulse will not
680                                                          occur while (TRA(0..0)_INT_STATUS.MCD0_THR == 1). */
681 	uint64_t mcd0_trg                     : 1;  /**< MCD0_trigger
682                                                          At an end trigger event, sends an MCD0
683                                                          wire pulse that can cause cores to enter debug
684                                                          mode, if enabled.  This MCD0 wire pulse will not
685                                                          occur while (TRA(0..0)_INT_STATUS.MCD0_TRG == 1). */
686 	uint64_t ciu_thr                      : 1;  /**< CIU_threshold
687                                                          When set during a fill threshold event,
688                                                          TRA(0..0)_INT_STATUS[CIU_THR] is set, which can cause
689                                                          core interrupts, if enabled. */
690 	uint64_t ciu_trg                      : 1;  /**< CIU_trigger
691                                                          When set during an end trigger event,
692                                                          TRA(0..0)_INT_STATUS[CIU_TRG] is set, which can cause
693                                                          core interrupts, if enabled. */
694 	uint64_t full_thr                     : 2;  /**< Full Threshhold
695                                                          0=none
696                                                          1=1/2 full
697                                                          2=3/4 full
698                                                          3=4/4 full */
699 	uint64_t time_grn                     : 3;  /**< Timestamp granularity
700                                                          granularity=8^n cycles, n=0,1,2,3,4,5,6,7 */
701 	uint64_t trig_ctl                     : 2;  /**< Trigger Control
702                                                          Note: trigger events are written to the trace
703                                                          0=no triggers
704                                                          1=trigger0=start trigger, trigger1=stop trigger
705                                                          2=(trigger0 || trigger1)=start trigger
706                                                          3=(trigger0 || trigger1)=stop trigger */
707 	uint64_t wrap                         : 1;  /**< Wrap mode
708                                                          When WRAP=0, the trace buffer will disable itself
709                                                          after having logged 256 entries.  When WRAP=1,
710                                                          the trace buffer will never disable itself.
711                                                          In this case, tracing may or may not be
712                                                          temporarily suspended during the overflow
713                                                          condition (see IGNORE_O above).
714                                                          0=do not wrap
715                                                          1=wrap */
716 	uint64_t ena                          : 1;  /**< Enable Trace
717                                                          Master enable.  Tracing only happens when ENA=1.
718                                                          When ENA changes from 0 to 1, the read and write
719                                                          pointers are reset to 0x00 to begin a new trace.
720                                                          The MCD0 event may set ENA=0 (see MCD0_ENA
721                                                          above).  When using triggers, tracing occurs only
722                                                          between start and stop triggers (including the
723                                                          triggers themselves).
724                                                          0=disable
725                                                          1=enable */
726 #else
727 	uint64_t ena                          : 1;
728 	uint64_t wrap                         : 1;
729 	uint64_t trig_ctl                     : 2;
730 	uint64_t time_grn                     : 3;
731 	uint64_t full_thr                     : 2;
732 	uint64_t ciu_trg                      : 1;
733 	uint64_t ciu_thr                      : 1;
734 	uint64_t mcd0_trg                     : 1;
735 	uint64_t mcd0_thr                     : 1;
736 	uint64_t mcd0_ena                     : 1;
737 	uint64_t ignore_o                     : 1;
738 	uint64_t reserved_15_63               : 49;
739 #endif
740 	} cn31xx;
741 	struct cvmx_trax_ctl_cn31xx           cn38xx;
742 	struct cvmx_trax_ctl_cn31xx           cn38xxp2;
743 	struct cvmx_trax_ctl_cn31xx           cn52xx;
744 	struct cvmx_trax_ctl_cn31xx           cn52xxp1;
745 	struct cvmx_trax_ctl_cn31xx           cn56xx;
746 	struct cvmx_trax_ctl_cn31xx           cn56xxp1;
747 	struct cvmx_trax_ctl_cn31xx           cn58xx;
748 	struct cvmx_trax_ctl_cn31xx           cn58xxp1;
749 	struct cvmx_trax_ctl_s                cn61xx;
750 	struct cvmx_trax_ctl_s                cn63xx;
751 	struct cvmx_trax_ctl_cn63xxp1 {
752 #ifdef __BIG_ENDIAN_BITFIELD
753 	uint64_t reserved_16_63               : 48;
754 	uint64_t clkalways                    : 1;  /**< Conditional clock enable
755                                                          If set, the TRA clock is never disabled. */
756 	uint64_t ignore_o                     : 1;  /**< Ignore overflow during wrap mode
757                                                          If set and wrapping mode is enabled, then tracing
758                                                          will not stop at the overflow condition.  Each
759                                                          write during an overflow will overwrite the
760                                                          oldest, unread entry and the read pointer is
761                                                          incremented by one entry.  This bit has no effect
762                                                          if WRAP=0. */
763 	uint64_t mcd0_ena                     : 1;  /**< MCD0 enable
764                                                          If set and any PP sends the MCD0 signal, the
765                                                          tracing is disabled. */
766 	uint64_t mcd0_thr                     : 1;  /**< MCD0_threshold
767                                                          At a fill threshold event, sends an MCD0
768                                                          wire pulse that can cause cores to enter debug
769                                                          mode, if enabled.  This MCD0 wire pulse will not
770                                                          occur while (TRA_INT_STATUS.MCD0_THR == 1). */
771 	uint64_t mcd0_trg                     : 1;  /**< MCD0_trigger
772                                                          At an end trigger event, sends an MCD0
773                                                          wire pulse that can cause cores to enter debug
774                                                          mode, if enabled.  This MCD0 wire pulse will not
775                                                          occur while (TRA_INT_STATUS.MCD0_TRG == 1). */
776 	uint64_t ciu_thr                      : 1;  /**< CIU_threshold
777                                                          When set during a fill threshold event,
778                                                          TRA_INT_STATUS[CIU_THR] is set, which can cause
779                                                          core interrupts, if enabled. */
780 	uint64_t ciu_trg                      : 1;  /**< CIU_trigger
781                                                          When set during an end trigger event,
782                                                          TRA_INT_STATUS[CIU_TRG] is set, which can cause
783                                                          core interrupts, if enabled. */
784 	uint64_t full_thr                     : 2;  /**< Full Threshhold
785                                                          0=none
786                                                          1=1/2 full
787                                                          2=3/4 full
788                                                          3=4/4 full */
789 	uint64_t time_grn                     : 3;  /**< Timestamp granularity
790                                                          granularity=8^n cycles, n=0,1,2,3,4,5,6,7 */
791 	uint64_t trig_ctl                     : 2;  /**< Trigger Control
792                                                          Note: trigger events are written to the trace
793                                                          0=no triggers
794                                                          1=trigger0=start trigger, trigger1=stop trigger
795                                                          2=(trigger0 || trigger1)=start trigger
796                                                          3=(trigger0 || trigger1)=stop trigger */
797 	uint64_t wrap                         : 1;  /**< Wrap mode
798                                                          When WRAP=0, the trace buffer will disable itself
799                                                          after having logged 1024 entries.  When WRAP=1,
800                                                          the trace buffer will never disable itself.
801                                                          In this case, tracing may or may not be
802                                                          temporarily suspended during the overflow
803                                                          condition (see IGNORE_O above).
804                                                          0=do not wrap
805                                                          1=wrap */
806 	uint64_t ena                          : 1;  /**< Enable Trace
807                                                          Master enable.  Tracing only happens when ENA=1.
808                                                          When ENA changes from 0 to 1, the read and write
809                                                          pointers are reset to 0x00 to begin a new trace.
810                                                          The MCD0 event may set ENA=0 (see MCD0_ENA
811                                                          above).  When using triggers, tracing occurs only
812                                                          between start and stop triggers (including the
813                                                          triggers themselves).
814                                                          0=disable
815                                                          1=enable */
816 #else
817 	uint64_t ena                          : 1;
818 	uint64_t wrap                         : 1;
819 	uint64_t trig_ctl                     : 2;
820 	uint64_t time_grn                     : 3;
821 	uint64_t full_thr                     : 2;
822 	uint64_t ciu_trg                      : 1;
823 	uint64_t ciu_thr                      : 1;
824 	uint64_t mcd0_trg                     : 1;
825 	uint64_t mcd0_thr                     : 1;
826 	uint64_t mcd0_ena                     : 1;
827 	uint64_t ignore_o                     : 1;
828 	uint64_t clkalways                    : 1;
829 	uint64_t reserved_16_63               : 48;
830 #endif
831 	} cn63xxp1;
832 	struct cvmx_trax_ctl_s                cn66xx;
833 	struct cvmx_trax_ctl_s                cn68xx;
834 	struct cvmx_trax_ctl_s                cn68xxp1;
835 	struct cvmx_trax_ctl_s                cnf71xx;
836 };
837 typedef union cvmx_trax_ctl cvmx_trax_ctl_t;
838 
839 /**
840  * cvmx_tra#_cycles_since
841  *
842  * TRA_CYCLES_SINCE = Trace Buffer Cycles Since Last Write, Read/Write pointers
843  *
844  * Description:
845  *
846  * Notes:
847  * This CSR is obsolete.  Use TRA_CYCLES_SINCE1 instead.
848  *
849  */
850 union cvmx_trax_cycles_since {
851 	uint64_t u64;
852 	struct cvmx_trax_cycles_since_s {
853 #ifdef __BIG_ENDIAN_BITFIELD
854 	uint64_t cycles                       : 48; /**< Cycles since the last entry was written */
855 	uint64_t rptr                         : 8;  /**< Read pointer */
856 	uint64_t wptr                         : 8;  /**< Write pointer */
857 #else
858 	uint64_t wptr                         : 8;
859 	uint64_t rptr                         : 8;
860 	uint64_t cycles                       : 48;
861 #endif
862 	} s;
863 	struct cvmx_trax_cycles_since_s       cn31xx;
864 	struct cvmx_trax_cycles_since_s       cn38xx;
865 	struct cvmx_trax_cycles_since_s       cn38xxp2;
866 	struct cvmx_trax_cycles_since_s       cn52xx;
867 	struct cvmx_trax_cycles_since_s       cn52xxp1;
868 	struct cvmx_trax_cycles_since_s       cn56xx;
869 	struct cvmx_trax_cycles_since_s       cn56xxp1;
870 	struct cvmx_trax_cycles_since_s       cn58xx;
871 	struct cvmx_trax_cycles_since_s       cn58xxp1;
872 	struct cvmx_trax_cycles_since_s       cn61xx;
873 	struct cvmx_trax_cycles_since_s       cn63xx;
874 	struct cvmx_trax_cycles_since_s       cn63xxp1;
875 	struct cvmx_trax_cycles_since_s       cn66xx;
876 	struct cvmx_trax_cycles_since_s       cn68xx;
877 	struct cvmx_trax_cycles_since_s       cn68xxp1;
878 	struct cvmx_trax_cycles_since_s       cnf71xx;
879 };
880 typedef union cvmx_trax_cycles_since cvmx_trax_cycles_since_t;
881 
882 /**
883  * cvmx_tra#_cycles_since1
884  *
885  * TRA_CYCLES_SINCE1 = Trace Buffer Cycles Since Last Write, Read/Write pointers
886  *
887  * Description:
888  */
889 union cvmx_trax_cycles_since1 {
890 	uint64_t u64;
891 	struct cvmx_trax_cycles_since1_s {
892 #ifdef __BIG_ENDIAN_BITFIELD
893 	uint64_t cycles                       : 40; /**< Cycles since the last entry was written */
894 	uint64_t reserved_22_23               : 2;
895 	uint64_t rptr                         : 10; /**< Read pointer */
896 	uint64_t reserved_10_11               : 2;
897 	uint64_t wptr                         : 10; /**< Write pointer */
898 #else
899 	uint64_t wptr                         : 10;
900 	uint64_t reserved_10_11               : 2;
901 	uint64_t rptr                         : 10;
902 	uint64_t reserved_22_23               : 2;
903 	uint64_t cycles                       : 40;
904 #endif
905 	} s;
906 	struct cvmx_trax_cycles_since1_s      cn52xx;
907 	struct cvmx_trax_cycles_since1_s      cn52xxp1;
908 	struct cvmx_trax_cycles_since1_s      cn56xx;
909 	struct cvmx_trax_cycles_since1_s      cn56xxp1;
910 	struct cvmx_trax_cycles_since1_s      cn58xx;
911 	struct cvmx_trax_cycles_since1_s      cn58xxp1;
912 	struct cvmx_trax_cycles_since1_s      cn61xx;
913 	struct cvmx_trax_cycles_since1_s      cn63xx;
914 	struct cvmx_trax_cycles_since1_s      cn63xxp1;
915 	struct cvmx_trax_cycles_since1_s      cn66xx;
916 	struct cvmx_trax_cycles_since1_s      cn68xx;
917 	struct cvmx_trax_cycles_since1_s      cn68xxp1;
918 	struct cvmx_trax_cycles_since1_s      cnf71xx;
919 };
920 typedef union cvmx_trax_cycles_since1 cvmx_trax_cycles_since1_t;
921 
922 /**
923  * cvmx_tra#_filt_adr_adr
924  *
925  * TRA_FILT_ADR_ADR = Trace Buffer Filter Address Address
926  *
927  * Description:
928  */
929 union cvmx_trax_filt_adr_adr {
930 	uint64_t u64;
931 	struct cvmx_trax_filt_adr_adr_s {
932 #ifdef __BIG_ENDIAN_BITFIELD
933 	uint64_t reserved_38_63               : 26;
934 	uint64_t adr                          : 38; /**< Unmasked Address
935                                                          The combination of TRA_FILT_ADR_ADR and
936                                                          TRA_FILT_ADR_MSK is a masked address to
937                                                          enable tracing of only those commands whose
938                                                          masked address matches */
939 #else
940 	uint64_t adr                          : 38;
941 	uint64_t reserved_38_63               : 26;
942 #endif
943 	} s;
944 	struct cvmx_trax_filt_adr_adr_cn31xx {
945 #ifdef __BIG_ENDIAN_BITFIELD
946 	uint64_t reserved_36_63               : 28;
947 	uint64_t adr                          : 36; /**< Unmasked Address
948                                                          The combination of TRA(0..0)_FILT_ADR_ADR and
949                                                          TRA(0..0)_FILT_ADR_MSK is a masked address to
950                                                          enable tracing of only those commands whose
951                                                          masked address matches */
952 #else
953 	uint64_t adr                          : 36;
954 	uint64_t reserved_36_63               : 28;
955 #endif
956 	} cn31xx;
957 	struct cvmx_trax_filt_adr_adr_cn31xx  cn38xx;
958 	struct cvmx_trax_filt_adr_adr_cn31xx  cn38xxp2;
959 	struct cvmx_trax_filt_adr_adr_cn31xx  cn52xx;
960 	struct cvmx_trax_filt_adr_adr_cn31xx  cn52xxp1;
961 	struct cvmx_trax_filt_adr_adr_cn31xx  cn56xx;
962 	struct cvmx_trax_filt_adr_adr_cn31xx  cn56xxp1;
963 	struct cvmx_trax_filt_adr_adr_cn31xx  cn58xx;
964 	struct cvmx_trax_filt_adr_adr_cn31xx  cn58xxp1;
965 	struct cvmx_trax_filt_adr_adr_s       cn61xx;
966 	struct cvmx_trax_filt_adr_adr_s       cn63xx;
967 	struct cvmx_trax_filt_adr_adr_s       cn63xxp1;
968 	struct cvmx_trax_filt_adr_adr_s       cn66xx;
969 	struct cvmx_trax_filt_adr_adr_s       cn68xx;
970 	struct cvmx_trax_filt_adr_adr_s       cn68xxp1;
971 	struct cvmx_trax_filt_adr_adr_s       cnf71xx;
972 };
973 typedef union cvmx_trax_filt_adr_adr cvmx_trax_filt_adr_adr_t;
974 
975 /**
976  * cvmx_tra#_filt_adr_msk
977  *
978  * TRA_FILT_ADR_MSK = Trace Buffer Filter Address Mask
979  *
980  * Description:
981  */
982 union cvmx_trax_filt_adr_msk {
983 	uint64_t u64;
984 	struct cvmx_trax_filt_adr_msk_s {
985 #ifdef __BIG_ENDIAN_BITFIELD
986 	uint64_t reserved_38_63               : 26;
987 	uint64_t adr                          : 38; /**< Address Mask
988                                                          The combination of TRA_FILT_ADR_ADR and
989                                                          TRA_FILT_ADR_MSK is a masked address to
990                                                          enable tracing of only those commands whose
991                                                          masked address matches.  When a mask bit is not
992                                                          set, the corresponding address bits are assumed
993                                                          to match.  Also, note that IOBDMAs do not have
994                                                          proper addresses, so when TRA_FILT_CMD[IOBDMA]
995                                                          is set, TRA_FILT_ADR_MSK must be zero to
996                                                          guarantee that any IOBDMAs enter the trace. */
997 #else
998 	uint64_t adr                          : 38;
999 	uint64_t reserved_38_63               : 26;
1000 #endif
1001 	} s;
1002 	struct cvmx_trax_filt_adr_msk_cn31xx {
1003 #ifdef __BIG_ENDIAN_BITFIELD
1004 	uint64_t reserved_36_63               : 28;
1005 	uint64_t adr                          : 36; /**< Address Mask
1006                                                          The combination of TRA(0..0)_FILT_ADR_ADR and
1007                                                          TRA(0..0)_FILT_ADR_MSK is a masked address to
1008                                                          enable tracing of only those commands whose
1009                                                          masked address matches.  When a mask bit is not
1010                                                          set, the corresponding address bits are assumed
1011                                                          to match.  Also, note that IOBDMAs do not have
1012                                                          proper addresses, so when TRA(0..0)_FILT_CMD[IOBDMA]
1013                                                          is set, TRA(0..0)_FILT_ADR_MSK must be zero to
1014                                                          guarantee that any IOBDMAs enter the trace. */
1015 #else
1016 	uint64_t adr                          : 36;
1017 	uint64_t reserved_36_63               : 28;
1018 #endif
1019 	} cn31xx;
1020 	struct cvmx_trax_filt_adr_msk_cn31xx  cn38xx;
1021 	struct cvmx_trax_filt_adr_msk_cn31xx  cn38xxp2;
1022 	struct cvmx_trax_filt_adr_msk_cn31xx  cn52xx;
1023 	struct cvmx_trax_filt_adr_msk_cn31xx  cn52xxp1;
1024 	struct cvmx_trax_filt_adr_msk_cn31xx  cn56xx;
1025 	struct cvmx_trax_filt_adr_msk_cn31xx  cn56xxp1;
1026 	struct cvmx_trax_filt_adr_msk_cn31xx  cn58xx;
1027 	struct cvmx_trax_filt_adr_msk_cn31xx  cn58xxp1;
1028 	struct cvmx_trax_filt_adr_msk_s       cn61xx;
1029 	struct cvmx_trax_filt_adr_msk_s       cn63xx;
1030 	struct cvmx_trax_filt_adr_msk_s       cn63xxp1;
1031 	struct cvmx_trax_filt_adr_msk_s       cn66xx;
1032 	struct cvmx_trax_filt_adr_msk_s       cn68xx;
1033 	struct cvmx_trax_filt_adr_msk_s       cn68xxp1;
1034 	struct cvmx_trax_filt_adr_msk_s       cnf71xx;
1035 };
1036 typedef union cvmx_trax_filt_adr_msk cvmx_trax_filt_adr_msk_t;
1037 
1038 /**
1039  * cvmx_tra#_filt_cmd
1040  *
1041  * TRA_FILT_CMD = Trace Buffer Filter Command Mask
1042  *
1043  * Description:
1044  *
1045  * Notes:
1046  * Note that the trace buffer does not do proper IOBDMA address compares.  Thus, if IOBDMA is set, then
1047  * the address compare must be disabled (i.e. TRA_FILT_ADR_MSK set to zero) to guarantee that IOBDMAs
1048  * enter the trace.
1049  */
1050 union cvmx_trax_filt_cmd {
1051 	uint64_t u64;
1052 	struct cvmx_trax_filt_cmd_s {
1053 #ifdef __BIG_ENDIAN_BITFIELD
1054 	uint64_t saa64                        : 1;  /**< Enable SAA64 tracing
1055                                                          0=disable, 1=enable */
1056 	uint64_t saa32                        : 1;  /**< Enable SAA32 tracing
1057                                                          0=disable, 1=enable */
1058 	uint64_t reserved_60_61               : 2;
1059 	uint64_t faa64                        : 1;  /**< Enable FAA64 tracing
1060                                                          0=disable, 1=enable */
1061 	uint64_t faa32                        : 1;  /**< Enable FAA32 tracing
1062                                                          0=disable, 1=enable */
1063 	uint64_t reserved_56_57               : 2;
1064 	uint64_t decr64                       : 1;  /**< Enable DECR64  tracing
1065                                                          0=disable, 1=enable */
1066 	uint64_t decr32                       : 1;  /**< Enable DECR32  tracing
1067                                                          0=disable, 1=enable */
1068 	uint64_t decr16                       : 1;  /**< Enable DECR16  tracing
1069                                                          0=disable, 1=enable */
1070 	uint64_t decr8                        : 1;  /**< Enable DECR8   tracing
1071                                                          0=disable, 1=enable */
1072 	uint64_t incr64                       : 1;  /**< Enable INCR64  tracing
1073                                                          0=disable, 1=enable */
1074 	uint64_t incr32                       : 1;  /**< Enable INCR32  tracing
1075                                                          0=disable, 1=enable */
1076 	uint64_t incr16                       : 1;  /**< Enable INCR16  tracing
1077                                                          0=disable, 1=enable */
1078 	uint64_t incr8                        : 1;  /**< Enable INCR8   tracing
1079                                                          0=disable, 1=enable */
1080 	uint64_t clr64                        : 1;  /**< Enable CLR64   tracing
1081                                                          0=disable, 1=enable */
1082 	uint64_t clr32                        : 1;  /**< Enable CLR32   tracing
1083                                                          0=disable, 1=enable */
1084 	uint64_t clr16                        : 1;  /**< Enable CLR16   tracing
1085                                                          0=disable, 1=enable */
1086 	uint64_t clr8                         : 1;  /**< Enable CLR8    tracing
1087                                                          0=disable, 1=enable */
1088 	uint64_t set64                        : 1;  /**< Enable SET64   tracing
1089                                                          0=disable, 1=enable */
1090 	uint64_t set32                        : 1;  /**< Enable SET32   tracing
1091                                                          0=disable, 1=enable */
1092 	uint64_t set16                        : 1;  /**< Enable SET16   tracing
1093                                                          0=disable, 1=enable */
1094 	uint64_t set8                         : 1;  /**< Enable SET8    tracing
1095                                                          0=disable, 1=enable */
1096 	uint64_t iobst64                      : 1;  /**< Enable IOBST64 tracing
1097                                                          0=disable, 1=enable */
1098 	uint64_t iobst32                      : 1;  /**< Enable IOBST32 tracing
1099                                                          0=disable, 1=enable */
1100 	uint64_t iobst16                      : 1;  /**< Enable IOBST16 tracing
1101                                                          0=disable, 1=enable */
1102 	uint64_t iobst8                       : 1;  /**< Enable IOBST8  tracing
1103                                                          0=disable, 1=enable */
1104 	uint64_t reserved_32_35               : 4;
1105 	uint64_t lckl2                        : 1;  /**< Enable LCKL2   tracing
1106                                                          0=disable, 1=enable */
1107 	uint64_t wbl2                         : 1;  /**< Enable WBL2    tracing
1108                                                          0=disable, 1=enable */
1109 	uint64_t wbil2                        : 1;  /**< Enable WBIL2   tracing
1110                                                          0=disable, 1=enable */
1111 	uint64_t invl2                        : 1;  /**< Enable INVL2   tracing
1112                                                          0=disable, 1=enable */
1113 	uint64_t reserved_27_27               : 1;
1114 	uint64_t stgl2i                       : 1;  /**< Enable STGL2I  tracing
1115                                                          0=disable, 1=enable */
1116 	uint64_t ltgl2i                       : 1;  /**< Enable LTGL2I  tracing
1117                                                          0=disable, 1=enable */
1118 	uint64_t wbil2i                       : 1;  /**< Enable WBIL2I  tracing
1119                                                          0=disable, 1=enable */
1120 	uint64_t fas64                        : 1;  /**< Enable FAS64   tracing
1121                                                          0=disable, 1=enable */
1122 	uint64_t fas32                        : 1;  /**< Enable FAS32   tracing
1123                                                          0=disable, 1=enable */
1124 	uint64_t sttil1                       : 1;  /**< Enable STTIL1  tracing
1125                                                          0=disable, 1=enable */
1126 	uint64_t stfil1                       : 1;  /**< Enable STFIL1  tracing
1127                                                          0=disable, 1=enable */
1128 	uint64_t reserved_16_19               : 4;
1129 	uint64_t iobdma                       : 1;  /**< Enable IOBDMA  tracing
1130                                                          0=disable, 1=enable */
1131 	uint64_t iobst                        : 1;  /**< Enable IOBST   tracing
1132                                                          0=disable, 1=enable */
1133 	uint64_t reserved_0_13                : 14;
1134 #else
1135 	uint64_t reserved_0_13                : 14;
1136 	uint64_t iobst                        : 1;
1137 	uint64_t iobdma                       : 1;
1138 	uint64_t reserved_16_19               : 4;
1139 	uint64_t stfil1                       : 1;
1140 	uint64_t sttil1                       : 1;
1141 	uint64_t fas32                        : 1;
1142 	uint64_t fas64                        : 1;
1143 	uint64_t wbil2i                       : 1;
1144 	uint64_t ltgl2i                       : 1;
1145 	uint64_t stgl2i                       : 1;
1146 	uint64_t reserved_27_27               : 1;
1147 	uint64_t invl2                        : 1;
1148 	uint64_t wbil2                        : 1;
1149 	uint64_t wbl2                         : 1;
1150 	uint64_t lckl2                        : 1;
1151 	uint64_t reserved_32_35               : 4;
1152 	uint64_t iobst8                       : 1;
1153 	uint64_t iobst16                      : 1;
1154 	uint64_t iobst32                      : 1;
1155 	uint64_t iobst64                      : 1;
1156 	uint64_t set8                         : 1;
1157 	uint64_t set16                        : 1;
1158 	uint64_t set32                        : 1;
1159 	uint64_t set64                        : 1;
1160 	uint64_t clr8                         : 1;
1161 	uint64_t clr16                        : 1;
1162 	uint64_t clr32                        : 1;
1163 	uint64_t clr64                        : 1;
1164 	uint64_t incr8                        : 1;
1165 	uint64_t incr16                       : 1;
1166 	uint64_t incr32                       : 1;
1167 	uint64_t incr64                       : 1;
1168 	uint64_t decr8                        : 1;
1169 	uint64_t decr16                       : 1;
1170 	uint64_t decr32                       : 1;
1171 	uint64_t decr64                       : 1;
1172 	uint64_t reserved_56_57               : 2;
1173 	uint64_t faa32                        : 1;
1174 	uint64_t faa64                        : 1;
1175 	uint64_t reserved_60_61               : 2;
1176 	uint64_t saa32                        : 1;
1177 	uint64_t saa64                        : 1;
1178 #endif
1179 	} s;
1180 	struct cvmx_trax_filt_cmd_cn31xx {
1181 #ifdef __BIG_ENDIAN_BITFIELD
1182 	uint64_t reserved_16_63               : 48;
1183 	uint64_t iobdma                       : 1;  /**< Enable IOBDMA  tracing
1184                                                          0=disable, 1=enable */
1185 	uint64_t iobst                        : 1;  /**< Enable IOBST   tracing
1186                                                          0=disable, 1=enable */
1187 	uint64_t iobld64                      : 1;  /**< Enable IOBLD64 tracing
1188                                                          0=disable, 1=enable */
1189 	uint64_t iobld32                      : 1;  /**< Enable IOBLD32 tracing
1190                                                          0=disable, 1=enable */
1191 	uint64_t iobld16                      : 1;  /**< Enable IOBLD16 tracing
1192                                                          0=disable, 1=enable */
1193 	uint64_t iobld8                       : 1;  /**< Enable IOBLD8  tracing
1194                                                          0=disable, 1=enable */
1195 	uint64_t stt                          : 1;  /**< Enable STT     tracing
1196                                                          0=disable, 1=enable */
1197 	uint64_t stp                          : 1;  /**< Enable STP     tracing
1198                                                          0=disable, 1=enable */
1199 	uint64_t stc                          : 1;  /**< Enable STC     tracing
1200                                                          0=disable, 1=enable */
1201 	uint64_t stf                          : 1;  /**< Enable STF     tracing
1202                                                          0=disable, 1=enable */
1203 	uint64_t ldt                          : 1;  /**< Enable LDT     tracing
1204                                                          0=disable, 1=enable */
1205 	uint64_t ldi                          : 1;  /**< Enable LDI     tracing
1206                                                          0=disable, 1=enable */
1207 	uint64_t ldd                          : 1;  /**< Enable LDD     tracing
1208                                                          0=disable, 1=enable */
1209 	uint64_t psl1                         : 1;  /**< Enable PSL1    tracing
1210                                                          0=disable, 1=enable */
1211 	uint64_t pl2                          : 1;  /**< Enable PL2     tracing
1212                                                          0=disable, 1=enable */
1213 	uint64_t dwb                          : 1;  /**< Enable DWB     tracing
1214                                                          0=disable, 1=enable */
1215 #else
1216 	uint64_t dwb                          : 1;
1217 	uint64_t pl2                          : 1;
1218 	uint64_t psl1                         : 1;
1219 	uint64_t ldd                          : 1;
1220 	uint64_t ldi                          : 1;
1221 	uint64_t ldt                          : 1;
1222 	uint64_t stf                          : 1;
1223 	uint64_t stc                          : 1;
1224 	uint64_t stp                          : 1;
1225 	uint64_t stt                          : 1;
1226 	uint64_t iobld8                       : 1;
1227 	uint64_t iobld16                      : 1;
1228 	uint64_t iobld32                      : 1;
1229 	uint64_t iobld64                      : 1;
1230 	uint64_t iobst                        : 1;
1231 	uint64_t iobdma                       : 1;
1232 	uint64_t reserved_16_63               : 48;
1233 #endif
1234 	} cn31xx;
1235 	struct cvmx_trax_filt_cmd_cn31xx      cn38xx;
1236 	struct cvmx_trax_filt_cmd_cn31xx      cn38xxp2;
1237 	struct cvmx_trax_filt_cmd_cn52xx {
1238 #ifdef __BIG_ENDIAN_BITFIELD
1239 	uint64_t reserved_17_63               : 47;
1240 	uint64_t saa                          : 1;  /**< Enable SAA     tracing
1241                                                          0=disable, 1=enable */
1242 	uint64_t iobdma                       : 1;  /**< Enable IOBDMA  tracing
1243                                                          0=disable, 1=enable */
1244 	uint64_t iobst                        : 1;  /**< Enable IOBST   tracing
1245                                                          0=disable, 1=enable */
1246 	uint64_t iobld64                      : 1;  /**< Enable IOBLD64 tracing
1247                                                          0=disable, 1=enable */
1248 	uint64_t iobld32                      : 1;  /**< Enable IOBLD32 tracing
1249                                                          0=disable, 1=enable */
1250 	uint64_t iobld16                      : 1;  /**< Enable IOBLD16 tracing
1251                                                          0=disable, 1=enable */
1252 	uint64_t iobld8                       : 1;  /**< Enable IOBLD8  tracing
1253                                                          0=disable, 1=enable */
1254 	uint64_t stt                          : 1;  /**< Enable STT     tracing
1255                                                          0=disable, 1=enable */
1256 	uint64_t stp                          : 1;  /**< Enable STP     tracing
1257                                                          0=disable, 1=enable */
1258 	uint64_t stc                          : 1;  /**< Enable STC     tracing
1259                                                          0=disable, 1=enable */
1260 	uint64_t stf                          : 1;  /**< Enable STF     tracing
1261                                                          0=disable, 1=enable */
1262 	uint64_t ldt                          : 1;  /**< Enable LDT     tracing
1263                                                          0=disable, 1=enable */
1264 	uint64_t ldi                          : 1;  /**< Enable LDI     tracing
1265                                                          0=disable, 1=enable */
1266 	uint64_t ldd                          : 1;  /**< Enable LDD     tracing
1267                                                          0=disable, 1=enable */
1268 	uint64_t psl1                         : 1;  /**< Enable PSL1    tracing
1269                                                          0=disable, 1=enable */
1270 	uint64_t pl2                          : 1;  /**< Enable PL2     tracing
1271                                                          0=disable, 1=enable */
1272 	uint64_t dwb                          : 1;  /**< Enable DWB     tracing
1273                                                          0=disable, 1=enable */
1274 #else
1275 	uint64_t dwb                          : 1;
1276 	uint64_t pl2                          : 1;
1277 	uint64_t psl1                         : 1;
1278 	uint64_t ldd                          : 1;
1279 	uint64_t ldi                          : 1;
1280 	uint64_t ldt                          : 1;
1281 	uint64_t stf                          : 1;
1282 	uint64_t stc                          : 1;
1283 	uint64_t stp                          : 1;
1284 	uint64_t stt                          : 1;
1285 	uint64_t iobld8                       : 1;
1286 	uint64_t iobld16                      : 1;
1287 	uint64_t iobld32                      : 1;
1288 	uint64_t iobld64                      : 1;
1289 	uint64_t iobst                        : 1;
1290 	uint64_t iobdma                       : 1;
1291 	uint64_t saa                          : 1;
1292 	uint64_t reserved_17_63               : 47;
1293 #endif
1294 	} cn52xx;
1295 	struct cvmx_trax_filt_cmd_cn52xx      cn52xxp1;
1296 	struct cvmx_trax_filt_cmd_cn52xx      cn56xx;
1297 	struct cvmx_trax_filt_cmd_cn52xx      cn56xxp1;
1298 	struct cvmx_trax_filt_cmd_cn52xx      cn58xx;
1299 	struct cvmx_trax_filt_cmd_cn52xx      cn58xxp1;
1300 	struct cvmx_trax_filt_cmd_cn61xx {
1301 #ifdef __BIG_ENDIAN_BITFIELD
1302 	uint64_t saa64                        : 1;  /**< Enable SAA64 tracing
1303                                                          0=disable, 1=enable */
1304 	uint64_t saa32                        : 1;  /**< Enable SAA32 tracing
1305                                                          0=disable, 1=enable */
1306 	uint64_t reserved_60_61               : 2;
1307 	uint64_t faa64                        : 1;  /**< Enable FAA64 tracing
1308                                                          0=disable, 1=enable */
1309 	uint64_t faa32                        : 1;  /**< Enable FAA32 tracing
1310                                                          0=disable, 1=enable */
1311 	uint64_t reserved_56_57               : 2;
1312 	uint64_t decr64                       : 1;  /**< Enable DECR64  tracing
1313                                                          0=disable, 1=enable */
1314 	uint64_t decr32                       : 1;  /**< Enable DECR32  tracing
1315                                                          0=disable, 1=enable */
1316 	uint64_t decr16                       : 1;  /**< Enable DECR16  tracing
1317                                                          0=disable, 1=enable */
1318 	uint64_t decr8                        : 1;  /**< Enable DECR8   tracing
1319                                                          0=disable, 1=enable */
1320 	uint64_t incr64                       : 1;  /**< Enable INCR64  tracing
1321                                                          0=disable, 1=enable */
1322 	uint64_t incr32                       : 1;  /**< Enable INCR32  tracing
1323                                                          0=disable, 1=enable */
1324 	uint64_t incr16                       : 1;  /**< Enable INCR16  tracing
1325                                                          0=disable, 1=enable */
1326 	uint64_t incr8                        : 1;  /**< Enable INCR8   tracing
1327                                                          0=disable, 1=enable */
1328 	uint64_t clr64                        : 1;  /**< Enable CLR64   tracing
1329                                                          0=disable, 1=enable */
1330 	uint64_t clr32                        : 1;  /**< Enable CLR32   tracing
1331                                                          0=disable, 1=enable */
1332 	uint64_t clr16                        : 1;  /**< Enable CLR16   tracing
1333                                                          0=disable, 1=enable */
1334 	uint64_t clr8                         : 1;  /**< Enable CLR8    tracing
1335                                                          0=disable, 1=enable */
1336 	uint64_t set64                        : 1;  /**< Enable SET64   tracing
1337                                                          0=disable, 1=enable */
1338 	uint64_t set32                        : 1;  /**< Enable SET32   tracing
1339                                                          0=disable, 1=enable */
1340 	uint64_t set16                        : 1;  /**< Enable SET16   tracing
1341                                                          0=disable, 1=enable */
1342 	uint64_t set8                         : 1;  /**< Enable SET8    tracing
1343                                                          0=disable, 1=enable */
1344 	uint64_t iobst64                      : 1;  /**< Enable IOBST64 tracing
1345                                                          0=disable, 1=enable */
1346 	uint64_t iobst32                      : 1;  /**< Enable IOBST32 tracing
1347                                                          0=disable, 1=enable */
1348 	uint64_t iobst16                      : 1;  /**< Enable IOBST16 tracing
1349                                                          0=disable, 1=enable */
1350 	uint64_t iobst8                       : 1;  /**< Enable IOBST8  tracing
1351                                                          0=disable, 1=enable */
1352 	uint64_t iobld64                      : 1;  /**< Enable IOBLD64 tracing
1353                                                          0=disable, 1=enable */
1354 	uint64_t iobld32                      : 1;  /**< Enable IOBLD32 tracing
1355                                                          0=disable, 1=enable */
1356 	uint64_t iobld16                      : 1;  /**< Enable IOBLD16 tracing
1357                                                          0=disable, 1=enable */
1358 	uint64_t iobld8                       : 1;  /**< Enable IOBLD8  tracing
1359                                                          0=disable, 1=enable */
1360 	uint64_t lckl2                        : 1;  /**< Enable LCKL2   tracing
1361                                                          0=disable, 1=enable */
1362 	uint64_t wbl2                         : 1;  /**< Enable WBL2    tracing
1363                                                          0=disable, 1=enable */
1364 	uint64_t wbil2                        : 1;  /**< Enable WBIL2   tracing
1365                                                          0=disable, 1=enable */
1366 	uint64_t invl2                        : 1;  /**< Enable INVL2   tracing
1367                                                          0=disable, 1=enable */
1368 	uint64_t reserved_27_27               : 1;
1369 	uint64_t stgl2i                       : 1;  /**< Enable STGL2I  tracing
1370                                                          0=disable, 1=enable */
1371 	uint64_t ltgl2i                       : 1;  /**< Enable LTGL2I  tracing
1372                                                          0=disable, 1=enable */
1373 	uint64_t wbil2i                       : 1;  /**< Enable WBIL2I  tracing
1374                                                          0=disable, 1=enable */
1375 	uint64_t fas64                        : 1;  /**< Enable FAS64   tracing
1376                                                          0=disable, 1=enable */
1377 	uint64_t fas32                        : 1;  /**< Enable FAS32   tracing
1378                                                          0=disable, 1=enable */
1379 	uint64_t sttil1                       : 1;  /**< Enable STTIL1  tracing
1380                                                          0=disable, 1=enable */
1381 	uint64_t stfil1                       : 1;  /**< Enable STFIL1  tracing
1382                                                          0=disable, 1=enable */
1383 	uint64_t stc                          : 1;  /**< Enable STC     tracing
1384                                                          0=disable, 1=enable */
1385 	uint64_t stp                          : 1;  /**< Enable STP     tracing
1386                                                          0=disable, 1=enable */
1387 	uint64_t stt                          : 1;  /**< Enable STT     tracing
1388                                                          0=disable, 1=enable */
1389 	uint64_t stf                          : 1;  /**< Enable STF     tracing
1390                                                          0=disable, 1=enable */
1391 	uint64_t iobdma                       : 1;  /**< Enable IOBDMA  tracing
1392                                                          0=disable, 1=enable */
1393 	uint64_t reserved_10_14               : 5;
1394 	uint64_t psl1                         : 1;  /**< Enable PSL1    tracing
1395                                                          0=disable, 1=enable */
1396 	uint64_t ldd                          : 1;  /**< Enable LDD     tracing
1397                                                          0=disable, 1=enable */
1398 	uint64_t reserved_6_7                 : 2;
1399 	uint64_t dwb                          : 1;  /**< Enable DWB     tracing
1400                                                          0=disable, 1=enable */
1401 	uint64_t rpl2                         : 1;  /**< Enable RPL2    tracing
1402                                                          0=disable, 1=enable */
1403 	uint64_t pl2                          : 1;  /**< Enable PL2     tracing
1404                                                          0=disable, 1=enable */
1405 	uint64_t ldi                          : 1;  /**< Enable LDI     tracing
1406                                                          0=disable, 1=enable */
1407 	uint64_t ldt                          : 1;  /**< Enable LDT     tracing
1408                                                          0=disable, 1=enable */
1409 	uint64_t nop                          : 1;  /**< Enable NOP     tracing
1410                                                          0=disable, 1=enable */
1411 #else
1412 	uint64_t nop                          : 1;
1413 	uint64_t ldt                          : 1;
1414 	uint64_t ldi                          : 1;
1415 	uint64_t pl2                          : 1;
1416 	uint64_t rpl2                         : 1;
1417 	uint64_t dwb                          : 1;
1418 	uint64_t reserved_6_7                 : 2;
1419 	uint64_t ldd                          : 1;
1420 	uint64_t psl1                         : 1;
1421 	uint64_t reserved_10_14               : 5;
1422 	uint64_t iobdma                       : 1;
1423 	uint64_t stf                          : 1;
1424 	uint64_t stt                          : 1;
1425 	uint64_t stp                          : 1;
1426 	uint64_t stc                          : 1;
1427 	uint64_t stfil1                       : 1;
1428 	uint64_t sttil1                       : 1;
1429 	uint64_t fas32                        : 1;
1430 	uint64_t fas64                        : 1;
1431 	uint64_t wbil2i                       : 1;
1432 	uint64_t ltgl2i                       : 1;
1433 	uint64_t stgl2i                       : 1;
1434 	uint64_t reserved_27_27               : 1;
1435 	uint64_t invl2                        : 1;
1436 	uint64_t wbil2                        : 1;
1437 	uint64_t wbl2                         : 1;
1438 	uint64_t lckl2                        : 1;
1439 	uint64_t iobld8                       : 1;
1440 	uint64_t iobld16                      : 1;
1441 	uint64_t iobld32                      : 1;
1442 	uint64_t iobld64                      : 1;
1443 	uint64_t iobst8                       : 1;
1444 	uint64_t iobst16                      : 1;
1445 	uint64_t iobst32                      : 1;
1446 	uint64_t iobst64                      : 1;
1447 	uint64_t set8                         : 1;
1448 	uint64_t set16                        : 1;
1449 	uint64_t set32                        : 1;
1450 	uint64_t set64                        : 1;
1451 	uint64_t clr8                         : 1;
1452 	uint64_t clr16                        : 1;
1453 	uint64_t clr32                        : 1;
1454 	uint64_t clr64                        : 1;
1455 	uint64_t incr8                        : 1;
1456 	uint64_t incr16                       : 1;
1457 	uint64_t incr32                       : 1;
1458 	uint64_t incr64                       : 1;
1459 	uint64_t decr8                        : 1;
1460 	uint64_t decr16                       : 1;
1461 	uint64_t decr32                       : 1;
1462 	uint64_t decr64                       : 1;
1463 	uint64_t reserved_56_57               : 2;
1464 	uint64_t faa32                        : 1;
1465 	uint64_t faa64                        : 1;
1466 	uint64_t reserved_60_61               : 2;
1467 	uint64_t saa32                        : 1;
1468 	uint64_t saa64                        : 1;
1469 #endif
1470 	} cn61xx;
1471 	struct cvmx_trax_filt_cmd_cn61xx      cn63xx;
1472 	struct cvmx_trax_filt_cmd_cn61xx      cn63xxp1;
1473 	struct cvmx_trax_filt_cmd_cn61xx      cn66xx;
1474 	struct cvmx_trax_filt_cmd_cn61xx      cn68xx;
1475 	struct cvmx_trax_filt_cmd_cn61xx      cn68xxp1;
1476 	struct cvmx_trax_filt_cmd_cn61xx      cnf71xx;
1477 };
1478 typedef union cvmx_trax_filt_cmd cvmx_trax_filt_cmd_t;
1479 
1480 /**
1481  * cvmx_tra#_filt_did
1482  *
1483  * TRA_FILT_DID = Trace Buffer Filter DestinationId Mask
1484  *
1485  * Description:
1486  */
1487 union cvmx_trax_filt_did {
1488 	uint64_t u64;
1489 	struct cvmx_trax_filt_did_s {
1490 #ifdef __BIG_ENDIAN_BITFIELD
1491 	uint64_t reserved_13_63               : 51;
1492 	uint64_t pow                          : 1;  /**< Enable tracing of requests to POW
1493                                                          (get work, add work, status/memory/index
1494                                                          loads, NULLRd loads, CSR's) */
1495 	uint64_t reserved_9_11                : 3;
1496 	uint64_t rng                          : 1;  /**< Enable tracing of requests to RNG
1497                                                          (loads/IOBDMA's are legal) */
1498 	uint64_t zip                          : 1;  /**< Enable tracing of requests to ZIP
1499                                                          (doorbell stores are legal) */
1500 	uint64_t dfa                          : 1;  /**< Enable tracing of requests to DFA
1501                                                          (CSR's and operations are legal) */
1502 	uint64_t fpa                          : 1;  /**< Enable tracing of requests to FPA
1503                                                          (alloc's (loads/IOBDMA's), frees (stores) are legal) */
1504 	uint64_t key                          : 1;  /**< Enable tracing of requests to KEY memory
1505                                                          (loads/IOBDMA's/stores are legal) */
1506 	uint64_t reserved_3_3                 : 1;
1507 	uint64_t illegal3                     : 2;  /**< Illegal destinations */
1508 	uint64_t mio                          : 1;  /**< Enable tracing of MIO accesses
1509                                                          (CIU and GPIO CSR's, boot bus accesses) */
1510 #else
1511 	uint64_t mio                          : 1;
1512 	uint64_t illegal3                     : 2;
1513 	uint64_t reserved_3_3                 : 1;
1514 	uint64_t key                          : 1;
1515 	uint64_t fpa                          : 1;
1516 	uint64_t dfa                          : 1;
1517 	uint64_t zip                          : 1;
1518 	uint64_t rng                          : 1;
1519 	uint64_t reserved_9_11                : 3;
1520 	uint64_t pow                          : 1;
1521 	uint64_t reserved_13_63               : 51;
1522 #endif
1523 	} s;
1524 	struct cvmx_trax_filt_did_cn31xx {
1525 #ifdef __BIG_ENDIAN_BITFIELD
1526 	uint64_t reserved_32_63               : 32;
1527 	uint64_t illegal                      : 19; /**< Illegal destinations */
1528 	uint64_t pow                          : 1;  /**< Enable tracing of requests to POW
1529                                                          (get work, add work, status/memory/index
1530                                                          loads, NULLRd loads, CSR's) */
1531 	uint64_t illegal2                     : 3;  /**< Illegal destinations */
1532 	uint64_t rng                          : 1;  /**< Enable tracing of requests to RNG
1533                                                          (loads/IOBDMA's are legal) */
1534 	uint64_t zip                          : 1;  /**< Enable tracing of requests to ZIP
1535                                                          (doorbell stores are legal) */
1536 	uint64_t dfa                          : 1;  /**< Enable tracing of requests to DFA
1537                                                          (CSR's and operations are legal) */
1538 	uint64_t fpa                          : 1;  /**< Enable tracing of requests to FPA
1539                                                          (alloc's (loads/IOBDMA's), frees (stores) are legal) */
1540 	uint64_t key                          : 1;  /**< Enable tracing of requests to KEY memory
1541                                                          (loads/IOBDMA's/stores are legal) */
1542 	uint64_t pci                          : 1;  /**< Enable tracing of requests to PCI and RSL-type
1543                                                          CSR's (RSL CSR's, PCI bus operations, PCI
1544                                                          CSR's) */
1545 	uint64_t illegal3                     : 2;  /**< Illegal destinations */
1546 	uint64_t mio                          : 1;  /**< Enable tracing of CIU and GPIO CSR's */
1547 #else
1548 	uint64_t mio                          : 1;
1549 	uint64_t illegal3                     : 2;
1550 	uint64_t pci                          : 1;
1551 	uint64_t key                          : 1;
1552 	uint64_t fpa                          : 1;
1553 	uint64_t dfa                          : 1;
1554 	uint64_t zip                          : 1;
1555 	uint64_t rng                          : 1;
1556 	uint64_t illegal2                     : 3;
1557 	uint64_t pow                          : 1;
1558 	uint64_t illegal                      : 19;
1559 	uint64_t reserved_32_63               : 32;
1560 #endif
1561 	} cn31xx;
1562 	struct cvmx_trax_filt_did_cn31xx      cn38xx;
1563 	struct cvmx_trax_filt_did_cn31xx      cn38xxp2;
1564 	struct cvmx_trax_filt_did_cn31xx      cn52xx;
1565 	struct cvmx_trax_filt_did_cn31xx      cn52xxp1;
1566 	struct cvmx_trax_filt_did_cn31xx      cn56xx;
1567 	struct cvmx_trax_filt_did_cn31xx      cn56xxp1;
1568 	struct cvmx_trax_filt_did_cn31xx      cn58xx;
1569 	struct cvmx_trax_filt_did_cn31xx      cn58xxp1;
1570 	struct cvmx_trax_filt_did_cn61xx {
1571 #ifdef __BIG_ENDIAN_BITFIELD
1572 	uint64_t reserved_32_63               : 32;
1573 	uint64_t illegal5                     : 1;  /**< Illegal destinations */
1574 	uint64_t fau                          : 1;  /**< Enable tracing of FAU accesses */
1575 	uint64_t illegal4                     : 2;  /**< Illegal destinations */
1576 	uint64_t dpi                          : 1;  /**< Enable tracing of DPI accesses
1577                                                          (DPI NCB CSRs) */
1578 	uint64_t illegal                      : 12; /**< Illegal destinations */
1579 	uint64_t rad                          : 1;  /**< Enable tracing of RAD accesses
1580                                                          (doorbells) */
1581 	uint64_t usb0                         : 1;  /**< Enable tracing of USB0 accesses
1582                                                          (UAHC0 EHCI and OHCI NCB CSRs) */
1583 	uint64_t pow                          : 1;  /**< Enable tracing of requests to POW
1584                                                          (get work, add work, status/memory/index
1585                                                          loads, NULLRd loads, CSR's) */
1586 	uint64_t illegal2                     : 1;  /**< Illegal destination */
1587 	uint64_t pko                          : 1;  /**< Enable tracing of PKO accesses
1588                                                          (doorbells) */
1589 	uint64_t ipd                          : 1;  /**< Enable tracing of IPD CSR accesses
1590                                                          (IPD CSRs) */
1591 	uint64_t rng                          : 1;  /**< Enable tracing of requests to RNG
1592                                                          (loads/IOBDMA's are legal) */
1593 	uint64_t zip                          : 1;  /**< Enable tracing of requests to ZIP
1594                                                          (doorbell stores are legal) */
1595 	uint64_t dfa                          : 1;  /**< Enable tracing of requests to DFA
1596                                                          (CSR's and operations are legal) */
1597 	uint64_t fpa                          : 1;  /**< Enable tracing of requests to FPA
1598                                                          (alloc's (loads/IOBDMA's), frees (stores) are legal) */
1599 	uint64_t key                          : 1;  /**< Enable tracing of requests to KEY memory
1600                                                          (loads/IOBDMA's/stores are legal) */
1601 	uint64_t sli                          : 1;  /**< Enable tracing of requests to SLI and RSL-type
1602                                                          CSR's (RSL CSR's, PCI/sRIO bus operations, SLI
1603                                                          CSR's) */
1604 	uint64_t illegal3                     : 2;  /**< Illegal destinations */
1605 	uint64_t mio                          : 1;  /**< Enable tracing of MIO accesses
1606                                                          (CIU and GPIO CSR's, boot bus accesses) */
1607 #else
1608 	uint64_t mio                          : 1;
1609 	uint64_t illegal3                     : 2;
1610 	uint64_t sli                          : 1;
1611 	uint64_t key                          : 1;
1612 	uint64_t fpa                          : 1;
1613 	uint64_t dfa                          : 1;
1614 	uint64_t zip                          : 1;
1615 	uint64_t rng                          : 1;
1616 	uint64_t ipd                          : 1;
1617 	uint64_t pko                          : 1;
1618 	uint64_t illegal2                     : 1;
1619 	uint64_t pow                          : 1;
1620 	uint64_t usb0                         : 1;
1621 	uint64_t rad                          : 1;
1622 	uint64_t illegal                      : 12;
1623 	uint64_t dpi                          : 1;
1624 	uint64_t illegal4                     : 2;
1625 	uint64_t fau                          : 1;
1626 	uint64_t illegal5                     : 1;
1627 	uint64_t reserved_32_63               : 32;
1628 #endif
1629 	} cn61xx;
1630 	struct cvmx_trax_filt_did_cn61xx      cn63xx;
1631 	struct cvmx_trax_filt_did_cn61xx      cn63xxp1;
1632 	struct cvmx_trax_filt_did_cn61xx      cn66xx;
1633 	struct cvmx_trax_filt_did_cn61xx      cn68xx;
1634 	struct cvmx_trax_filt_did_cn61xx      cn68xxp1;
1635 	struct cvmx_trax_filt_did_cn61xx      cnf71xx;
1636 };
1637 typedef union cvmx_trax_filt_did cvmx_trax_filt_did_t;
1638 
1639 /**
1640  * cvmx_tra#_filt_sid
1641  *
1642  * TRA_FILT_SID = Trace Buffer Filter SourceId Mask
1643  *
1644  * Description:
1645  */
1646 union cvmx_trax_filt_sid {
1647 	uint64_t u64;
1648 	struct cvmx_trax_filt_sid_s {
1649 #ifdef __BIG_ENDIAN_BITFIELD
1650 	uint64_t reserved_20_63               : 44;
1651 	uint64_t dwb                          : 1;  /**< Enable tracing of requests from the IOB DWB engine */
1652 	uint64_t iobreq                       : 1;  /**< Enable tracing of requests from FPA,TIM,DFA,
1653                                                          PCI,ZIP,POW, and PKO (writes) */
1654 	uint64_t pko                          : 1;  /**< Enable tracing of read requests from PKO */
1655 	uint64_t pki                          : 1;  /**< Enable tracing of write requests from PIP/IPD */
1656 	uint64_t pp                           : 16; /**< Enable tracing from PP[N] with matching SourceID
1657                                                          0=disable, 1=enable per bit N where 0<=N<=3 */
1658 #else
1659 	uint64_t pp                           : 16;
1660 	uint64_t pki                          : 1;
1661 	uint64_t pko                          : 1;
1662 	uint64_t iobreq                       : 1;
1663 	uint64_t dwb                          : 1;
1664 	uint64_t reserved_20_63               : 44;
1665 #endif
1666 	} s;
1667 	struct cvmx_trax_filt_sid_s           cn31xx;
1668 	struct cvmx_trax_filt_sid_s           cn38xx;
1669 	struct cvmx_trax_filt_sid_s           cn38xxp2;
1670 	struct cvmx_trax_filt_sid_s           cn52xx;
1671 	struct cvmx_trax_filt_sid_s           cn52xxp1;
1672 	struct cvmx_trax_filt_sid_s           cn56xx;
1673 	struct cvmx_trax_filt_sid_s           cn56xxp1;
1674 	struct cvmx_trax_filt_sid_s           cn58xx;
1675 	struct cvmx_trax_filt_sid_s           cn58xxp1;
1676 	struct cvmx_trax_filt_sid_cn61xx {
1677 #ifdef __BIG_ENDIAN_BITFIELD
1678 	uint64_t reserved_20_63               : 44;
1679 	uint64_t dwb                          : 1;  /**< Enable tracing of requests from the IOB DWB engine */
1680 	uint64_t iobreq                       : 1;  /**< Enable tracing of requests from FPA,TIM,DFA,
1681                                                          PCI,ZIP,POW, and PKO (writes) */
1682 	uint64_t pko                          : 1;  /**< Enable tracing of read requests from PKO */
1683 	uint64_t pki                          : 1;  /**< Enable tracing of write requests from PIP/IPD */
1684 	uint64_t reserved_4_15                : 12;
1685 	uint64_t pp                           : 4;  /**< Enable tracing from PP[N] with matching SourceID
1686                                                          0=disable, 1=enable per bit N where 0<=N<=3 */
1687 #else
1688 	uint64_t pp                           : 4;
1689 	uint64_t reserved_4_15                : 12;
1690 	uint64_t pki                          : 1;
1691 	uint64_t pko                          : 1;
1692 	uint64_t iobreq                       : 1;
1693 	uint64_t dwb                          : 1;
1694 	uint64_t reserved_20_63               : 44;
1695 #endif
1696 	} cn61xx;
1697 	struct cvmx_trax_filt_sid_cn63xx {
1698 #ifdef __BIG_ENDIAN_BITFIELD
1699 	uint64_t reserved_20_63               : 44;
1700 	uint64_t dwb                          : 1;  /**< Enable tracing of requests from the IOB DWB engine */
1701 	uint64_t iobreq                       : 1;  /**< Enable tracing of requests from FPA,TIM,DFA,
1702                                                          PCI,ZIP,POW, and PKO (writes) */
1703 	uint64_t pko                          : 1;  /**< Enable tracing of read requests from PKO */
1704 	uint64_t pki                          : 1;  /**< Enable tracing of write requests from PIP/IPD */
1705 	uint64_t reserved_8_15                : 8;
1706 	uint64_t pp                           : 8;  /**< Enable tracing from PP[N] with matching SourceID
1707                                                          0=disable, 1=enableper bit N where  0<=N<=15 */
1708 #else
1709 	uint64_t pp                           : 8;
1710 	uint64_t reserved_8_15                : 8;
1711 	uint64_t pki                          : 1;
1712 	uint64_t pko                          : 1;
1713 	uint64_t iobreq                       : 1;
1714 	uint64_t dwb                          : 1;
1715 	uint64_t reserved_20_63               : 44;
1716 #endif
1717 	} cn63xx;
1718 	struct cvmx_trax_filt_sid_cn63xxp1 {
1719 #ifdef __BIG_ENDIAN_BITFIELD
1720 	uint64_t reserved_20_63               : 44;
1721 	uint64_t dwb                          : 1;  /**< Enable tracing of requests from the IOB DWB engine */
1722 	uint64_t iobreq                       : 1;  /**< Enable tracing of requests from FPA,TIM,DFA,
1723                                                          PCI,ZIP,POW, and PKO (writes) */
1724 	uint64_t pko                          : 1;  /**< Enable tracing of read requests from PKO */
1725 	uint64_t pki                          : 1;  /**< Enable tracing of write requests from PIP/IPD */
1726 	uint64_t reserved_6_15                : 10;
1727 	uint64_t pp                           : 6;  /**< Enable tracing from PP[N] with matching SourceID
1728                                                          0=disable, 1=enable per bit N where 0<=N<=5 */
1729 #else
1730 	uint64_t pp                           : 6;
1731 	uint64_t reserved_6_15                : 10;
1732 	uint64_t pki                          : 1;
1733 	uint64_t pko                          : 1;
1734 	uint64_t iobreq                       : 1;
1735 	uint64_t dwb                          : 1;
1736 	uint64_t reserved_20_63               : 44;
1737 #endif
1738 	} cn63xxp1;
1739 	struct cvmx_trax_filt_sid_cn66xx {
1740 #ifdef __BIG_ENDIAN_BITFIELD
1741 	uint64_t reserved_20_63               : 44;
1742 	uint64_t dwb                          : 1;  /**< Enable tracing of requests from the IOB DWB engine */
1743 	uint64_t iobreq                       : 1;  /**< Enable tracing of requests from FPA,TIM,DFA,
1744                                                          PCI,ZIP,POW, and PKO (writes) */
1745 	uint64_t pko                          : 1;  /**< Enable tracing of read requests from PKO */
1746 	uint64_t pki                          : 1;  /**< Enable tracing of write requests from PIP/IPD */
1747 	uint64_t reserved_10_15               : 6;
1748 	uint64_t pp                           : 10; /**< Enable tracing from PP[N] with matching SourceID
1749                                                          0=disable, 1=enableper bit N where  0<=N<=15 */
1750 #else
1751 	uint64_t pp                           : 10;
1752 	uint64_t reserved_10_15               : 6;
1753 	uint64_t pki                          : 1;
1754 	uint64_t pko                          : 1;
1755 	uint64_t iobreq                       : 1;
1756 	uint64_t dwb                          : 1;
1757 	uint64_t reserved_20_63               : 44;
1758 #endif
1759 	} cn66xx;
1760 	struct cvmx_trax_filt_sid_cn63xx      cn68xx;
1761 	struct cvmx_trax_filt_sid_cn63xx      cn68xxp1;
1762 	struct cvmx_trax_filt_sid_cn61xx      cnf71xx;
1763 };
1764 typedef union cvmx_trax_filt_sid cvmx_trax_filt_sid_t;
1765 
1766 /**
1767  * cvmx_tra#_int_status
1768  *
1769  * TRA_INT_STATUS = Trace Buffer Interrupt Status
1770  *
1771  * Description:
1772  *
1773  * Notes:
1774  * During a CSR write to this register, the write data is used as a mask to clear the selected status
1775  * bits (status'[3:0] = status[3:0] & ~write_data[3:0]).
1776  */
1777 union cvmx_trax_int_status {
1778 	uint64_t u64;
1779 	struct cvmx_trax_int_status_s {
1780 #ifdef __BIG_ENDIAN_BITFIELD
1781 	uint64_t reserved_4_63                : 60;
1782 	uint64_t mcd0_thr                     : 1;  /**< MCD0 full threshold interrupt status
1783                                                          0=trace buffer did not generate MCD0 wire pulse
1784                                                          1=trace buffer did     generate MCD0 wire pulse
1785                                                            and prevents additional MCD0_THR MCD0 wire pulses */
1786 	uint64_t mcd0_trg                     : 1;  /**< MCD0 end trigger interrupt status
1787                                                          0=trace buffer did not generate interrupt
1788                                                          1=trace buffer did     generate interrupt
1789                                                            and prevents additional MCD0_TRG MCD0 wire pulses */
1790 	uint64_t ciu_thr                      : 1;  /**< CIU full threshold interrupt status
1791                                                          0=trace buffer did not generate interrupt
1792                                                          1=trace buffer did     generate interrupt */
1793 	uint64_t ciu_trg                      : 1;  /**< CIU end trigger interrupt status
1794                                                          0=trace buffer did not generate interrupt
1795                                                          1=trace buffer did     generate interrupt */
1796 #else
1797 	uint64_t ciu_trg                      : 1;
1798 	uint64_t ciu_thr                      : 1;
1799 	uint64_t mcd0_trg                     : 1;
1800 	uint64_t mcd0_thr                     : 1;
1801 	uint64_t reserved_4_63                : 60;
1802 #endif
1803 	} s;
1804 	struct cvmx_trax_int_status_s         cn31xx;
1805 	struct cvmx_trax_int_status_s         cn38xx;
1806 	struct cvmx_trax_int_status_s         cn38xxp2;
1807 	struct cvmx_trax_int_status_s         cn52xx;
1808 	struct cvmx_trax_int_status_s         cn52xxp1;
1809 	struct cvmx_trax_int_status_s         cn56xx;
1810 	struct cvmx_trax_int_status_s         cn56xxp1;
1811 	struct cvmx_trax_int_status_s         cn58xx;
1812 	struct cvmx_trax_int_status_s         cn58xxp1;
1813 	struct cvmx_trax_int_status_s         cn61xx;
1814 	struct cvmx_trax_int_status_s         cn63xx;
1815 	struct cvmx_trax_int_status_s         cn63xxp1;
1816 	struct cvmx_trax_int_status_s         cn66xx;
1817 	struct cvmx_trax_int_status_s         cn68xx;
1818 	struct cvmx_trax_int_status_s         cn68xxp1;
1819 	struct cvmx_trax_int_status_s         cnf71xx;
1820 };
1821 typedef union cvmx_trax_int_status cvmx_trax_int_status_t;
1822 
1823 /**
1824  * cvmx_tra#_read_dat
1825  *
1826  * TRA_READ_DAT = Trace Buffer Read Data
1827  *
1828  * Description:
1829  *
1830  * Notes:
1831  * This CSR is a memory of 1024 entries.  When the trace was enabled, the read pointer was set to entry
1832  * 0 by hardware.  Each read to this address increments the read pointer.
1833  */
1834 union cvmx_trax_read_dat {
1835 	uint64_t u64;
1836 	struct cvmx_trax_read_dat_s {
1837 #ifdef __BIG_ENDIAN_BITFIELD
1838 	uint64_t data                         : 64; /**< Trace buffer data for current entry
1839                                                          if TRA_CTL[16]== 1; returns lower 64 bits of entry
1840                                                          else two access are necessary to get all of 69bits
1841                                                          first access of a pair is the lower 64 bits and
1842                                                          second access is the upper 5 bits. */
1843 #else
1844 	uint64_t data                         : 64;
1845 #endif
1846 	} s;
1847 	struct cvmx_trax_read_dat_s           cn31xx;
1848 	struct cvmx_trax_read_dat_s           cn38xx;
1849 	struct cvmx_trax_read_dat_s           cn38xxp2;
1850 	struct cvmx_trax_read_dat_s           cn52xx;
1851 	struct cvmx_trax_read_dat_s           cn52xxp1;
1852 	struct cvmx_trax_read_dat_s           cn56xx;
1853 	struct cvmx_trax_read_dat_s           cn56xxp1;
1854 	struct cvmx_trax_read_dat_s           cn58xx;
1855 	struct cvmx_trax_read_dat_s           cn58xxp1;
1856 	struct cvmx_trax_read_dat_s           cn61xx;
1857 	struct cvmx_trax_read_dat_s           cn63xx;
1858 	struct cvmx_trax_read_dat_s           cn63xxp1;
1859 	struct cvmx_trax_read_dat_s           cn66xx;
1860 	struct cvmx_trax_read_dat_s           cn68xx;
1861 	struct cvmx_trax_read_dat_s           cn68xxp1;
1862 	struct cvmx_trax_read_dat_s           cnf71xx;
1863 };
1864 typedef union cvmx_trax_read_dat cvmx_trax_read_dat_t;
1865 
1866 /**
1867  * cvmx_tra#_read_dat_hi
1868  *
1869  * TRA_READ_DAT_HI = Trace Buffer Read Data- upper 5 bits do not use if TRA_CTL[16]==0
1870  *
1871  * Description:
1872  *
1873  * Notes:
1874  * This CSR is a memory of 1024 entries. Reads to this address do not increment the read pointer.  The
1875  * 5 bits read are the upper 5 bits of the TRA entry last read by the TRA_READ_DAT reg.
1876  */
1877 union cvmx_trax_read_dat_hi {
1878 	uint64_t u64;
1879 	struct cvmx_trax_read_dat_hi_s {
1880 #ifdef __BIG_ENDIAN_BITFIELD
1881 	uint64_t reserved_5_63                : 59;
1882 	uint64_t data                         : 5;  /**< Trace buffer data[68:64] for current entry */
1883 #else
1884 	uint64_t data                         : 5;
1885 	uint64_t reserved_5_63                : 59;
1886 #endif
1887 	} s;
1888 	struct cvmx_trax_read_dat_hi_s        cn61xx;
1889 	struct cvmx_trax_read_dat_hi_s        cn63xx;
1890 	struct cvmx_trax_read_dat_hi_s        cn66xx;
1891 	struct cvmx_trax_read_dat_hi_s        cn68xx;
1892 	struct cvmx_trax_read_dat_hi_s        cn68xxp1;
1893 	struct cvmx_trax_read_dat_hi_s        cnf71xx;
1894 };
1895 typedef union cvmx_trax_read_dat_hi cvmx_trax_read_dat_hi_t;
1896 
1897 /**
1898  * cvmx_tra#_trig0_adr_adr
1899  *
1900  * TRA_TRIG0_ADR_ADR = Trace Buffer Filter Address Address
1901  *
1902  * Description:
1903  */
1904 union cvmx_trax_trig0_adr_adr {
1905 	uint64_t u64;
1906 	struct cvmx_trax_trig0_adr_adr_s {
1907 #ifdef __BIG_ENDIAN_BITFIELD
1908 	uint64_t reserved_38_63               : 26;
1909 	uint64_t adr                          : 38; /**< Unmasked Address
1910                                                          The combination of TRA_TRIG0_ADR_ADR and
1911                                                          TRA_TRIG0_ADR_MSK is a masked address to
1912                                                          enable tracing of only those commands whose
1913                                                          masked address matches */
1914 #else
1915 	uint64_t adr                          : 38;
1916 	uint64_t reserved_38_63               : 26;
1917 #endif
1918 	} s;
1919 	struct cvmx_trax_trig0_adr_adr_cn31xx {
1920 #ifdef __BIG_ENDIAN_BITFIELD
1921 	uint64_t reserved_36_63               : 28;
1922 	uint64_t adr                          : 36; /**< Unmasked Address
1923                                                          The combination of TRA(0..0)_TRIG0_ADR_ADR and
1924                                                          TRA(0..0)_TRIG0_ADR_MSK is a masked address to
1925                                                          enable tracing of only those commands whose
1926                                                          masked address matches */
1927 #else
1928 	uint64_t adr                          : 36;
1929 	uint64_t reserved_36_63               : 28;
1930 #endif
1931 	} cn31xx;
1932 	struct cvmx_trax_trig0_adr_adr_cn31xx cn38xx;
1933 	struct cvmx_trax_trig0_adr_adr_cn31xx cn38xxp2;
1934 	struct cvmx_trax_trig0_adr_adr_cn31xx cn52xx;
1935 	struct cvmx_trax_trig0_adr_adr_cn31xx cn52xxp1;
1936 	struct cvmx_trax_trig0_adr_adr_cn31xx cn56xx;
1937 	struct cvmx_trax_trig0_adr_adr_cn31xx cn56xxp1;
1938 	struct cvmx_trax_trig0_adr_adr_cn31xx cn58xx;
1939 	struct cvmx_trax_trig0_adr_adr_cn31xx cn58xxp1;
1940 	struct cvmx_trax_trig0_adr_adr_s      cn61xx;
1941 	struct cvmx_trax_trig0_adr_adr_s      cn63xx;
1942 	struct cvmx_trax_trig0_adr_adr_s      cn63xxp1;
1943 	struct cvmx_trax_trig0_adr_adr_s      cn66xx;
1944 	struct cvmx_trax_trig0_adr_adr_s      cn68xx;
1945 	struct cvmx_trax_trig0_adr_adr_s      cn68xxp1;
1946 	struct cvmx_trax_trig0_adr_adr_s      cnf71xx;
1947 };
1948 typedef union cvmx_trax_trig0_adr_adr cvmx_trax_trig0_adr_adr_t;
1949 
1950 /**
1951  * cvmx_tra#_trig0_adr_msk
1952  *
1953  * TRA_TRIG0_ADR_MSK = Trace Buffer Filter Address Mask
1954  *
1955  * Description:
1956  */
1957 union cvmx_trax_trig0_adr_msk {
1958 	uint64_t u64;
1959 	struct cvmx_trax_trig0_adr_msk_s {
1960 #ifdef __BIG_ENDIAN_BITFIELD
1961 	uint64_t reserved_38_63               : 26;
1962 	uint64_t adr                          : 38; /**< Address Mask
1963                                                          The combination of TRA_TRIG0_ADR_ADR and
1964                                                          TRA_TRIG0_ADR_MSK is a masked address to
1965                                                          enable tracing of only those commands whose
1966                                                          masked address matches.  When a mask bit is not
1967                                                          set, the corresponding address bits are assumed
1968                                                          to match.  Also, note that IOBDMAs do not have
1969                                                          proper addresses, so when TRA_TRIG0_CMD[IOBDMA]
1970                                                          is set, TRA_FILT_TRIG0_MSK must be zero to
1971                                                          guarantee that any IOBDMAs are recognized as
1972                                                          triggers. */
1973 #else
1974 	uint64_t adr                          : 38;
1975 	uint64_t reserved_38_63               : 26;
1976 #endif
1977 	} s;
1978 	struct cvmx_trax_trig0_adr_msk_cn31xx {
1979 #ifdef __BIG_ENDIAN_BITFIELD
1980 	uint64_t reserved_36_63               : 28;
1981 	uint64_t adr                          : 36; /**< Address Mask
1982                                                          The combination of TRA(0..0)_TRIG0_ADR_ADR and
1983                                                          TRA(0..0)_TRIG0_ADR_MSK is a masked address to
1984                                                          enable tracing of only those commands whose
1985                                                          masked address matches.  When a mask bit is not
1986                                                          set, the corresponding address bits are assumed
1987                                                          to match.  Also, note that IOBDMAs do not have
1988                                                          proper addresses, so when TRA(0..0)_TRIG0_CMD[IOBDMA]
1989                                                          is set, TRA(0..0)_FILT_TRIG0_MSK must be zero to
1990                                                          guarantee that any IOBDMAs are recognized as
1991                                                          triggers. */
1992 #else
1993 	uint64_t adr                          : 36;
1994 	uint64_t reserved_36_63               : 28;
1995 #endif
1996 	} cn31xx;
1997 	struct cvmx_trax_trig0_adr_msk_cn31xx cn38xx;
1998 	struct cvmx_trax_trig0_adr_msk_cn31xx cn38xxp2;
1999 	struct cvmx_trax_trig0_adr_msk_cn31xx cn52xx;
2000 	struct cvmx_trax_trig0_adr_msk_cn31xx cn52xxp1;
2001 	struct cvmx_trax_trig0_adr_msk_cn31xx cn56xx;
2002 	struct cvmx_trax_trig0_adr_msk_cn31xx cn56xxp1;
2003 	struct cvmx_trax_trig0_adr_msk_cn31xx cn58xx;
2004 	struct cvmx_trax_trig0_adr_msk_cn31xx cn58xxp1;
2005 	struct cvmx_trax_trig0_adr_msk_s      cn61xx;
2006 	struct cvmx_trax_trig0_adr_msk_s      cn63xx;
2007 	struct cvmx_trax_trig0_adr_msk_s      cn63xxp1;
2008 	struct cvmx_trax_trig0_adr_msk_s      cn66xx;
2009 	struct cvmx_trax_trig0_adr_msk_s      cn68xx;
2010 	struct cvmx_trax_trig0_adr_msk_s      cn68xxp1;
2011 	struct cvmx_trax_trig0_adr_msk_s      cnf71xx;
2012 };
2013 typedef union cvmx_trax_trig0_adr_msk cvmx_trax_trig0_adr_msk_t;
2014 
2015 /**
2016  * cvmx_tra#_trig0_cmd
2017  *
2018  * TRA_TRIG0_CMD = Trace Buffer Filter Command Mask
2019  *
2020  * Description:
2021  *
2022  * Notes:
2023  * Note that the trace buffer does not do proper IOBDMA address compares.  Thus, if IOBDMA is set, then
2024  * the address compare must be disabled (i.e. TRA_TRIG0_ADR_MSK set to zero) to guarantee that IOBDMAs
2025  * are recognized as triggers.
2026  */
2027 union cvmx_trax_trig0_cmd {
2028 	uint64_t u64;
2029 	struct cvmx_trax_trig0_cmd_s {
2030 #ifdef __BIG_ENDIAN_BITFIELD
2031 	uint64_t saa64                        : 1;  /**< Enable SAA64 tracing
2032                                                          0=disable, 1=enable */
2033 	uint64_t saa32                        : 1;  /**< Enable SAA32 tracing
2034                                                          0=disable, 1=enable */
2035 	uint64_t reserved_60_61               : 2;
2036 	uint64_t faa64                        : 1;  /**< Enable FAA64 tracing
2037                                                          0=disable, 1=enable */
2038 	uint64_t faa32                        : 1;  /**< Enable FAA32 tracing
2039                                                          0=disable, 1=enable */
2040 	uint64_t reserved_56_57               : 2;
2041 	uint64_t decr64                       : 1;  /**< Enable DECR64  tracing
2042                                                          0=disable, 1=enable */
2043 	uint64_t decr32                       : 1;  /**< Enable DECR32  tracing
2044                                                          0=disable, 1=enable */
2045 	uint64_t decr16                       : 1;  /**< Enable DECR16  tracing
2046                                                          0=disable, 1=enable */
2047 	uint64_t decr8                        : 1;  /**< Enable DECR8   tracing
2048                                                          0=disable, 1=enable */
2049 	uint64_t incr64                       : 1;  /**< Enable INCR64  tracing
2050                                                          0=disable, 1=enable */
2051 	uint64_t incr32                       : 1;  /**< Enable INCR32  tracing
2052                                                          0=disable, 1=enable */
2053 	uint64_t incr16                       : 1;  /**< Enable INCR16  tracing
2054                                                          0=disable, 1=enable */
2055 	uint64_t incr8                        : 1;  /**< Enable INCR8   tracing
2056                                                          0=disable, 1=enable */
2057 	uint64_t clr64                        : 1;  /**< Enable CLR64   tracing
2058                                                          0=disable, 1=enable */
2059 	uint64_t clr32                        : 1;  /**< Enable CLR32   tracing
2060                                                          0=disable, 1=enable */
2061 	uint64_t clr16                        : 1;  /**< Enable CLR16   tracing
2062                                                          0=disable, 1=enable */
2063 	uint64_t clr8                         : 1;  /**< Enable CLR8    tracing
2064                                                          0=disable, 1=enable */
2065 	uint64_t set64                        : 1;  /**< Enable SET64   tracing
2066                                                          0=disable, 1=enable */
2067 	uint64_t set32                        : 1;  /**< Enable SET32   tracing
2068                                                          0=disable, 1=enable */
2069 	uint64_t set16                        : 1;  /**< Enable SET16   tracing
2070                                                          0=disable, 1=enable */
2071 	uint64_t set8                         : 1;  /**< Enable SET8    tracing
2072                                                          0=disable, 1=enable */
2073 	uint64_t iobst64                      : 1;  /**< Enable IOBST64 tracing
2074                                                          0=disable, 1=enable */
2075 	uint64_t iobst32                      : 1;  /**< Enable IOBST32 tracing
2076                                                          0=disable, 1=enable */
2077 	uint64_t iobst16                      : 1;  /**< Enable IOBST16 tracing
2078                                                          0=disable, 1=enable */
2079 	uint64_t iobst8                       : 1;  /**< Enable IOBST8  tracing
2080                                                          0=disable, 1=enable */
2081 	uint64_t reserved_32_35               : 4;
2082 	uint64_t lckl2                        : 1;  /**< Enable LCKL2   tracing
2083                                                          0=disable, 1=enable */
2084 	uint64_t wbl2                         : 1;  /**< Enable WBL2    tracing
2085                                                          0=disable, 1=enable */
2086 	uint64_t wbil2                        : 1;  /**< Enable WBIL2   tracing
2087                                                          0=disable, 1=enable */
2088 	uint64_t invl2                        : 1;  /**< Enable INVL2   tracing
2089                                                          0=disable, 1=enable */
2090 	uint64_t reserved_27_27               : 1;
2091 	uint64_t stgl2i                       : 1;  /**< Enable STGL2I  tracing
2092                                                          0=disable, 1=enable */
2093 	uint64_t ltgl2i                       : 1;  /**< Enable LTGL2I  tracing
2094                                                          0=disable, 1=enable */
2095 	uint64_t wbil2i                       : 1;  /**< Enable WBIL2I  tracing
2096                                                          0=disable, 1=enable */
2097 	uint64_t fas64                        : 1;  /**< Enable FAS64   tracing
2098                                                          0=disable, 1=enable */
2099 	uint64_t fas32                        : 1;  /**< Enable FAS32   tracing
2100                                                          0=disable, 1=enable */
2101 	uint64_t sttil1                       : 1;  /**< Enable STTIL1  tracing
2102                                                          0=disable, 1=enable */
2103 	uint64_t stfil1                       : 1;  /**< Enable STFIL1  tracing
2104                                                          0=disable, 1=enable */
2105 	uint64_t reserved_16_19               : 4;
2106 	uint64_t iobdma                       : 1;  /**< Enable IOBDMA  tracing
2107                                                          0=disable, 1=enable */
2108 	uint64_t iobst                        : 1;  /**< Enable IOBST   tracing
2109                                                          0=disable, 1=enable */
2110 	uint64_t reserved_0_13                : 14;
2111 #else
2112 	uint64_t reserved_0_13                : 14;
2113 	uint64_t iobst                        : 1;
2114 	uint64_t iobdma                       : 1;
2115 	uint64_t reserved_16_19               : 4;
2116 	uint64_t stfil1                       : 1;
2117 	uint64_t sttil1                       : 1;
2118 	uint64_t fas32                        : 1;
2119 	uint64_t fas64                        : 1;
2120 	uint64_t wbil2i                       : 1;
2121 	uint64_t ltgl2i                       : 1;
2122 	uint64_t stgl2i                       : 1;
2123 	uint64_t reserved_27_27               : 1;
2124 	uint64_t invl2                        : 1;
2125 	uint64_t wbil2                        : 1;
2126 	uint64_t wbl2                         : 1;
2127 	uint64_t lckl2                        : 1;
2128 	uint64_t reserved_32_35               : 4;
2129 	uint64_t iobst8                       : 1;
2130 	uint64_t iobst16                      : 1;
2131 	uint64_t iobst32                      : 1;
2132 	uint64_t iobst64                      : 1;
2133 	uint64_t set8                         : 1;
2134 	uint64_t set16                        : 1;
2135 	uint64_t set32                        : 1;
2136 	uint64_t set64                        : 1;
2137 	uint64_t clr8                         : 1;
2138 	uint64_t clr16                        : 1;
2139 	uint64_t clr32                        : 1;
2140 	uint64_t clr64                        : 1;
2141 	uint64_t incr8                        : 1;
2142 	uint64_t incr16                       : 1;
2143 	uint64_t incr32                       : 1;
2144 	uint64_t incr64                       : 1;
2145 	uint64_t decr8                        : 1;
2146 	uint64_t decr16                       : 1;
2147 	uint64_t decr32                       : 1;
2148 	uint64_t decr64                       : 1;
2149 	uint64_t reserved_56_57               : 2;
2150 	uint64_t faa32                        : 1;
2151 	uint64_t faa64                        : 1;
2152 	uint64_t reserved_60_61               : 2;
2153 	uint64_t saa32                        : 1;
2154 	uint64_t saa64                        : 1;
2155 #endif
2156 	} s;
2157 	struct cvmx_trax_trig0_cmd_cn31xx {
2158 #ifdef __BIG_ENDIAN_BITFIELD
2159 	uint64_t reserved_16_63               : 48;
2160 	uint64_t iobdma                       : 1;  /**< Enable IOBDMA  tracing
2161                                                          0=disable, 1=enable */
2162 	uint64_t iobst                        : 1;  /**< Enable IOBST   tracing
2163                                                          0=disable, 1=enable */
2164 	uint64_t iobld64                      : 1;  /**< Enable IOBLD64 tracing
2165                                                          0=disable, 1=enable */
2166 	uint64_t iobld32                      : 1;  /**< Enable IOBLD32 tracing
2167                                                          0=disable, 1=enable */
2168 	uint64_t iobld16                      : 1;  /**< Enable IOBLD16 tracing
2169                                                          0=disable, 1=enable */
2170 	uint64_t iobld8                       : 1;  /**< Enable IOBLD8  tracing
2171                                                          0=disable, 1=enable */
2172 	uint64_t stt                          : 1;  /**< Enable STT     tracing
2173                                                          0=disable, 1=enable */
2174 	uint64_t stp                          : 1;  /**< Enable STP     tracing
2175                                                          0=disable, 1=enable */
2176 	uint64_t stc                          : 1;  /**< Enable STC     tracing
2177                                                          0=disable, 1=enable */
2178 	uint64_t stf                          : 1;  /**< Enable STF     tracing
2179                                                          0=disable, 1=enable */
2180 	uint64_t ldt                          : 1;  /**< Enable LDT     tracing
2181                                                          0=disable, 1=enable */
2182 	uint64_t ldi                          : 1;  /**< Enable LDI     tracing
2183                                                          0=disable, 1=enable */
2184 	uint64_t ldd                          : 1;  /**< Enable LDD     tracing
2185                                                          0=disable, 1=enable */
2186 	uint64_t psl1                         : 1;  /**< Enable PSL1    tracing
2187                                                          0=disable, 1=enable */
2188 	uint64_t pl2                          : 1;  /**< Enable PL2     tracing
2189                                                          0=disable, 1=enable */
2190 	uint64_t dwb                          : 1;  /**< Enable DWB     tracing
2191                                                          0=disable, 1=enable */
2192 #else
2193 	uint64_t dwb                          : 1;
2194 	uint64_t pl2                          : 1;
2195 	uint64_t psl1                         : 1;
2196 	uint64_t ldd                          : 1;
2197 	uint64_t ldi                          : 1;
2198 	uint64_t ldt                          : 1;
2199 	uint64_t stf                          : 1;
2200 	uint64_t stc                          : 1;
2201 	uint64_t stp                          : 1;
2202 	uint64_t stt                          : 1;
2203 	uint64_t iobld8                       : 1;
2204 	uint64_t iobld16                      : 1;
2205 	uint64_t iobld32                      : 1;
2206 	uint64_t iobld64                      : 1;
2207 	uint64_t iobst                        : 1;
2208 	uint64_t iobdma                       : 1;
2209 	uint64_t reserved_16_63               : 48;
2210 #endif
2211 	} cn31xx;
2212 	struct cvmx_trax_trig0_cmd_cn31xx     cn38xx;
2213 	struct cvmx_trax_trig0_cmd_cn31xx     cn38xxp2;
2214 	struct cvmx_trax_trig0_cmd_cn52xx {
2215 #ifdef __BIG_ENDIAN_BITFIELD
2216 	uint64_t reserved_17_63               : 47;
2217 	uint64_t saa                          : 1;  /**< Enable SAA     tracing
2218                                                          0=disable, 1=enable */
2219 	uint64_t iobdma                       : 1;  /**< Enable IOBDMA  tracing
2220                                                          0=disable, 1=enable */
2221 	uint64_t iobst                        : 1;  /**< Enable IOBST   tracing
2222                                                          0=disable, 1=enable */
2223 	uint64_t iobld64                      : 1;  /**< Enable IOBLD64 tracing
2224                                                          0=disable, 1=enable */
2225 	uint64_t iobld32                      : 1;  /**< Enable IOBLD32 tracing
2226                                                          0=disable, 1=enable */
2227 	uint64_t iobld16                      : 1;  /**< Enable IOBLD16 tracing
2228                                                          0=disable, 1=enable */
2229 	uint64_t iobld8                       : 1;  /**< Enable IOBLD8  tracing
2230                                                          0=disable, 1=enable */
2231 	uint64_t stt                          : 1;  /**< Enable STT     tracing
2232                                                          0=disable, 1=enable */
2233 	uint64_t stp                          : 1;  /**< Enable STP     tracing
2234                                                          0=disable, 1=enable */
2235 	uint64_t stc                          : 1;  /**< Enable STC     tracing
2236                                                          0=disable, 1=enable */
2237 	uint64_t stf                          : 1;  /**< Enable STF     tracing
2238                                                          0=disable, 1=enable */
2239 	uint64_t ldt                          : 1;  /**< Enable LDT     tracing
2240                                                          0=disable, 1=enable */
2241 	uint64_t ldi                          : 1;  /**< Enable LDI     tracing
2242                                                          0=disable, 1=enable */
2243 	uint64_t ldd                          : 1;  /**< Enable LDD     tracing
2244                                                          0=disable, 1=enable */
2245 	uint64_t psl1                         : 1;  /**< Enable PSL1    tracing
2246                                                          0=disable, 1=enable */
2247 	uint64_t pl2                          : 1;  /**< Enable PL2     tracing
2248                                                          0=disable, 1=enable */
2249 	uint64_t dwb                          : 1;  /**< Enable DWB     tracing
2250                                                          0=disable, 1=enable */
2251 #else
2252 	uint64_t dwb                          : 1;
2253 	uint64_t pl2                          : 1;
2254 	uint64_t psl1                         : 1;
2255 	uint64_t ldd                          : 1;
2256 	uint64_t ldi                          : 1;
2257 	uint64_t ldt                          : 1;
2258 	uint64_t stf                          : 1;
2259 	uint64_t stc                          : 1;
2260 	uint64_t stp                          : 1;
2261 	uint64_t stt                          : 1;
2262 	uint64_t iobld8                       : 1;
2263 	uint64_t iobld16                      : 1;
2264 	uint64_t iobld32                      : 1;
2265 	uint64_t iobld64                      : 1;
2266 	uint64_t iobst                        : 1;
2267 	uint64_t iobdma                       : 1;
2268 	uint64_t saa                          : 1;
2269 	uint64_t reserved_17_63               : 47;
2270 #endif
2271 	} cn52xx;
2272 	struct cvmx_trax_trig0_cmd_cn52xx     cn52xxp1;
2273 	struct cvmx_trax_trig0_cmd_cn52xx     cn56xx;
2274 	struct cvmx_trax_trig0_cmd_cn52xx     cn56xxp1;
2275 	struct cvmx_trax_trig0_cmd_cn52xx     cn58xx;
2276 	struct cvmx_trax_trig0_cmd_cn52xx     cn58xxp1;
2277 	struct cvmx_trax_trig0_cmd_cn61xx {
2278 #ifdef __BIG_ENDIAN_BITFIELD
2279 	uint64_t saa64                        : 1;  /**< Enable SAA64 tracing
2280                                                          0=disable, 1=enable */
2281 	uint64_t saa32                        : 1;  /**< Enable SAA32 tracing
2282                                                          0=disable, 1=enable */
2283 	uint64_t reserved_60_61               : 2;
2284 	uint64_t faa64                        : 1;  /**< Enable FAA64 tracing
2285                                                          0=disable, 1=enable */
2286 	uint64_t faa32                        : 1;  /**< Enable FAA32 tracing
2287                                                          0=disable, 1=enable */
2288 	uint64_t reserved_56_57               : 2;
2289 	uint64_t decr64                       : 1;  /**< Enable DECR64  tracing
2290                                                          0=disable, 1=enable */
2291 	uint64_t decr32                       : 1;  /**< Enable DECR32  tracing
2292                                                          0=disable, 1=enable */
2293 	uint64_t decr16                       : 1;  /**< Enable DECR16  tracing
2294                                                          0=disable, 1=enable */
2295 	uint64_t decr8                        : 1;  /**< Enable DECR8   tracing
2296                                                          0=disable, 1=enable */
2297 	uint64_t incr64                       : 1;  /**< Enable INCR64  tracing
2298                                                          0=disable, 1=enable */
2299 	uint64_t incr32                       : 1;  /**< Enable INCR32  tracing
2300                                                          0=disable, 1=enable */
2301 	uint64_t incr16                       : 1;  /**< Enable INCR16  tracing
2302                                                          0=disable, 1=enable */
2303 	uint64_t incr8                        : 1;  /**< Enable INCR8   tracing
2304                                                          0=disable, 1=enable */
2305 	uint64_t clr64                        : 1;  /**< Enable CLR64   tracing
2306                                                          0=disable, 1=enable */
2307 	uint64_t clr32                        : 1;  /**< Enable CLR32   tracing
2308                                                          0=disable, 1=enable */
2309 	uint64_t clr16                        : 1;  /**< Enable CLR16   tracing
2310                                                          0=disable, 1=enable */
2311 	uint64_t clr8                         : 1;  /**< Enable CLR8    tracing
2312                                                          0=disable, 1=enable */
2313 	uint64_t set64                        : 1;  /**< Enable SET64   tracing
2314                                                          0=disable, 1=enable */
2315 	uint64_t set32                        : 1;  /**< Enable SET32   tracing
2316                                                          0=disable, 1=enable */
2317 	uint64_t set16                        : 1;  /**< Enable SET16   tracing
2318                                                          0=disable, 1=enable */
2319 	uint64_t set8                         : 1;  /**< Enable SET8    tracing
2320                                                          0=disable, 1=enable */
2321 	uint64_t iobst64                      : 1;  /**< Enable IOBST64 tracing
2322                                                          0=disable, 1=enable */
2323 	uint64_t iobst32                      : 1;  /**< Enable IOBST32 tracing
2324                                                          0=disable, 1=enable */
2325 	uint64_t iobst16                      : 1;  /**< Enable IOBST16 tracing
2326                                                          0=disable, 1=enable */
2327 	uint64_t iobst8                       : 1;  /**< Enable IOBST8  tracing
2328                                                          0=disable, 1=enable */
2329 	uint64_t iobld64                      : 1;  /**< Enable IOBLD64 tracing
2330                                                          0=disable, 1=enable */
2331 	uint64_t iobld32                      : 1;  /**< Enable IOBLD32 tracing
2332                                                          0=disable, 1=enable */
2333 	uint64_t iobld16                      : 1;  /**< Enable IOBLD16 tracing
2334                                                          0=disable, 1=enable */
2335 	uint64_t iobld8                       : 1;  /**< Enable IOBLD8  tracing
2336                                                          0=disable, 1=enable */
2337 	uint64_t lckl2                        : 1;  /**< Enable LCKL2   tracing
2338                                                          0=disable, 1=enable */
2339 	uint64_t wbl2                         : 1;  /**< Enable WBL2    tracing
2340                                                          0=disable, 1=enable */
2341 	uint64_t wbil2                        : 1;  /**< Enable WBIL2   tracing
2342                                                          0=disable, 1=enable */
2343 	uint64_t invl2                        : 1;  /**< Enable INVL2   tracing
2344                                                          0=disable, 1=enable */
2345 	uint64_t reserved_27_27               : 1;
2346 	uint64_t stgl2i                       : 1;  /**< Enable STGL2I  tracing
2347                                                          0=disable, 1=enable */
2348 	uint64_t ltgl2i                       : 1;  /**< Enable LTGL2I  tracing
2349                                                          0=disable, 1=enable */
2350 	uint64_t wbil2i                       : 1;  /**< Enable WBIL2I  tracing
2351                                                          0=disable, 1=enable */
2352 	uint64_t fas64                        : 1;  /**< Enable FAS64   tracing
2353                                                          0=disable, 1=enable */
2354 	uint64_t fas32                        : 1;  /**< Enable FAS32   tracing
2355                                                          0=disable, 1=enable */
2356 	uint64_t sttil1                       : 1;  /**< Enable STTIL1  tracing
2357                                                          0=disable, 1=enable */
2358 	uint64_t stfil1                       : 1;  /**< Enable STFIL1  tracing
2359                                                          0=disable, 1=enable */
2360 	uint64_t stc                          : 1;  /**< Enable STC     tracing
2361                                                          0=disable, 1=enable */
2362 	uint64_t stp                          : 1;  /**< Enable STP     tracing
2363                                                          0=disable, 1=enable */
2364 	uint64_t stt                          : 1;  /**< Enable STT     tracing
2365                                                          0=disable, 1=enable */
2366 	uint64_t stf                          : 1;  /**< Enable STF     tracing
2367                                                          0=disable, 1=enable */
2368 	uint64_t iobdma                       : 1;  /**< Enable IOBDMA  tracing
2369                                                          0=disable, 1=enable */
2370 	uint64_t reserved_10_14               : 5;
2371 	uint64_t psl1                         : 1;  /**< Enable PSL1    tracing
2372                                                          0=disable, 1=enable */
2373 	uint64_t ldd                          : 1;  /**< Enable LDD     tracing
2374                                                          0=disable, 1=enable */
2375 	uint64_t reserved_6_7                 : 2;
2376 	uint64_t dwb                          : 1;  /**< Enable DWB     tracing
2377                                                          0=disable, 1=enable */
2378 	uint64_t rpl2                         : 1;  /**< Enable RPL2    tracing
2379                                                          0=disable, 1=enable */
2380 	uint64_t pl2                          : 1;  /**< Enable PL2     tracing
2381                                                          0=disable, 1=enable */
2382 	uint64_t ldi                          : 1;  /**< Enable LDI     tracing
2383                                                          0=disable, 1=enable */
2384 	uint64_t ldt                          : 1;  /**< Enable LDT     tracing
2385                                                          0=disable, 1=enable */
2386 	uint64_t nop                          : 1;  /**< Enable NOP     tracing
2387                                                          0=disable, 1=enable */
2388 #else
2389 	uint64_t nop                          : 1;
2390 	uint64_t ldt                          : 1;
2391 	uint64_t ldi                          : 1;
2392 	uint64_t pl2                          : 1;
2393 	uint64_t rpl2                         : 1;
2394 	uint64_t dwb                          : 1;
2395 	uint64_t reserved_6_7                 : 2;
2396 	uint64_t ldd                          : 1;
2397 	uint64_t psl1                         : 1;
2398 	uint64_t reserved_10_14               : 5;
2399 	uint64_t iobdma                       : 1;
2400 	uint64_t stf                          : 1;
2401 	uint64_t stt                          : 1;
2402 	uint64_t stp                          : 1;
2403 	uint64_t stc                          : 1;
2404 	uint64_t stfil1                       : 1;
2405 	uint64_t sttil1                       : 1;
2406 	uint64_t fas32                        : 1;
2407 	uint64_t fas64                        : 1;
2408 	uint64_t wbil2i                       : 1;
2409 	uint64_t ltgl2i                       : 1;
2410 	uint64_t stgl2i                       : 1;
2411 	uint64_t reserved_27_27               : 1;
2412 	uint64_t invl2                        : 1;
2413 	uint64_t wbil2                        : 1;
2414 	uint64_t wbl2                         : 1;
2415 	uint64_t lckl2                        : 1;
2416 	uint64_t iobld8                       : 1;
2417 	uint64_t iobld16                      : 1;
2418 	uint64_t iobld32                      : 1;
2419 	uint64_t iobld64                      : 1;
2420 	uint64_t iobst8                       : 1;
2421 	uint64_t iobst16                      : 1;
2422 	uint64_t iobst32                      : 1;
2423 	uint64_t iobst64                      : 1;
2424 	uint64_t set8                         : 1;
2425 	uint64_t set16                        : 1;
2426 	uint64_t set32                        : 1;
2427 	uint64_t set64                        : 1;
2428 	uint64_t clr8                         : 1;
2429 	uint64_t clr16                        : 1;
2430 	uint64_t clr32                        : 1;
2431 	uint64_t clr64                        : 1;
2432 	uint64_t incr8                        : 1;
2433 	uint64_t incr16                       : 1;
2434 	uint64_t incr32                       : 1;
2435 	uint64_t incr64                       : 1;
2436 	uint64_t decr8                        : 1;
2437 	uint64_t decr16                       : 1;
2438 	uint64_t decr32                       : 1;
2439 	uint64_t decr64                       : 1;
2440 	uint64_t reserved_56_57               : 2;
2441 	uint64_t faa32                        : 1;
2442 	uint64_t faa64                        : 1;
2443 	uint64_t reserved_60_61               : 2;
2444 	uint64_t saa32                        : 1;
2445 	uint64_t saa64                        : 1;
2446 #endif
2447 	} cn61xx;
2448 	struct cvmx_trax_trig0_cmd_cn61xx     cn63xx;
2449 	struct cvmx_trax_trig0_cmd_cn61xx     cn63xxp1;
2450 	struct cvmx_trax_trig0_cmd_cn61xx     cn66xx;
2451 	struct cvmx_trax_trig0_cmd_cn61xx     cn68xx;
2452 	struct cvmx_trax_trig0_cmd_cn61xx     cn68xxp1;
2453 	struct cvmx_trax_trig0_cmd_cn61xx     cnf71xx;
2454 };
2455 typedef union cvmx_trax_trig0_cmd cvmx_trax_trig0_cmd_t;
2456 
2457 /**
2458  * cvmx_tra#_trig0_did
2459  *
2460  * TRA_TRIG0_DID = Trace Buffer Filter DestinationId Mask
2461  *
2462  * Description:
2463  */
2464 union cvmx_trax_trig0_did {
2465 	uint64_t u64;
2466 	struct cvmx_trax_trig0_did_s {
2467 #ifdef __BIG_ENDIAN_BITFIELD
2468 	uint64_t reserved_13_63               : 51;
2469 	uint64_t pow                          : 1;  /**< Enable triggering on requests to POW
2470                                                          (get work, add work, status/memory/index
2471                                                          loads, NULLRd loads, CSR's) */
2472 	uint64_t reserved_9_11                : 3;
2473 	uint64_t rng                          : 1;  /**< Enable triggering on requests to RNG
2474                                                          (loads/IOBDMA's are legal) */
2475 	uint64_t zip                          : 1;  /**< Enable triggering on requests to ZIP
2476                                                          (doorbell stores are legal) */
2477 	uint64_t dfa                          : 1;  /**< Enable triggering on requests to DFA
2478                                                          (CSR's and operations are legal) */
2479 	uint64_t fpa                          : 1;  /**< Enable triggering on requests to FPA
2480                                                          (alloc's (loads/IOBDMA's), frees (stores) are legal) */
2481 	uint64_t key                          : 1;  /**< Enable triggering on requests to KEY memory
2482                                                          (loads/IOBDMA's/stores are legal) */
2483 	uint64_t reserved_3_3                 : 1;
2484 	uint64_t illegal3                     : 2;  /**< Illegal destinations */
2485 	uint64_t mio                          : 1;  /**< Enable triggering on MIO accesses
2486                                                          (CIU and GPIO CSR's, boot bus accesses) */
2487 #else
2488 	uint64_t mio                          : 1;
2489 	uint64_t illegal3                     : 2;
2490 	uint64_t reserved_3_3                 : 1;
2491 	uint64_t key                          : 1;
2492 	uint64_t fpa                          : 1;
2493 	uint64_t dfa                          : 1;
2494 	uint64_t zip                          : 1;
2495 	uint64_t rng                          : 1;
2496 	uint64_t reserved_9_11                : 3;
2497 	uint64_t pow                          : 1;
2498 	uint64_t reserved_13_63               : 51;
2499 #endif
2500 	} s;
2501 	struct cvmx_trax_trig0_did_cn31xx {
2502 #ifdef __BIG_ENDIAN_BITFIELD
2503 	uint64_t reserved_32_63               : 32;
2504 	uint64_t illegal                      : 19; /**< Illegal destinations */
2505 	uint64_t pow                          : 1;  /**< Enable triggering on requests to POW
2506                                                          (get work, add work, status/memory/index
2507                                                          loads, NULLRd loads, CSR's) */
2508 	uint64_t illegal2                     : 3;  /**< Illegal destinations */
2509 	uint64_t rng                          : 1;  /**< Enable triggering on requests to RNG
2510                                                          (loads/IOBDMA's are legal) */
2511 	uint64_t zip                          : 1;  /**< Enable triggering on requests to ZIP
2512                                                          (doorbell stores are legal) */
2513 	uint64_t dfa                          : 1;  /**< Enable triggering on requests to DFA
2514                                                          (CSR's and operations are legal) */
2515 	uint64_t fpa                          : 1;  /**< Enable triggering on requests to FPA
2516                                                          (alloc's (loads/IOBDMA's), frees (stores) are legal) */
2517 	uint64_t key                          : 1;  /**< Enable triggering on requests to KEY memory
2518                                                          (loads/IOBDMA's/stores are legal) */
2519 	uint64_t pci                          : 1;  /**< Enable triggering on requests to PCI and RSL-type
2520                                                          CSR's (RSL CSR's, PCI bus operations, PCI
2521                                                          CSR's) */
2522 	uint64_t illegal3                     : 2;  /**< Illegal destinations */
2523 	uint64_t mio                          : 1;  /**< Enable triggering on CIU and GPIO CSR's */
2524 #else
2525 	uint64_t mio                          : 1;
2526 	uint64_t illegal3                     : 2;
2527 	uint64_t pci                          : 1;
2528 	uint64_t key                          : 1;
2529 	uint64_t fpa                          : 1;
2530 	uint64_t dfa                          : 1;
2531 	uint64_t zip                          : 1;
2532 	uint64_t rng                          : 1;
2533 	uint64_t illegal2                     : 3;
2534 	uint64_t pow                          : 1;
2535 	uint64_t illegal                      : 19;
2536 	uint64_t reserved_32_63               : 32;
2537 #endif
2538 	} cn31xx;
2539 	struct cvmx_trax_trig0_did_cn31xx     cn38xx;
2540 	struct cvmx_trax_trig0_did_cn31xx     cn38xxp2;
2541 	struct cvmx_trax_trig0_did_cn31xx     cn52xx;
2542 	struct cvmx_trax_trig0_did_cn31xx     cn52xxp1;
2543 	struct cvmx_trax_trig0_did_cn31xx     cn56xx;
2544 	struct cvmx_trax_trig0_did_cn31xx     cn56xxp1;
2545 	struct cvmx_trax_trig0_did_cn31xx     cn58xx;
2546 	struct cvmx_trax_trig0_did_cn31xx     cn58xxp1;
2547 	struct cvmx_trax_trig0_did_cn61xx {
2548 #ifdef __BIG_ENDIAN_BITFIELD
2549 	uint64_t reserved_32_63               : 32;
2550 	uint64_t illegal5                     : 1;  /**< Illegal destinations */
2551 	uint64_t fau                          : 1;  /**< Enable triggering on FAU accesses */
2552 	uint64_t illegal4                     : 2;  /**< Illegal destinations */
2553 	uint64_t dpi                          : 1;  /**< Enable triggering on DPI accesses
2554                                                          (DPI NCB CSRs) */
2555 	uint64_t illegal                      : 12; /**< Illegal destinations */
2556 	uint64_t rad                          : 1;  /**< Enable triggering on RAD accesses
2557                                                          (doorbells) */
2558 	uint64_t usb0                         : 1;  /**< Enable triggering on USB0 accesses
2559                                                          (UAHC0 EHCI and OHCI NCB CSRs) */
2560 	uint64_t pow                          : 1;  /**< Enable triggering on requests to POW
2561                                                          (get work, add work, status/memory/index
2562                                                          loads, NULLRd loads, CSR's) */
2563 	uint64_t illegal2                     : 1;  /**< Illegal destination */
2564 	uint64_t pko                          : 1;  /**< Enable triggering on PKO accesses
2565                                                          (doorbells) */
2566 	uint64_t ipd                          : 1;  /**< Enable triggering on IPD CSR accesses
2567                                                          (IPD CSRs) */
2568 	uint64_t rng                          : 1;  /**< Enable triggering on requests to RNG
2569                                                          (loads/IOBDMA's are legal) */
2570 	uint64_t zip                          : 1;  /**< Enable triggering on requests to ZIP
2571                                                          (doorbell stores are legal) */
2572 	uint64_t dfa                          : 1;  /**< Enable triggering on requests to DFA
2573                                                          (CSR's and operations are legal) */
2574 	uint64_t fpa                          : 1;  /**< Enable triggering on requests to FPA
2575                                                          (alloc's (loads/IOBDMA's), frees (stores) are legal) */
2576 	uint64_t key                          : 1;  /**< Enable triggering on requests to KEY memory
2577                                                          (loads/IOBDMA's/stores are legal) */
2578 	uint64_t sli                          : 1;  /**< Enable triggering on requests to SLI and RSL-type
2579                                                          CSR's (RSL CSR's, PCI/sRIO bus operations, SLI
2580                                                          CSR's) */
2581 	uint64_t illegal3                     : 2;  /**< Illegal destinations */
2582 	uint64_t mio                          : 1;  /**< Enable triggering on MIO accesses
2583                                                          (CIU and GPIO CSR's, boot bus accesses) */
2584 #else
2585 	uint64_t mio                          : 1;
2586 	uint64_t illegal3                     : 2;
2587 	uint64_t sli                          : 1;
2588 	uint64_t key                          : 1;
2589 	uint64_t fpa                          : 1;
2590 	uint64_t dfa                          : 1;
2591 	uint64_t zip                          : 1;
2592 	uint64_t rng                          : 1;
2593 	uint64_t ipd                          : 1;
2594 	uint64_t pko                          : 1;
2595 	uint64_t illegal2                     : 1;
2596 	uint64_t pow                          : 1;
2597 	uint64_t usb0                         : 1;
2598 	uint64_t rad                          : 1;
2599 	uint64_t illegal                      : 12;
2600 	uint64_t dpi                          : 1;
2601 	uint64_t illegal4                     : 2;
2602 	uint64_t fau                          : 1;
2603 	uint64_t illegal5                     : 1;
2604 	uint64_t reserved_32_63               : 32;
2605 #endif
2606 	} cn61xx;
2607 	struct cvmx_trax_trig0_did_cn61xx     cn63xx;
2608 	struct cvmx_trax_trig0_did_cn61xx     cn63xxp1;
2609 	struct cvmx_trax_trig0_did_cn61xx     cn66xx;
2610 	struct cvmx_trax_trig0_did_cn61xx     cn68xx;
2611 	struct cvmx_trax_trig0_did_cn61xx     cn68xxp1;
2612 	struct cvmx_trax_trig0_did_cn61xx     cnf71xx;
2613 };
2614 typedef union cvmx_trax_trig0_did cvmx_trax_trig0_did_t;
2615 
2616 /**
2617  * cvmx_tra#_trig0_sid
2618  *
2619  * TRA_TRIG0_SID = Trace Buffer Filter SourceId Mask
2620  *
2621  * Description:
2622  */
2623 union cvmx_trax_trig0_sid {
2624 	uint64_t u64;
2625 	struct cvmx_trax_trig0_sid_s {
2626 #ifdef __BIG_ENDIAN_BITFIELD
2627 	uint64_t reserved_20_63               : 44;
2628 	uint64_t dwb                          : 1;  /**< Enable triggering on requests from the IOB DWB engine */
2629 	uint64_t iobreq                       : 1;  /**< Enable triggering on requests from FPA,TIM,DFA,
2630                                                          PCI,ZIP,POW, and PKO (writes) */
2631 	uint64_t pko                          : 1;  /**< Enable triggering on read requests from PKO */
2632 	uint64_t pki                          : 1;  /**< Enable triggering on write requests from PIP/IPD */
2633 	uint64_t pp                           : 16; /**< Enable triggering from PP[N] with matching SourceID
2634                                                          0=disable, 1=enable per bit N where 0<=N<=3 */
2635 #else
2636 	uint64_t pp                           : 16;
2637 	uint64_t pki                          : 1;
2638 	uint64_t pko                          : 1;
2639 	uint64_t iobreq                       : 1;
2640 	uint64_t dwb                          : 1;
2641 	uint64_t reserved_20_63               : 44;
2642 #endif
2643 	} s;
2644 	struct cvmx_trax_trig0_sid_s          cn31xx;
2645 	struct cvmx_trax_trig0_sid_s          cn38xx;
2646 	struct cvmx_trax_trig0_sid_s          cn38xxp2;
2647 	struct cvmx_trax_trig0_sid_s          cn52xx;
2648 	struct cvmx_trax_trig0_sid_s          cn52xxp1;
2649 	struct cvmx_trax_trig0_sid_s          cn56xx;
2650 	struct cvmx_trax_trig0_sid_s          cn56xxp1;
2651 	struct cvmx_trax_trig0_sid_s          cn58xx;
2652 	struct cvmx_trax_trig0_sid_s          cn58xxp1;
2653 	struct cvmx_trax_trig0_sid_cn61xx {
2654 #ifdef __BIG_ENDIAN_BITFIELD
2655 	uint64_t reserved_20_63               : 44;
2656 	uint64_t dwb                          : 1;  /**< Enable triggering on requests from the IOB DWB engine */
2657 	uint64_t iobreq                       : 1;  /**< Enable triggering on requests from FPA,TIM,DFA,
2658                                                          PCI,ZIP,POW, and PKO (writes) */
2659 	uint64_t pko                          : 1;  /**< Enable triggering on read requests from PKO */
2660 	uint64_t pki                          : 1;  /**< Enable triggering on write requests from PIP/IPD */
2661 	uint64_t reserved_4_15                : 12;
2662 	uint64_t pp                           : 4;  /**< Enable triggering from PP[N] with matching SourceID
2663                                                          0=disable, 1=enable per bit N where 0<=N<=3 */
2664 #else
2665 	uint64_t pp                           : 4;
2666 	uint64_t reserved_4_15                : 12;
2667 	uint64_t pki                          : 1;
2668 	uint64_t pko                          : 1;
2669 	uint64_t iobreq                       : 1;
2670 	uint64_t dwb                          : 1;
2671 	uint64_t reserved_20_63               : 44;
2672 #endif
2673 	} cn61xx;
2674 	struct cvmx_trax_trig0_sid_cn63xx {
2675 #ifdef __BIG_ENDIAN_BITFIELD
2676 	uint64_t reserved_20_63               : 44;
2677 	uint64_t dwb                          : 1;  /**< Enable triggering on requests from the IOB DWB engine */
2678 	uint64_t iobreq                       : 1;  /**< Enable triggering on requests from FPA,TIM,DFA,
2679                                                          PCI,ZIP,POW, and PKO (writes) */
2680 	uint64_t pko                          : 1;  /**< Enable triggering on read requests from PKO */
2681 	uint64_t pki                          : 1;  /**< Enable triggering on write requests from PIP/IPD */
2682 	uint64_t reserved_8_15                : 8;
2683 	uint64_t pp                           : 8;  /**< Enable triggering from PP[N] with matching SourceID
2684                                                          0=disable, 1=enableper bit N where  0<=N<=15 */
2685 #else
2686 	uint64_t pp                           : 8;
2687 	uint64_t reserved_8_15                : 8;
2688 	uint64_t pki                          : 1;
2689 	uint64_t pko                          : 1;
2690 	uint64_t iobreq                       : 1;
2691 	uint64_t dwb                          : 1;
2692 	uint64_t reserved_20_63               : 44;
2693 #endif
2694 	} cn63xx;
2695 	struct cvmx_trax_trig0_sid_cn63xxp1 {
2696 #ifdef __BIG_ENDIAN_BITFIELD
2697 	uint64_t reserved_20_63               : 44;
2698 	uint64_t dwb                          : 1;  /**< Enable triggering on requests from the IOB DWB engine */
2699 	uint64_t iobreq                       : 1;  /**< Enable triggering on requests from FPA,TIM,DFA,
2700                                                          PCI,ZIP,POW, and PKO (writes) */
2701 	uint64_t pko                          : 1;  /**< Enable triggering on read requests from PKO */
2702 	uint64_t pki                          : 1;  /**< Enable triggering on write requests from PIP/IPD */
2703 	uint64_t reserved_6_15                : 10;
2704 	uint64_t pp                           : 6;  /**< Enable triggering from PP[N] with matching SourceID
2705                                                          0=disable, 1=enable per bit N where 0<=N<=5 */
2706 #else
2707 	uint64_t pp                           : 6;
2708 	uint64_t reserved_6_15                : 10;
2709 	uint64_t pki                          : 1;
2710 	uint64_t pko                          : 1;
2711 	uint64_t iobreq                       : 1;
2712 	uint64_t dwb                          : 1;
2713 	uint64_t reserved_20_63               : 44;
2714 #endif
2715 	} cn63xxp1;
2716 	struct cvmx_trax_trig0_sid_cn66xx {
2717 #ifdef __BIG_ENDIAN_BITFIELD
2718 	uint64_t reserved_20_63               : 44;
2719 	uint64_t dwb                          : 1;  /**< Enable triggering on requests from the IOB DWB engine */
2720 	uint64_t iobreq                       : 1;  /**< Enable triggering on requests from FPA,TIM,DFA,
2721                                                          PCI,ZIP,POW, and PKO (writes) */
2722 	uint64_t pko                          : 1;  /**< Enable triggering on read requests from PKO */
2723 	uint64_t pki                          : 1;  /**< Enable triggering on write requests from PIP/IPD */
2724 	uint64_t reserved_10_15               : 6;
2725 	uint64_t pp                           : 10; /**< Enable triggering from PP[N] with matching SourceID
2726                                                          0=disable, 1=enableper bit N where  0<=N<=15 */
2727 #else
2728 	uint64_t pp                           : 10;
2729 	uint64_t reserved_10_15               : 6;
2730 	uint64_t pki                          : 1;
2731 	uint64_t pko                          : 1;
2732 	uint64_t iobreq                       : 1;
2733 	uint64_t dwb                          : 1;
2734 	uint64_t reserved_20_63               : 44;
2735 #endif
2736 	} cn66xx;
2737 	struct cvmx_trax_trig0_sid_cn63xx     cn68xx;
2738 	struct cvmx_trax_trig0_sid_cn63xx     cn68xxp1;
2739 	struct cvmx_trax_trig0_sid_cn61xx     cnf71xx;
2740 };
2741 typedef union cvmx_trax_trig0_sid cvmx_trax_trig0_sid_t;
2742 
2743 /**
2744  * cvmx_tra#_trig1_adr_adr
2745  *
2746  * TRA_TRIG1_ADR_ADR = Trace Buffer Filter Address Address
2747  *
2748  * Description:
2749  */
2750 union cvmx_trax_trig1_adr_adr {
2751 	uint64_t u64;
2752 	struct cvmx_trax_trig1_adr_adr_s {
2753 #ifdef __BIG_ENDIAN_BITFIELD
2754 	uint64_t reserved_38_63               : 26;
2755 	uint64_t adr                          : 38; /**< Unmasked Address
2756                                                          The combination of TRA_TRIG1_ADR_ADR and
2757                                                          TRA_TRIG1_ADR_MSK is a masked address to
2758                                                          enable tracing of only those commands whose
2759                                                          masked address matches */
2760 #else
2761 	uint64_t adr                          : 38;
2762 	uint64_t reserved_38_63               : 26;
2763 #endif
2764 	} s;
2765 	struct cvmx_trax_trig1_adr_adr_cn31xx {
2766 #ifdef __BIG_ENDIAN_BITFIELD
2767 	uint64_t reserved_36_63               : 28;
2768 	uint64_t adr                          : 36; /**< Unmasked Address
2769                                                          The combination of TRA(0..0)_TRIG1_ADR_ADR and
2770                                                          TRA(0..0)_TRIG1_ADR_MSK is a masked address to
2771                                                          enable tracing of only those commands whose
2772                                                          masked address matches */
2773 #else
2774 	uint64_t adr                          : 36;
2775 	uint64_t reserved_36_63               : 28;
2776 #endif
2777 	} cn31xx;
2778 	struct cvmx_trax_trig1_adr_adr_cn31xx cn38xx;
2779 	struct cvmx_trax_trig1_adr_adr_cn31xx cn38xxp2;
2780 	struct cvmx_trax_trig1_adr_adr_cn31xx cn52xx;
2781 	struct cvmx_trax_trig1_adr_adr_cn31xx cn52xxp1;
2782 	struct cvmx_trax_trig1_adr_adr_cn31xx cn56xx;
2783 	struct cvmx_trax_trig1_adr_adr_cn31xx cn56xxp1;
2784 	struct cvmx_trax_trig1_adr_adr_cn31xx cn58xx;
2785 	struct cvmx_trax_trig1_adr_adr_cn31xx cn58xxp1;
2786 	struct cvmx_trax_trig1_adr_adr_s      cn61xx;
2787 	struct cvmx_trax_trig1_adr_adr_s      cn63xx;
2788 	struct cvmx_trax_trig1_adr_adr_s      cn63xxp1;
2789 	struct cvmx_trax_trig1_adr_adr_s      cn66xx;
2790 	struct cvmx_trax_trig1_adr_adr_s      cn68xx;
2791 	struct cvmx_trax_trig1_adr_adr_s      cn68xxp1;
2792 	struct cvmx_trax_trig1_adr_adr_s      cnf71xx;
2793 };
2794 typedef union cvmx_trax_trig1_adr_adr cvmx_trax_trig1_adr_adr_t;
2795 
2796 /**
2797  * cvmx_tra#_trig1_adr_msk
2798  *
2799  * TRA_TRIG1_ADR_MSK = Trace Buffer Filter Address Mask
2800  *
2801  * Description:
2802  */
2803 union cvmx_trax_trig1_adr_msk {
2804 	uint64_t u64;
2805 	struct cvmx_trax_trig1_adr_msk_s {
2806 #ifdef __BIG_ENDIAN_BITFIELD
2807 	uint64_t reserved_38_63               : 26;
2808 	uint64_t adr                          : 38; /**< Address Mask
2809                                                          The combination of TRA_TRIG1_ADR_ADR and
2810                                                          TRA_TRIG1_ADR_MSK is a masked address to
2811                                                          enable tracing of only those commands whose
2812                                                          masked address matches.  When a mask bit is not
2813                                                          set, the corresponding address bits are assumed
2814                                                          to match.  Also, note that IOBDMAs do not have
2815                                                          proper addresses, so when TRA_TRIG1_CMD[IOBDMA]
2816                                                          is set, TRA_FILT_TRIG1_MSK must be zero to
2817                                                          guarantee that any IOBDMAs are recognized as
2818                                                          triggers. */
2819 #else
2820 	uint64_t adr                          : 38;
2821 	uint64_t reserved_38_63               : 26;
2822 #endif
2823 	} s;
2824 	struct cvmx_trax_trig1_adr_msk_cn31xx {
2825 #ifdef __BIG_ENDIAN_BITFIELD
2826 	uint64_t reserved_36_63               : 28;
2827 	uint64_t adr                          : 36; /**< Address Mask
2828                                                          The combination of TRA(0..0)_TRIG1_ADR_ADR and
2829                                                          TRA(0..0)_TRIG1_ADR_MSK is a masked address to
2830                                                          enable tracing of only those commands whose
2831                                                          masked address matches.  When a mask bit is not
2832                                                          set, the corresponding address bits are assumed
2833                                                          to match.  Also, note that IOBDMAs do not have
2834                                                          proper addresses, so when TRA(0..0)_TRIG1_CMD[IOBDMA]
2835                                                          is set, TRA(0..0)_FILT_TRIG1_MSK must be zero to
2836                                                          guarantee that any IOBDMAs are recognized as
2837                                                          triggers. */
2838 #else
2839 	uint64_t adr                          : 36;
2840 	uint64_t reserved_36_63               : 28;
2841 #endif
2842 	} cn31xx;
2843 	struct cvmx_trax_trig1_adr_msk_cn31xx cn38xx;
2844 	struct cvmx_trax_trig1_adr_msk_cn31xx cn38xxp2;
2845 	struct cvmx_trax_trig1_adr_msk_cn31xx cn52xx;
2846 	struct cvmx_trax_trig1_adr_msk_cn31xx cn52xxp1;
2847 	struct cvmx_trax_trig1_adr_msk_cn31xx cn56xx;
2848 	struct cvmx_trax_trig1_adr_msk_cn31xx cn56xxp1;
2849 	struct cvmx_trax_trig1_adr_msk_cn31xx cn58xx;
2850 	struct cvmx_trax_trig1_adr_msk_cn31xx cn58xxp1;
2851 	struct cvmx_trax_trig1_adr_msk_s      cn61xx;
2852 	struct cvmx_trax_trig1_adr_msk_s      cn63xx;
2853 	struct cvmx_trax_trig1_adr_msk_s      cn63xxp1;
2854 	struct cvmx_trax_trig1_adr_msk_s      cn66xx;
2855 	struct cvmx_trax_trig1_adr_msk_s      cn68xx;
2856 	struct cvmx_trax_trig1_adr_msk_s      cn68xxp1;
2857 	struct cvmx_trax_trig1_adr_msk_s      cnf71xx;
2858 };
2859 typedef union cvmx_trax_trig1_adr_msk cvmx_trax_trig1_adr_msk_t;
2860 
2861 /**
2862  * cvmx_tra#_trig1_cmd
2863  *
2864  * TRA_TRIG1_CMD = Trace Buffer Filter Command Mask
2865  *
2866  * Description:
2867  *
2868  * Notes:
2869  * Note that the trace buffer does not do proper IOBDMA address compares.  Thus, if IOBDMA is set, then
2870  * the address compare must be disabled (i.e. TRA_TRIG1_ADR_MSK set to zero) to guarantee that IOBDMAs
2871  * are recognized as triggers.
2872  */
2873 union cvmx_trax_trig1_cmd {
2874 	uint64_t u64;
2875 	struct cvmx_trax_trig1_cmd_s {
2876 #ifdef __BIG_ENDIAN_BITFIELD
2877 	uint64_t saa64                        : 1;  /**< Enable SAA64 tracing
2878                                                          0=disable, 1=enable */
2879 	uint64_t saa32                        : 1;  /**< Enable SAA32 tracing
2880                                                          0=disable, 1=enable */
2881 	uint64_t reserved_60_61               : 2;
2882 	uint64_t faa64                        : 1;  /**< Enable FAA64 tracing
2883                                                          0=disable, 1=enable */
2884 	uint64_t faa32                        : 1;  /**< Enable FAA32 tracing
2885                                                          0=disable, 1=enable */
2886 	uint64_t reserved_56_57               : 2;
2887 	uint64_t decr64                       : 1;  /**< Enable DECR64  tracing
2888                                                          0=disable, 1=enable */
2889 	uint64_t decr32                       : 1;  /**< Enable DECR32  tracing
2890                                                          0=disable, 1=enable */
2891 	uint64_t decr16                       : 1;  /**< Enable DECR16  tracing
2892                                                          0=disable, 1=enable */
2893 	uint64_t decr8                        : 1;  /**< Enable DECR8   tracing
2894                                                          0=disable, 1=enable */
2895 	uint64_t incr64                       : 1;  /**< Enable INCR64  tracing
2896                                                          0=disable, 1=enable */
2897 	uint64_t incr32                       : 1;  /**< Enable INCR32  tracing
2898                                                          0=disable, 1=enable */
2899 	uint64_t incr16                       : 1;  /**< Enable INCR16  tracing
2900                                                          0=disable, 1=enable */
2901 	uint64_t incr8                        : 1;  /**< Enable INCR8   tracing
2902                                                          0=disable, 1=enable */
2903 	uint64_t clr64                        : 1;  /**< Enable CLR64   tracing
2904                                                          0=disable, 1=enable */
2905 	uint64_t clr32                        : 1;  /**< Enable CLR32   tracing
2906                                                          0=disable, 1=enable */
2907 	uint64_t clr16                        : 1;  /**< Enable CLR16   tracing
2908                                                          0=disable, 1=enable */
2909 	uint64_t clr8                         : 1;  /**< Enable CLR8    tracing
2910                                                          0=disable, 1=enable */
2911 	uint64_t set64                        : 1;  /**< Enable SET64   tracing
2912                                                          0=disable, 1=enable */
2913 	uint64_t set32                        : 1;  /**< Enable SET32   tracing
2914                                                          0=disable, 1=enable */
2915 	uint64_t set16                        : 1;  /**< Enable SET16   tracing
2916                                                          0=disable, 1=enable */
2917 	uint64_t set8                         : 1;  /**< Enable SET8    tracing
2918                                                          0=disable, 1=enable */
2919 	uint64_t iobst64                      : 1;  /**< Enable IOBST64 tracing
2920                                                          0=disable, 1=enable */
2921 	uint64_t iobst32                      : 1;  /**< Enable IOBST32 tracing
2922                                                          0=disable, 1=enable */
2923 	uint64_t iobst16                      : 1;  /**< Enable IOBST16 tracing
2924                                                          0=disable, 1=enable */
2925 	uint64_t iobst8                       : 1;  /**< Enable IOBST8  tracing
2926                                                          0=disable, 1=enable */
2927 	uint64_t reserved_32_35               : 4;
2928 	uint64_t lckl2                        : 1;  /**< Enable LCKL2   tracing
2929                                                          0=disable, 1=enable */
2930 	uint64_t wbl2                         : 1;  /**< Enable WBL2    tracing
2931                                                          0=disable, 1=enable */
2932 	uint64_t wbil2                        : 1;  /**< Enable WBIL2   tracing
2933                                                          0=disable, 1=enable */
2934 	uint64_t invl2                        : 1;  /**< Enable INVL2   tracing
2935                                                          0=disable, 1=enable */
2936 	uint64_t reserved_27_27               : 1;
2937 	uint64_t stgl2i                       : 1;  /**< Enable STGL2I  tracing
2938                                                          0=disable, 1=enable */
2939 	uint64_t ltgl2i                       : 1;  /**< Enable LTGL2I  tracing
2940                                                          0=disable, 1=enable */
2941 	uint64_t wbil2i                       : 1;  /**< Enable WBIL2I  tracing
2942                                                          0=disable, 1=enable */
2943 	uint64_t fas64                        : 1;  /**< Enable FAS64   tracing
2944                                                          0=disable, 1=enable */
2945 	uint64_t fas32                        : 1;  /**< Enable FAS32   tracing
2946                                                          0=disable, 1=enable */
2947 	uint64_t sttil1                       : 1;  /**< Enable STTIL1  tracing
2948                                                          0=disable, 1=enable */
2949 	uint64_t stfil1                       : 1;  /**< Enable STFIL1  tracing
2950                                                          0=disable, 1=enable */
2951 	uint64_t reserved_16_19               : 4;
2952 	uint64_t iobdma                       : 1;  /**< Enable IOBDMA  tracing
2953                                                          0=disable, 1=enable */
2954 	uint64_t iobst                        : 1;  /**< Enable IOBST   tracing
2955                                                          0=disable, 1=enable */
2956 	uint64_t reserved_0_13                : 14;
2957 #else
2958 	uint64_t reserved_0_13                : 14;
2959 	uint64_t iobst                        : 1;
2960 	uint64_t iobdma                       : 1;
2961 	uint64_t reserved_16_19               : 4;
2962 	uint64_t stfil1                       : 1;
2963 	uint64_t sttil1                       : 1;
2964 	uint64_t fas32                        : 1;
2965 	uint64_t fas64                        : 1;
2966 	uint64_t wbil2i                       : 1;
2967 	uint64_t ltgl2i                       : 1;
2968 	uint64_t stgl2i                       : 1;
2969 	uint64_t reserved_27_27               : 1;
2970 	uint64_t invl2                        : 1;
2971 	uint64_t wbil2                        : 1;
2972 	uint64_t wbl2                         : 1;
2973 	uint64_t lckl2                        : 1;
2974 	uint64_t reserved_32_35               : 4;
2975 	uint64_t iobst8                       : 1;
2976 	uint64_t iobst16                      : 1;
2977 	uint64_t iobst32                      : 1;
2978 	uint64_t iobst64                      : 1;
2979 	uint64_t set8                         : 1;
2980 	uint64_t set16                        : 1;
2981 	uint64_t set32                        : 1;
2982 	uint64_t set64                        : 1;
2983 	uint64_t clr8                         : 1;
2984 	uint64_t clr16                        : 1;
2985 	uint64_t clr32                        : 1;
2986 	uint64_t clr64                        : 1;
2987 	uint64_t incr8                        : 1;
2988 	uint64_t incr16                       : 1;
2989 	uint64_t incr32                       : 1;
2990 	uint64_t incr64                       : 1;
2991 	uint64_t decr8                        : 1;
2992 	uint64_t decr16                       : 1;
2993 	uint64_t decr32                       : 1;
2994 	uint64_t decr64                       : 1;
2995 	uint64_t reserved_56_57               : 2;
2996 	uint64_t faa32                        : 1;
2997 	uint64_t faa64                        : 1;
2998 	uint64_t reserved_60_61               : 2;
2999 	uint64_t saa32                        : 1;
3000 	uint64_t saa64                        : 1;
3001 #endif
3002 	} s;
3003 	struct cvmx_trax_trig1_cmd_cn31xx {
3004 #ifdef __BIG_ENDIAN_BITFIELD
3005 	uint64_t reserved_16_63               : 48;
3006 	uint64_t iobdma                       : 1;  /**< Enable IOBDMA  tracing
3007                                                          0=disable, 1=enable */
3008 	uint64_t iobst                        : 1;  /**< Enable IOBST   tracing
3009                                                          0=disable, 1=enable */
3010 	uint64_t iobld64                      : 1;  /**< Enable IOBLD64 tracing
3011                                                          0=disable, 1=enable */
3012 	uint64_t iobld32                      : 1;  /**< Enable IOBLD32 tracing
3013                                                          0=disable, 1=enable */
3014 	uint64_t iobld16                      : 1;  /**< Enable IOBLD16 tracing
3015                                                          0=disable, 1=enable */
3016 	uint64_t iobld8                       : 1;  /**< Enable IOBLD8  tracing
3017                                                          0=disable, 1=enable */
3018 	uint64_t stt                          : 1;  /**< Enable STT     tracing
3019                                                          0=disable, 1=enable */
3020 	uint64_t stp                          : 1;  /**< Enable STP     tracing
3021                                                          0=disable, 1=enable */
3022 	uint64_t stc                          : 1;  /**< Enable STC     tracing
3023                                                          0=disable, 1=enable */
3024 	uint64_t stf                          : 1;  /**< Enable STF     tracing
3025                                                          0=disable, 1=enable */
3026 	uint64_t ldt                          : 1;  /**< Enable LDT     tracing
3027                                                          0=disable, 1=enable */
3028 	uint64_t ldi                          : 1;  /**< Enable LDI     tracing
3029                                                          0=disable, 1=enable */
3030 	uint64_t ldd                          : 1;  /**< Enable LDD     tracing
3031                                                          0=disable, 1=enable */
3032 	uint64_t psl1                         : 1;  /**< Enable PSL1    tracing
3033                                                          0=disable, 1=enable */
3034 	uint64_t pl2                          : 1;  /**< Enable PL2     tracing
3035                                                          0=disable, 1=enable */
3036 	uint64_t dwb                          : 1;  /**< Enable DWB     tracing
3037                                                          0=disable, 1=enable */
3038 #else
3039 	uint64_t dwb                          : 1;
3040 	uint64_t pl2                          : 1;
3041 	uint64_t psl1                         : 1;
3042 	uint64_t ldd                          : 1;
3043 	uint64_t ldi                          : 1;
3044 	uint64_t ldt                          : 1;
3045 	uint64_t stf                          : 1;
3046 	uint64_t stc                          : 1;
3047 	uint64_t stp                          : 1;
3048 	uint64_t stt                          : 1;
3049 	uint64_t iobld8                       : 1;
3050 	uint64_t iobld16                      : 1;
3051 	uint64_t iobld32                      : 1;
3052 	uint64_t iobld64                      : 1;
3053 	uint64_t iobst                        : 1;
3054 	uint64_t iobdma                       : 1;
3055 	uint64_t reserved_16_63               : 48;
3056 #endif
3057 	} cn31xx;
3058 	struct cvmx_trax_trig1_cmd_cn31xx     cn38xx;
3059 	struct cvmx_trax_trig1_cmd_cn31xx     cn38xxp2;
3060 	struct cvmx_trax_trig1_cmd_cn52xx {
3061 #ifdef __BIG_ENDIAN_BITFIELD
3062 	uint64_t reserved_17_63               : 47;
3063 	uint64_t saa                          : 1;  /**< Enable SAA     tracing
3064                                                          0=disable, 1=enable */
3065 	uint64_t iobdma                       : 1;  /**< Enable IOBDMA  tracing
3066                                                          0=disable, 1=enable */
3067 	uint64_t iobst                        : 1;  /**< Enable IOBST   tracing
3068                                                          0=disable, 1=enable */
3069 	uint64_t iobld64                      : 1;  /**< Enable IOBLD64 tracing
3070                                                          0=disable, 1=enable */
3071 	uint64_t iobld32                      : 1;  /**< Enable IOBLD32 tracing
3072                                                          0=disable, 1=enable */
3073 	uint64_t iobld16                      : 1;  /**< Enable IOBLD16 tracing
3074                                                          0=disable, 1=enable */
3075 	uint64_t iobld8                       : 1;  /**< Enable IOBLD8  tracing
3076                                                          0=disable, 1=enable */
3077 	uint64_t stt                          : 1;  /**< Enable STT     tracing
3078                                                          0=disable, 1=enable */
3079 	uint64_t stp                          : 1;  /**< Enable STP     tracing
3080                                                          0=disable, 1=enable */
3081 	uint64_t stc                          : 1;  /**< Enable STC     tracing
3082                                                          0=disable, 1=enable */
3083 	uint64_t stf                          : 1;  /**< Enable STF     tracing
3084                                                          0=disable, 1=enable */
3085 	uint64_t ldt                          : 1;  /**< Enable LDT     tracing
3086                                                          0=disable, 1=enable */
3087 	uint64_t ldi                          : 1;  /**< Enable LDI     tracing
3088                                                          0=disable, 1=enable */
3089 	uint64_t ldd                          : 1;  /**< Enable LDD     tracing
3090                                                          0=disable, 1=enable */
3091 	uint64_t psl1                         : 1;  /**< Enable PSL1    tracing
3092                                                          0=disable, 1=enable */
3093 	uint64_t pl2                          : 1;  /**< Enable PL2     tracing
3094                                                          0=disable, 1=enable */
3095 	uint64_t dwb                          : 1;  /**< Enable DWB     tracing
3096                                                          0=disable, 1=enable */
3097 #else
3098 	uint64_t dwb                          : 1;
3099 	uint64_t pl2                          : 1;
3100 	uint64_t psl1                         : 1;
3101 	uint64_t ldd                          : 1;
3102 	uint64_t ldi                          : 1;
3103 	uint64_t ldt                          : 1;
3104 	uint64_t stf                          : 1;
3105 	uint64_t stc                          : 1;
3106 	uint64_t stp                          : 1;
3107 	uint64_t stt                          : 1;
3108 	uint64_t iobld8                       : 1;
3109 	uint64_t iobld16                      : 1;
3110 	uint64_t iobld32                      : 1;
3111 	uint64_t iobld64                      : 1;
3112 	uint64_t iobst                        : 1;
3113 	uint64_t iobdma                       : 1;
3114 	uint64_t saa                          : 1;
3115 	uint64_t reserved_17_63               : 47;
3116 #endif
3117 	} cn52xx;
3118 	struct cvmx_trax_trig1_cmd_cn52xx     cn52xxp1;
3119 	struct cvmx_trax_trig1_cmd_cn52xx     cn56xx;
3120 	struct cvmx_trax_trig1_cmd_cn52xx     cn56xxp1;
3121 	struct cvmx_trax_trig1_cmd_cn52xx     cn58xx;
3122 	struct cvmx_trax_trig1_cmd_cn52xx     cn58xxp1;
3123 	struct cvmx_trax_trig1_cmd_cn61xx {
3124 #ifdef __BIG_ENDIAN_BITFIELD
3125 	uint64_t saa64                        : 1;  /**< Enable SAA64 tracing
3126                                                          0=disable, 1=enable */
3127 	uint64_t saa32                        : 1;  /**< Enable SAA32 tracing
3128                                                          0=disable, 1=enable */
3129 	uint64_t reserved_60_61               : 2;
3130 	uint64_t faa64                        : 1;  /**< Enable FAA64 tracing
3131                                                          0=disable, 1=enable */
3132 	uint64_t faa32                        : 1;  /**< Enable FAA32 tracing
3133                                                          0=disable, 1=enable */
3134 	uint64_t reserved_56_57               : 2;
3135 	uint64_t decr64                       : 1;  /**< Enable DECR64  tracing
3136                                                          0=disable, 1=enable */
3137 	uint64_t decr32                       : 1;  /**< Enable DECR32  tracing
3138                                                          0=disable, 1=enable */
3139 	uint64_t decr16                       : 1;  /**< Enable DECR16  tracing
3140                                                          0=disable, 1=enable */
3141 	uint64_t decr8                        : 1;  /**< Enable DECR8   tracing
3142                                                          0=disable, 1=enable */
3143 	uint64_t incr64                       : 1;  /**< Enable INCR64  tracing
3144                                                          0=disable, 1=enable */
3145 	uint64_t incr32                       : 1;  /**< Enable INCR32  tracing
3146                                                          0=disable, 1=enable */
3147 	uint64_t incr16                       : 1;  /**< Enable INCR16  tracing
3148                                                          0=disable, 1=enable */
3149 	uint64_t incr8                        : 1;  /**< Enable INCR8   tracing
3150                                                          0=disable, 1=enable */
3151 	uint64_t clr64                        : 1;  /**< Enable CLR64   tracing
3152                                                          0=disable, 1=enable */
3153 	uint64_t clr32                        : 1;  /**< Enable CLR32   tracing
3154                                                          0=disable, 1=enable */
3155 	uint64_t clr16                        : 1;  /**< Enable CLR16   tracing
3156                                                          0=disable, 1=enable */
3157 	uint64_t clr8                         : 1;  /**< Enable CLR8    tracing
3158                                                          0=disable, 1=enable */
3159 	uint64_t set64                        : 1;  /**< Enable SET64   tracing
3160                                                          0=disable, 1=enable */
3161 	uint64_t set32                        : 1;  /**< Enable SET32   tracing
3162                                                          0=disable, 1=enable */
3163 	uint64_t set16                        : 1;  /**< Enable SET16   tracing
3164                                                          0=disable, 1=enable */
3165 	uint64_t set8                         : 1;  /**< Enable SET8    tracing
3166                                                          0=disable, 1=enable */
3167 	uint64_t iobst64                      : 1;  /**< Enable IOBST64 tracing
3168                                                          0=disable, 1=enable */
3169 	uint64_t iobst32                      : 1;  /**< Enable IOBST32 tracing
3170                                                          0=disable, 1=enable */
3171 	uint64_t iobst16                      : 1;  /**< Enable IOBST16 tracing
3172                                                          0=disable, 1=enable */
3173 	uint64_t iobst8                       : 1;  /**< Enable IOBST8  tracing
3174                                                          0=disable, 1=enable */
3175 	uint64_t iobld64                      : 1;  /**< Enable IOBLD64 tracing
3176                                                          0=disable, 1=enable */
3177 	uint64_t iobld32                      : 1;  /**< Enable IOBLD32 tracing
3178                                                          0=disable, 1=enable */
3179 	uint64_t iobld16                      : 1;  /**< Enable IOBLD16 tracing
3180                                                          0=disable, 1=enable */
3181 	uint64_t iobld8                       : 1;  /**< Enable IOBLD8  tracing
3182                                                          0=disable, 1=enable */
3183 	uint64_t lckl2                        : 1;  /**< Enable LCKL2   tracing
3184                                                          0=disable, 1=enable */
3185 	uint64_t wbl2                         : 1;  /**< Enable WBL2    tracing
3186                                                          0=disable, 1=enable */
3187 	uint64_t wbil2                        : 1;  /**< Enable WBIL2   tracing
3188                                                          0=disable, 1=enable */
3189 	uint64_t invl2                        : 1;  /**< Enable INVL2   tracing
3190                                                          0=disable, 1=enable */
3191 	uint64_t reserved_27_27               : 1;
3192 	uint64_t stgl2i                       : 1;  /**< Enable STGL2I  tracing
3193                                                          0=disable, 1=enable */
3194 	uint64_t ltgl2i                       : 1;  /**< Enable LTGL2I  tracing
3195                                                          0=disable, 1=enable */
3196 	uint64_t wbil2i                       : 1;  /**< Enable WBIL2I  tracing
3197                                                          0=disable, 1=enable */
3198 	uint64_t fas64                        : 1;  /**< Enable FAS64   tracing
3199                                                          0=disable, 1=enable */
3200 	uint64_t fas32                        : 1;  /**< Enable FAS32   tracing
3201                                                          0=disable, 1=enable */
3202 	uint64_t sttil1                       : 1;  /**< Enable STTIL1  tracing
3203                                                          0=disable, 1=enable */
3204 	uint64_t stfil1                       : 1;  /**< Enable STFIL1  tracing
3205                                                          0=disable, 1=enable */
3206 	uint64_t stc                          : 1;  /**< Enable STC     tracing
3207                                                          0=disable, 1=enable */
3208 	uint64_t stp                          : 1;  /**< Enable STP     tracing
3209                                                          0=disable, 1=enable */
3210 	uint64_t stt                          : 1;  /**< Enable STT     tracing
3211                                                          0=disable, 1=enable */
3212 	uint64_t stf                          : 1;  /**< Enable STF     tracing
3213                                                          0=disable, 1=enable */
3214 	uint64_t iobdma                       : 1;  /**< Enable IOBDMA  tracing
3215                                                          0=disable, 1=enable */
3216 	uint64_t reserved_10_14               : 5;
3217 	uint64_t psl1                         : 1;  /**< Enable PSL1    tracing
3218                                                          0=disable, 1=enable */
3219 	uint64_t ldd                          : 1;  /**< Enable LDD     tracing
3220                                                          0=disable, 1=enable */
3221 	uint64_t reserved_6_7                 : 2;
3222 	uint64_t dwb                          : 1;  /**< Enable DWB     tracing
3223                                                          0=disable, 1=enable */
3224 	uint64_t rpl2                         : 1;  /**< Enable RPL2    tracing
3225                                                          0=disable, 1=enable */
3226 	uint64_t pl2                          : 1;  /**< Enable PL2     tracing
3227                                                          0=disable, 1=enable */
3228 	uint64_t ldi                          : 1;  /**< Enable LDI     tracing
3229                                                          0=disable, 1=enable */
3230 	uint64_t ldt                          : 1;  /**< Enable LDT     tracing
3231                                                          0=disable, 1=enable */
3232 	uint64_t nop                          : 1;  /**< Enable NOP     tracing
3233                                                          0=disable, 1=enable */
3234 #else
3235 	uint64_t nop                          : 1;
3236 	uint64_t ldt                          : 1;
3237 	uint64_t ldi                          : 1;
3238 	uint64_t pl2                          : 1;
3239 	uint64_t rpl2                         : 1;
3240 	uint64_t dwb                          : 1;
3241 	uint64_t reserved_6_7                 : 2;
3242 	uint64_t ldd                          : 1;
3243 	uint64_t psl1                         : 1;
3244 	uint64_t reserved_10_14               : 5;
3245 	uint64_t iobdma                       : 1;
3246 	uint64_t stf                          : 1;
3247 	uint64_t stt                          : 1;
3248 	uint64_t stp                          : 1;
3249 	uint64_t stc                          : 1;
3250 	uint64_t stfil1                       : 1;
3251 	uint64_t sttil1                       : 1;
3252 	uint64_t fas32                        : 1;
3253 	uint64_t fas64                        : 1;
3254 	uint64_t wbil2i                       : 1;
3255 	uint64_t ltgl2i                       : 1;
3256 	uint64_t stgl2i                       : 1;
3257 	uint64_t reserved_27_27               : 1;
3258 	uint64_t invl2                        : 1;
3259 	uint64_t wbil2                        : 1;
3260 	uint64_t wbl2                         : 1;
3261 	uint64_t lckl2                        : 1;
3262 	uint64_t iobld8                       : 1;
3263 	uint64_t iobld16                      : 1;
3264 	uint64_t iobld32                      : 1;
3265 	uint64_t iobld64                      : 1;
3266 	uint64_t iobst8                       : 1;
3267 	uint64_t iobst16                      : 1;
3268 	uint64_t iobst32                      : 1;
3269 	uint64_t iobst64                      : 1;
3270 	uint64_t set8                         : 1;
3271 	uint64_t set16                        : 1;
3272 	uint64_t set32                        : 1;
3273 	uint64_t set64                        : 1;
3274 	uint64_t clr8                         : 1;
3275 	uint64_t clr16                        : 1;
3276 	uint64_t clr32                        : 1;
3277 	uint64_t clr64                        : 1;
3278 	uint64_t incr8                        : 1;
3279 	uint64_t incr16                       : 1;
3280 	uint64_t incr32                       : 1;
3281 	uint64_t incr64                       : 1;
3282 	uint64_t decr8                        : 1;
3283 	uint64_t decr16                       : 1;
3284 	uint64_t decr32                       : 1;
3285 	uint64_t decr64                       : 1;
3286 	uint64_t reserved_56_57               : 2;
3287 	uint64_t faa32                        : 1;
3288 	uint64_t faa64                        : 1;
3289 	uint64_t reserved_60_61               : 2;
3290 	uint64_t saa32                        : 1;
3291 	uint64_t saa64                        : 1;
3292 #endif
3293 	} cn61xx;
3294 	struct cvmx_trax_trig1_cmd_cn61xx     cn63xx;
3295 	struct cvmx_trax_trig1_cmd_cn61xx     cn63xxp1;
3296 	struct cvmx_trax_trig1_cmd_cn61xx     cn66xx;
3297 	struct cvmx_trax_trig1_cmd_cn61xx     cn68xx;
3298 	struct cvmx_trax_trig1_cmd_cn61xx     cn68xxp1;
3299 	struct cvmx_trax_trig1_cmd_cn61xx     cnf71xx;
3300 };
3301 typedef union cvmx_trax_trig1_cmd cvmx_trax_trig1_cmd_t;
3302 
3303 /**
3304  * cvmx_tra#_trig1_did
3305  *
3306  * TRA_TRIG1_DID = Trace Buffer Filter DestinationId Mask
3307  *
3308  * Description:
3309  */
3310 union cvmx_trax_trig1_did {
3311 	uint64_t u64;
3312 	struct cvmx_trax_trig1_did_s {
3313 #ifdef __BIG_ENDIAN_BITFIELD
3314 	uint64_t reserved_13_63               : 51;
3315 	uint64_t pow                          : 1;  /**< Enable triggering on requests to POW
3316                                                          (get work, add work, status/memory/index
3317                                                          loads, NULLRd loads, CSR's) */
3318 	uint64_t reserved_9_11                : 3;
3319 	uint64_t rng                          : 1;  /**< Enable triggering on requests to RNG
3320                                                          (loads/IOBDMA's are legal) */
3321 	uint64_t zip                          : 1;  /**< Enable triggering on requests to ZIP
3322                                                          (doorbell stores are legal) */
3323 	uint64_t dfa                          : 1;  /**< Enable triggering on requests to DFA
3324                                                          (CSR's and operations are legal) */
3325 	uint64_t fpa                          : 1;  /**< Enable triggering on requests to FPA
3326                                                          (alloc's (loads/IOBDMA's), frees (stores) are legal) */
3327 	uint64_t key                          : 1;  /**< Enable triggering on requests to KEY memory
3328                                                          (loads/IOBDMA's/stores are legal) */
3329 	uint64_t reserved_3_3                 : 1;
3330 	uint64_t illegal3                     : 2;  /**< Illegal destinations */
3331 	uint64_t mio                          : 1;  /**< Enable triggering on MIO accesses
3332                                                          (CIU and GPIO CSR's, boot bus accesses) */
3333 #else
3334 	uint64_t mio                          : 1;
3335 	uint64_t illegal3                     : 2;
3336 	uint64_t reserved_3_3                 : 1;
3337 	uint64_t key                          : 1;
3338 	uint64_t fpa                          : 1;
3339 	uint64_t dfa                          : 1;
3340 	uint64_t zip                          : 1;
3341 	uint64_t rng                          : 1;
3342 	uint64_t reserved_9_11                : 3;
3343 	uint64_t pow                          : 1;
3344 	uint64_t reserved_13_63               : 51;
3345 #endif
3346 	} s;
3347 	struct cvmx_trax_trig1_did_cn31xx {
3348 #ifdef __BIG_ENDIAN_BITFIELD
3349 	uint64_t reserved_32_63               : 32;
3350 	uint64_t illegal                      : 19; /**< Illegal destinations */
3351 	uint64_t pow                          : 1;  /**< Enable triggering on requests to POW
3352                                                          (get work, add work, status/memory/index
3353                                                          loads, NULLRd loads, CSR's) */
3354 	uint64_t illegal2                     : 3;  /**< Illegal destinations */
3355 	uint64_t rng                          : 1;  /**< Enable triggering on requests to RNG
3356                                                          (loads/IOBDMA's are legal) */
3357 	uint64_t zip                          : 1;  /**< Enable triggering on requests to ZIP
3358                                                          (doorbell stores are legal) */
3359 	uint64_t dfa                          : 1;  /**< Enable triggering on requests to DFA
3360                                                          (CSR's and operations are legal) */
3361 	uint64_t fpa                          : 1;  /**< Enable triggering on requests to FPA
3362                                                          (alloc's (loads/IOBDMA's), frees (stores) are legal) */
3363 	uint64_t key                          : 1;  /**< Enable triggering on requests to KEY memory
3364                                                          (loads/IOBDMA's/stores are legal) */
3365 	uint64_t pci                          : 1;  /**< Enable triggering on requests to PCI and RSL-type
3366                                                          CSR's (RSL CSR's, PCI bus operations, PCI
3367                                                          CSR's) */
3368 	uint64_t illegal3                     : 2;  /**< Illegal destinations */
3369 	uint64_t mio                          : 1;  /**< Enable triggering on CIU and GPIO CSR's */
3370 #else
3371 	uint64_t mio                          : 1;
3372 	uint64_t illegal3                     : 2;
3373 	uint64_t pci                          : 1;
3374 	uint64_t key                          : 1;
3375 	uint64_t fpa                          : 1;
3376 	uint64_t dfa                          : 1;
3377 	uint64_t zip                          : 1;
3378 	uint64_t rng                          : 1;
3379 	uint64_t illegal2                     : 3;
3380 	uint64_t pow                          : 1;
3381 	uint64_t illegal                      : 19;
3382 	uint64_t reserved_32_63               : 32;
3383 #endif
3384 	} cn31xx;
3385 	struct cvmx_trax_trig1_did_cn31xx     cn38xx;
3386 	struct cvmx_trax_trig1_did_cn31xx     cn38xxp2;
3387 	struct cvmx_trax_trig1_did_cn31xx     cn52xx;
3388 	struct cvmx_trax_trig1_did_cn31xx     cn52xxp1;
3389 	struct cvmx_trax_trig1_did_cn31xx     cn56xx;
3390 	struct cvmx_trax_trig1_did_cn31xx     cn56xxp1;
3391 	struct cvmx_trax_trig1_did_cn31xx     cn58xx;
3392 	struct cvmx_trax_trig1_did_cn31xx     cn58xxp1;
3393 	struct cvmx_trax_trig1_did_cn61xx {
3394 #ifdef __BIG_ENDIAN_BITFIELD
3395 	uint64_t reserved_32_63               : 32;
3396 	uint64_t illegal5                     : 1;  /**< Illegal destinations */
3397 	uint64_t fau                          : 1;  /**< Enable triggering on FAU accesses */
3398 	uint64_t illegal4                     : 2;  /**< Illegal destinations */
3399 	uint64_t dpi                          : 1;  /**< Enable triggering on DPI accesses
3400                                                          (DPI NCB CSRs) */
3401 	uint64_t illegal                      : 12; /**< Illegal destinations */
3402 	uint64_t rad                          : 1;  /**< Enable triggering on RAD accesses
3403                                                          (doorbells) */
3404 	uint64_t usb0                         : 1;  /**< Enable triggering on USB0 accesses
3405                                                          (UAHC0 EHCI and OHCI NCB CSRs) */
3406 	uint64_t pow                          : 1;  /**< Enable triggering on requests to POW
3407                                                          (get work, add work, status/memory/index
3408                                                          loads, NULLRd loads, CSR's) */
3409 	uint64_t illegal2                     : 1;  /**< Illegal destination */
3410 	uint64_t pko                          : 1;  /**< Enable triggering on PKO accesses
3411                                                          (doorbells) */
3412 	uint64_t ipd                          : 1;  /**< Enable triggering on IPD CSR accesses
3413                                                          (IPD CSRs) */
3414 	uint64_t rng                          : 1;  /**< Enable triggering on requests to RNG
3415                                                          (loads/IOBDMA's are legal) */
3416 	uint64_t zip                          : 1;  /**< Enable triggering on requests to ZIP
3417                                                          (doorbell stores are legal) */
3418 	uint64_t dfa                          : 1;  /**< Enable triggering on requests to DFA
3419                                                          (CSR's and operations are legal) */
3420 	uint64_t fpa                          : 1;  /**< Enable triggering on requests to FPA
3421                                                          (alloc's (loads/IOBDMA's), frees (stores) are legal) */
3422 	uint64_t key                          : 1;  /**< Enable triggering on requests to KEY memory
3423                                                          (loads/IOBDMA's/stores are legal) */
3424 	uint64_t sli                          : 1;  /**< Enable triggering on requests to SLI and RSL-type
3425                                                          CSR's (RSL CSR's, PCI/sRIO bus operations, SLI
3426                                                          CSR's) */
3427 	uint64_t illegal3                     : 2;  /**< Illegal destinations */
3428 	uint64_t mio                          : 1;  /**< Enable triggering on MIO accesses
3429                                                          (CIU and GPIO CSR's, boot bus accesses) */
3430 #else
3431 	uint64_t mio                          : 1;
3432 	uint64_t illegal3                     : 2;
3433 	uint64_t sli                          : 1;
3434 	uint64_t key                          : 1;
3435 	uint64_t fpa                          : 1;
3436 	uint64_t dfa                          : 1;
3437 	uint64_t zip                          : 1;
3438 	uint64_t rng                          : 1;
3439 	uint64_t ipd                          : 1;
3440 	uint64_t pko                          : 1;
3441 	uint64_t illegal2                     : 1;
3442 	uint64_t pow                          : 1;
3443 	uint64_t usb0                         : 1;
3444 	uint64_t rad                          : 1;
3445 	uint64_t illegal                      : 12;
3446 	uint64_t dpi                          : 1;
3447 	uint64_t illegal4                     : 2;
3448 	uint64_t fau                          : 1;
3449 	uint64_t illegal5                     : 1;
3450 	uint64_t reserved_32_63               : 32;
3451 #endif
3452 	} cn61xx;
3453 	struct cvmx_trax_trig1_did_cn61xx     cn63xx;
3454 	struct cvmx_trax_trig1_did_cn61xx     cn63xxp1;
3455 	struct cvmx_trax_trig1_did_cn61xx     cn66xx;
3456 	struct cvmx_trax_trig1_did_cn61xx     cn68xx;
3457 	struct cvmx_trax_trig1_did_cn61xx     cn68xxp1;
3458 	struct cvmx_trax_trig1_did_cn61xx     cnf71xx;
3459 };
3460 typedef union cvmx_trax_trig1_did cvmx_trax_trig1_did_t;
3461 
3462 /**
3463  * cvmx_tra#_trig1_sid
3464  *
3465  * TRA_TRIG1_SID = Trace Buffer Filter SourceId Mask
3466  *
3467  * Description:
3468  */
3469 union cvmx_trax_trig1_sid {
3470 	uint64_t u64;
3471 	struct cvmx_trax_trig1_sid_s {
3472 #ifdef __BIG_ENDIAN_BITFIELD
3473 	uint64_t reserved_20_63               : 44;
3474 	uint64_t dwb                          : 1;  /**< Enable triggering on requests from the IOB DWB engine */
3475 	uint64_t iobreq                       : 1;  /**< Enable triggering on requests from FPA,TIM,DFA,
3476                                                          PCI,ZIP,POW, and PKO (writes) */
3477 	uint64_t pko                          : 1;  /**< Enable triggering on read requests from PKO */
3478 	uint64_t pki                          : 1;  /**< Enable triggering on write requests from PIP/IPD */
3479 	uint64_t pp                           : 16; /**< Enable trigering from PP[N] with matching SourceID
3480                                                          0=disable, 1=enable per bit N where 0<=N<=3 */
3481 #else
3482 	uint64_t pp                           : 16;
3483 	uint64_t pki                          : 1;
3484 	uint64_t pko                          : 1;
3485 	uint64_t iobreq                       : 1;
3486 	uint64_t dwb                          : 1;
3487 	uint64_t reserved_20_63               : 44;
3488 #endif
3489 	} s;
3490 	struct cvmx_trax_trig1_sid_s          cn31xx;
3491 	struct cvmx_trax_trig1_sid_s          cn38xx;
3492 	struct cvmx_trax_trig1_sid_s          cn38xxp2;
3493 	struct cvmx_trax_trig1_sid_s          cn52xx;
3494 	struct cvmx_trax_trig1_sid_s          cn52xxp1;
3495 	struct cvmx_trax_trig1_sid_s          cn56xx;
3496 	struct cvmx_trax_trig1_sid_s          cn56xxp1;
3497 	struct cvmx_trax_trig1_sid_s          cn58xx;
3498 	struct cvmx_trax_trig1_sid_s          cn58xxp1;
3499 	struct cvmx_trax_trig1_sid_cn61xx {
3500 #ifdef __BIG_ENDIAN_BITFIELD
3501 	uint64_t reserved_20_63               : 44;
3502 	uint64_t dwb                          : 1;  /**< Enable triggering on requests from the IOB DWB engine */
3503 	uint64_t iobreq                       : 1;  /**< Enable triggering on requests from FPA,TIM,DFA,
3504                                                          PCI,ZIP,POW, and PKO (writes) */
3505 	uint64_t pko                          : 1;  /**< Enable triggering on read requests from PKO */
3506 	uint64_t pki                          : 1;  /**< Enable triggering on write requests from PIP/IPD */
3507 	uint64_t reserved_4_15                : 12;
3508 	uint64_t pp                           : 4;  /**< Enable trigering from PP[N] with matching SourceID
3509                                                          0=disable, 1=enable per bit N where 0<=N<=3 */
3510 #else
3511 	uint64_t pp                           : 4;
3512 	uint64_t reserved_4_15                : 12;
3513 	uint64_t pki                          : 1;
3514 	uint64_t pko                          : 1;
3515 	uint64_t iobreq                       : 1;
3516 	uint64_t dwb                          : 1;
3517 	uint64_t reserved_20_63               : 44;
3518 #endif
3519 	} cn61xx;
3520 	struct cvmx_trax_trig1_sid_cn63xx {
3521 #ifdef __BIG_ENDIAN_BITFIELD
3522 	uint64_t reserved_20_63               : 44;
3523 	uint64_t dwb                          : 1;  /**< Enable triggering on requests from the IOB DWB engine */
3524 	uint64_t iobreq                       : 1;  /**< Enable triggering on requests from FPA,TIM,DFA,
3525                                                          PCI,ZIP,POW, and PKO (writes) */
3526 	uint64_t pko                          : 1;  /**< Enable triggering on read requests from PKO */
3527 	uint64_t pki                          : 1;  /**< Enable triggering on write requests from PIP/IPD */
3528 	uint64_t reserved_8_15                : 8;
3529 	uint64_t pp                           : 8;  /**< Enable trigering from PP[N] with matching SourceID
3530                                                          0=disable, 1=enableper bit N where  0<=N<=15 */
3531 #else
3532 	uint64_t pp                           : 8;
3533 	uint64_t reserved_8_15                : 8;
3534 	uint64_t pki                          : 1;
3535 	uint64_t pko                          : 1;
3536 	uint64_t iobreq                       : 1;
3537 	uint64_t dwb                          : 1;
3538 	uint64_t reserved_20_63               : 44;
3539 #endif
3540 	} cn63xx;
3541 	struct cvmx_trax_trig1_sid_cn63xxp1 {
3542 #ifdef __BIG_ENDIAN_BITFIELD
3543 	uint64_t reserved_20_63               : 44;
3544 	uint64_t dwb                          : 1;  /**< Enable triggering on requests from the IOB DWB engine */
3545 	uint64_t iobreq                       : 1;  /**< Enable triggering on requests from FPA,TIM,DFA,
3546                                                          PCI,ZIP,POW, and PKO (writes) */
3547 	uint64_t pko                          : 1;  /**< Enable triggering on read requests from PKO */
3548 	uint64_t pki                          : 1;  /**< Enable triggering on write requests from PIP/IPD */
3549 	uint64_t reserved_6_15                : 10;
3550 	uint64_t pp                           : 6;  /**< Enable trigering from PP[N] with matching SourceID
3551                                                          0=disable, 1=enable per bit N where 0<=N<=5 */
3552 #else
3553 	uint64_t pp                           : 6;
3554 	uint64_t reserved_6_15                : 10;
3555 	uint64_t pki                          : 1;
3556 	uint64_t pko                          : 1;
3557 	uint64_t iobreq                       : 1;
3558 	uint64_t dwb                          : 1;
3559 	uint64_t reserved_20_63               : 44;
3560 #endif
3561 	} cn63xxp1;
3562 	struct cvmx_trax_trig1_sid_cn66xx {
3563 #ifdef __BIG_ENDIAN_BITFIELD
3564 	uint64_t reserved_20_63               : 44;
3565 	uint64_t dwb                          : 1;  /**< Enable triggering on requests from the IOB DWB engine */
3566 	uint64_t iobreq                       : 1;  /**< Enable triggering on requests from FPA,TIM,DFA,
3567                                                          PCI,ZIP,POW, and PKO (writes) */
3568 	uint64_t pko                          : 1;  /**< Enable triggering on read requests from PKO */
3569 	uint64_t pki                          : 1;  /**< Enable triggering on write requests from PIP/IPD */
3570 	uint64_t reserved_10_15               : 6;
3571 	uint64_t pp                           : 10; /**< Enable trigering from PP[N] with matching SourceID
3572                                                          0=disable, 1=enableper bit N where  0<=N<=15 */
3573 #else
3574 	uint64_t pp                           : 10;
3575 	uint64_t reserved_10_15               : 6;
3576 	uint64_t pki                          : 1;
3577 	uint64_t pko                          : 1;
3578 	uint64_t iobreq                       : 1;
3579 	uint64_t dwb                          : 1;
3580 	uint64_t reserved_20_63               : 44;
3581 #endif
3582 	} cn66xx;
3583 	struct cvmx_trax_trig1_sid_cn63xx     cn68xx;
3584 	struct cvmx_trax_trig1_sid_cn63xx     cn68xxp1;
3585 	struct cvmx_trax_trig1_sid_cn61xx     cnf71xx;
3586 };
3587 typedef union cvmx_trax_trig1_sid cvmx_trax_trig1_sid_t;
3588 
3589 #include "cvmx-tra-defs.h"
3590 #endif
3591