1 /******************************************************************************
2 *  Filename:       hw_lrfdtrc_h
3 ******************************************************************************
4 *  Copyright (c) 2021 Texas Instruments Incorporated. All rights reserved.
5 *
6 *  Redistribution and use in source and binary forms, with or without
7 *  modification, are permitted provided that the following conditions are met:
8 *
9 *  1) Redistributions of source code must retain the above copyright notice,
10 *     this list of conditions and the following disclaimer.
11 *
12 *  2) Redistributions in binary form must reproduce the above copyright notice,
13 *     this list of conditions and the following disclaimer in the documentation
14 *     and/or other materials provided with the distribution.
15 *
16 *  3) Neither the name of the copyright holder nor the names of its contributors
17 *     may be used to endorse or promote products derived from this software
18 *     without specific prior written permission.
19 *
20 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
24 *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 *  POSSIBILITY OF SUCH DAMAGE.
31 ******************************************************************************/
32 
33 #ifndef __HW_LRFDTRC_H__
34 #define __HW_LRFDTRC_H__
35 
36 //*****************************************************************************
37 //
38 // This section defines the register offsets of
39 // LRFDTRC component
40 //
41 //*****************************************************************************
42 // Tracer Configuration
43 #define LRFDTRC_O_CFG                                               0x00000000U
44 
45 // Channel 1 Command Register
46 #define LRFDTRC_O_CH1CMD                                            0x00000004U
47 
48 // Channel 2 Command Register
49 #define LRFDTRC_O_CH2CMD                                            0x00000008U
50 
51 // Channel 3 Command Register
52 #define LRFDTRC_O_CH3CMD                                            0x0000000CU
53 
54 // Channel 1 Parameter 0/1 Register
55 #define LRFDTRC_O_CH1PAR01                                          0x00000014U
56 
57 // Channel 2 Parameter 0/1 Register
58 #define LRFDTRC_O_CH2PAR01                                          0x00000018U
59 
60 // Channel 3 Parameter 0/1 Register
61 #define LRFDTRC_O_CH3PAR01                                          0x0000001CU
62 
63 // Channel 1 Parameter 2/3 Register
64 #define LRFDTRC_O_CH1PAR23                                          0x00000024U
65 
66 // Channel 2 Parameter 2/3 Register
67 #define LRFDTRC_O_CH2PAR23                                          0x00000028U
68 
69 // Channel 3 Parameter 2/3 Register
70 #define LRFDTRC_O_CH3PAR23                                          0x0000002CU
71 
72 //*****************************************************************************
73 //
74 // Register: LRFDTRC_O_CFG
75 //
76 //*****************************************************************************
77 // Field:   [8:7] PRESCAL
78 //
79 // Data rate prescaler for bit clock of the serialized data
80 // ENUMs:
81 // DIV4                     Divide clock by 4
82 // DIV3                     Divide clock by 3
83 // DIV2                     Divide clock by 2
84 // DIV1                     Divide clock by 1
85 #define LRFDTRC_CFG_PRESCAL_W                                                2U
86 #define LRFDTRC_CFG_PRESCAL_M                                       0x00000180U
87 #define LRFDTRC_CFG_PRESCAL_S                                                7U
88 #define LRFDTRC_CFG_PRESCAL_DIV4                                    0x00000180U
89 #define LRFDTRC_CFG_PRESCAL_DIV3                                    0x00000100U
90 #define LRFDTRC_CFG_PRESCAL_DIV2                                    0x00000080U
91 #define LRFDTRC_CFG_PRESCAL_DIV1                                    0x00000000U
92 
93 // Field:     [6] TSCLR
94 //
95 // Writing  1 to this bit clears the TX timer
96 // ENUMs:
97 // ONE                      The bit is 1
98 // ZERO                     The bit is 0
99 #define LRFDTRC_CFG_TSCLR                                           0x00000040U
100 #define LRFDTRC_CFG_TSCLR_M                                         0x00000040U
101 #define LRFDTRC_CFG_TSCLR_S                                                  6U
102 #define LRFDTRC_CFG_TSCLR_ONE                                       0x00000040U
103 #define LRFDTRC_CFG_TSCLR_ZERO                                      0x00000000U
104 
105 // Field:     [5] TSEN
106 //
107 // Enables the Timestamp
108 // ENUMs:
109 // ON                       The bit is 1
110 // OFF                      The bit is 0
111 #define LRFDTRC_CFG_TSEN                                            0x00000020U
112 #define LRFDTRC_CFG_TSEN_M                                          0x00000020U
113 #define LRFDTRC_CFG_TSEN_S                                                   5U
114 #define LRFDTRC_CFG_TSEN_ON                                         0x00000020U
115 #define LRFDTRC_CFG_TSEN_OFF                                        0x00000000U
116 
117 // Field:   [4:3] CH3EN
118 //
119 // Enables CH3 traces
120 // ENUMs:
121 // TOPSM                    Enabled with MCE, MCO and CCE backdoor access
122 //                          access
123 // NORM                     Enabled in normal mode. Data from bus slave
124 //                          interface.
125 // OFF                      Disabled. No tracer transfer due to CH3 events
126 #define LRFDTRC_CFG_CH3EN_W                                                  2U
127 #define LRFDTRC_CFG_CH3EN_M                                         0x00000018U
128 #define LRFDTRC_CFG_CH3EN_S                                                  3U
129 #define LRFDTRC_CFG_CH3EN_TOPSM                                     0x00000010U
130 #define LRFDTRC_CFG_CH3EN_NORM                                      0x00000008U
131 #define LRFDTRC_CFG_CH3EN_OFF                                       0x00000000U
132 
133 // Field:   [2:1] CH2EN
134 //
135 // Enables CH2 traces
136 // ENUMs:
137 // TOPSM                    Enabled with PBE and RFE backdoor access access
138 // NORM                     Enabled in normal mode. Data from bus slave
139 //                          interface.
140 // OFF                      Disabled. No tracer transfer due to CH2 events
141 #define LRFDTRC_CFG_CH2EN_W                                                  2U
142 #define LRFDTRC_CFG_CH2EN_M                                         0x00000006U
143 #define LRFDTRC_CFG_CH2EN_S                                                  1U
144 #define LRFDTRC_CFG_CH2EN_TOPSM                                     0x00000004U
145 #define LRFDTRC_CFG_CH2EN_NORM                                      0x00000002U
146 #define LRFDTRC_CFG_CH2EN_OFF                                       0x00000000U
147 
148 // Field:     [0] CH1EN
149 //
150 // Enables CH1 traces
151 // ENUMs:
152 // NORM                     Enabled in normal mode. Data from bus slave
153 //                          interface.
154 // OFF                      Disabled. No tracer transfer due to CH1 events
155 #define LRFDTRC_CFG_CH1EN                                           0x00000001U
156 #define LRFDTRC_CFG_CH1EN_M                                         0x00000001U
157 #define LRFDTRC_CFG_CH1EN_S                                                  0U
158 #define LRFDTRC_CFG_CH1EN_NORM                                      0x00000001U
159 #define LRFDTRC_CFG_CH1EN_OFF                                       0x00000000U
160 
161 //*****************************************************************************
162 //
163 // Register: LRFDTRC_O_CH1CMD
164 //
165 //*****************************************************************************
166 // Field:  [15:8] PKTHDR
167 //
168 // Header Byte. Reverts back to 0 when ready to transmit. A Write starts a
169 // transmission sequence.
170 // ENUMs:
171 // ALLONES                  All the bits are 1
172 // ALLZEROS                 All the bits are 0
173 #define LRFDTRC_CH1CMD_PKTHDR_W                                              8U
174 #define LRFDTRC_CH1CMD_PKTHDR_M                                     0x0000FF00U
175 #define LRFDTRC_CH1CMD_PKTHDR_S                                              8U
176 #define LRFDTRC_CH1CMD_PKTHDR_ALLONES                               0x0000FF00U
177 #define LRFDTRC_CH1CMD_PKTHDR_ALLZEROS                              0x00000000U
178 
179 // Field:   [2:0] PARCNT
180 //
181 // Number of parameters to transmit. Reverts back to 0 when ready to transmit.
182 // A Write starts a transmission sequence.
183 // ENUMs:
184 // ALLONES                  All the bits are 1
185 // ALLZEROS                 All the bits are 0
186 #define LRFDTRC_CH1CMD_PARCNT_W                                              3U
187 #define LRFDTRC_CH1CMD_PARCNT_M                                     0x00000007U
188 #define LRFDTRC_CH1CMD_PARCNT_S                                              0U
189 #define LRFDTRC_CH1CMD_PARCNT_ALLONES                               0x00000007U
190 #define LRFDTRC_CH1CMD_PARCNT_ALLZEROS                              0x00000000U
191 
192 //*****************************************************************************
193 //
194 // Register: LRFDTRC_O_CH2CMD
195 //
196 //*****************************************************************************
197 // Field:  [15:8] PKTHDR
198 //
199 // Header Byte. Reverts back to 0 when ready to transmit. A Write starts a
200 // transmission sequence.
201 // ENUMs:
202 // ALLONES                  All the bits are 1
203 // ALLZEROS                 All the bits are 0
204 #define LRFDTRC_CH2CMD_PKTHDR_W                                              8U
205 #define LRFDTRC_CH2CMD_PKTHDR_M                                     0x0000FF00U
206 #define LRFDTRC_CH2CMD_PKTHDR_S                                              8U
207 #define LRFDTRC_CH2CMD_PKTHDR_ALLONES                               0x0000FF00U
208 #define LRFDTRC_CH2CMD_PKTHDR_ALLZEROS                              0x00000000U
209 
210 // Field:   [2:0] PARCNT
211 //
212 // Number of parameters to transmit. Reverts back to 0 when ready to transmit.
213 // A Write starts a transmission sequence.
214 // ENUMs:
215 // ALLONES                  All the bits are 1
216 // ALLZEROS                 All the bits are 0
217 #define LRFDTRC_CH2CMD_PARCNT_W                                              3U
218 #define LRFDTRC_CH2CMD_PARCNT_M                                     0x00000007U
219 #define LRFDTRC_CH2CMD_PARCNT_S                                              0U
220 #define LRFDTRC_CH2CMD_PARCNT_ALLONES                               0x00000007U
221 #define LRFDTRC_CH2CMD_PARCNT_ALLZEROS                              0x00000000U
222 
223 //*****************************************************************************
224 //
225 // Register: LRFDTRC_O_CH3CMD
226 //
227 //*****************************************************************************
228 // Field:  [15:8] PKTHDR
229 //
230 // Header Byte. Reverts back to 0 when ready to transmit. A Write starts a
231 // transmission sequence.
232 // ENUMs:
233 // ALLONES                  All the bits are 1
234 // ALLZEROS                 All the bits are 0
235 #define LRFDTRC_CH3CMD_PKTHDR_W                                              8U
236 #define LRFDTRC_CH3CMD_PKTHDR_M                                     0x0000FF00U
237 #define LRFDTRC_CH3CMD_PKTHDR_S                                              8U
238 #define LRFDTRC_CH3CMD_PKTHDR_ALLONES                               0x0000FF00U
239 #define LRFDTRC_CH3CMD_PKTHDR_ALLZEROS                              0x00000000U
240 
241 // Field:   [2:0] PARCNT
242 //
243 // Number of parameters to transmit. Reverts back to 0 when ready to transmit.
244 // A Write starts a transmission sequence.
245 // ENUMs:
246 // ALLONES                  All the bits are 1
247 // ALLZEROS                 All the bits are 0
248 #define LRFDTRC_CH3CMD_PARCNT_W                                              3U
249 #define LRFDTRC_CH3CMD_PARCNT_M                                     0x00000007U
250 #define LRFDTRC_CH3CMD_PARCNT_S                                              0U
251 #define LRFDTRC_CH3CMD_PARCNT_ALLONES                               0x00000007U
252 #define LRFDTRC_CH3CMD_PARCNT_ALLZEROS                              0x00000000U
253 
254 //*****************************************************************************
255 //
256 // Register: LRFDTRC_O_CH1PAR01
257 //
258 //*****************************************************************************
259 // Field: [31:16] PAR1
260 //
261 // Parameter 1 for Channel 1
262 // ENUMs:
263 // ALLONES                  All the bits are 1
264 // ALLZEROS                 All the bits are 0
265 #define LRFDTRC_CH1PAR01_PAR1_W                                             16U
266 #define LRFDTRC_CH1PAR01_PAR1_M                                     0xFFFF0000U
267 #define LRFDTRC_CH1PAR01_PAR1_S                                             16U
268 #define LRFDTRC_CH1PAR01_PAR1_ALLONES                               0xFFFF0000U
269 #define LRFDTRC_CH1PAR01_PAR1_ALLZEROS                              0x00000000U
270 
271 // Field:  [15:0] PAR0
272 //
273 // Parameter 0 for Channel 1
274 // ENUMs:
275 // ALLONES                  All the bits are 1
276 // ALLZEROS                 All the bits are 0
277 #define LRFDTRC_CH1PAR01_PAR0_W                                             16U
278 #define LRFDTRC_CH1PAR01_PAR0_M                                     0x0000FFFFU
279 #define LRFDTRC_CH1PAR01_PAR0_S                                              0U
280 #define LRFDTRC_CH1PAR01_PAR0_ALLONES                               0x0000FFFFU
281 #define LRFDTRC_CH1PAR01_PAR0_ALLZEROS                              0x00000000U
282 
283 //*****************************************************************************
284 //
285 // Register: LRFDTRC_O_CH2PAR01
286 //
287 //*****************************************************************************
288 // Field: [31:16] PAR1
289 //
290 // Parameter 1 for Channel 2
291 // ENUMs:
292 // ALLONES                  All the bits are 1
293 // ALLZEROS                 All the bits are 0
294 #define LRFDTRC_CH2PAR01_PAR1_W                                             16U
295 #define LRFDTRC_CH2PAR01_PAR1_M                                     0xFFFF0000U
296 #define LRFDTRC_CH2PAR01_PAR1_S                                             16U
297 #define LRFDTRC_CH2PAR01_PAR1_ALLONES                               0xFFFF0000U
298 #define LRFDTRC_CH2PAR01_PAR1_ALLZEROS                              0x00000000U
299 
300 // Field:  [15:0] PAR0
301 //
302 // Parameter 0 for Channel 2
303 // ENUMs:
304 // ALLONES                  All the bits are 1
305 // ALLZEROS                 All the bits are 0
306 #define LRFDTRC_CH2PAR01_PAR0_W                                             16U
307 #define LRFDTRC_CH2PAR01_PAR0_M                                     0x0000FFFFU
308 #define LRFDTRC_CH2PAR01_PAR0_S                                              0U
309 #define LRFDTRC_CH2PAR01_PAR0_ALLONES                               0x0000FFFFU
310 #define LRFDTRC_CH2PAR01_PAR0_ALLZEROS                              0x00000000U
311 
312 //*****************************************************************************
313 //
314 // Register: LRFDTRC_O_CH3PAR01
315 //
316 //*****************************************************************************
317 // Field: [31:16] PAR1
318 //
319 // Parameter 1 for Channel 3
320 // ENUMs:
321 // ALLONES                  All the bits are 1
322 // ALLZEROS                 All the bits are 0
323 #define LRFDTRC_CH3PAR01_PAR1_W                                             16U
324 #define LRFDTRC_CH3PAR01_PAR1_M                                     0xFFFF0000U
325 #define LRFDTRC_CH3PAR01_PAR1_S                                             16U
326 #define LRFDTRC_CH3PAR01_PAR1_ALLONES                               0xFFFF0000U
327 #define LRFDTRC_CH3PAR01_PAR1_ALLZEROS                              0x00000000U
328 
329 // Field:  [15:0] PAR0
330 //
331 // Parameter 0 for Channel 3
332 // ENUMs:
333 // ALLONES                  All the bits are 1
334 // ALLZEROS                 All the bits are 0
335 #define LRFDTRC_CH3PAR01_PAR0_W                                             16U
336 #define LRFDTRC_CH3PAR01_PAR0_M                                     0x0000FFFFU
337 #define LRFDTRC_CH3PAR01_PAR0_S                                              0U
338 #define LRFDTRC_CH3PAR01_PAR0_ALLONES                               0x0000FFFFU
339 #define LRFDTRC_CH3PAR01_PAR0_ALLZEROS                              0x00000000U
340 
341 //*****************************************************************************
342 //
343 // Register: LRFDTRC_O_CH1PAR23
344 //
345 //*****************************************************************************
346 // Field: [31:16] PAR3
347 //
348 // Parameter 3 for Channel 1
349 // ENUMs:
350 // ALLONES                  All the bits are 1
351 // ALLZEROS                 All the bits are 0
352 #define LRFDTRC_CH1PAR23_PAR3_W                                             16U
353 #define LRFDTRC_CH1PAR23_PAR3_M                                     0xFFFF0000U
354 #define LRFDTRC_CH1PAR23_PAR3_S                                             16U
355 #define LRFDTRC_CH1PAR23_PAR3_ALLONES                               0xFFFF0000U
356 #define LRFDTRC_CH1PAR23_PAR3_ALLZEROS                              0x00000000U
357 
358 // Field:  [15:0] PAR2
359 //
360 // Parameter 2 for Channel 1
361 // ENUMs:
362 // ALLONES                  All the bits are 1
363 // ALLZEROS                 All the bits are 0
364 #define LRFDTRC_CH1PAR23_PAR2_W                                             16U
365 #define LRFDTRC_CH1PAR23_PAR2_M                                     0x0000FFFFU
366 #define LRFDTRC_CH1PAR23_PAR2_S                                              0U
367 #define LRFDTRC_CH1PAR23_PAR2_ALLONES                               0x0000FFFFU
368 #define LRFDTRC_CH1PAR23_PAR2_ALLZEROS                              0x00000000U
369 
370 //*****************************************************************************
371 //
372 // Register: LRFDTRC_O_CH2PAR23
373 //
374 //*****************************************************************************
375 // Field: [31:16] PAR3
376 //
377 // Parameter 3 for Channel 2
378 // ENUMs:
379 // ALLONES                  All the bits are 1
380 // ALLZEROS                 All the bits are 0
381 #define LRFDTRC_CH2PAR23_PAR3_W                                             16U
382 #define LRFDTRC_CH2PAR23_PAR3_M                                     0xFFFF0000U
383 #define LRFDTRC_CH2PAR23_PAR3_S                                             16U
384 #define LRFDTRC_CH2PAR23_PAR3_ALLONES                               0xFFFF0000U
385 #define LRFDTRC_CH2PAR23_PAR3_ALLZEROS                              0x00000000U
386 
387 // Field:  [15:0] PAR2
388 //
389 // Parameter 2 for Channel 2
390 // ENUMs:
391 // ALLONES                  All the bits are 1
392 // ALLZEROS                 All the bits are 0
393 #define LRFDTRC_CH2PAR23_PAR2_W                                             16U
394 #define LRFDTRC_CH2PAR23_PAR2_M                                     0x0000FFFFU
395 #define LRFDTRC_CH2PAR23_PAR2_S                                              0U
396 #define LRFDTRC_CH2PAR23_PAR2_ALLONES                               0x0000FFFFU
397 #define LRFDTRC_CH2PAR23_PAR2_ALLZEROS                              0x00000000U
398 
399 //*****************************************************************************
400 //
401 // Register: LRFDTRC_O_CH3PAR23
402 //
403 //*****************************************************************************
404 // Field: [31:16] PAR3
405 //
406 // Parameter 3 for Channel 3
407 // ENUMs:
408 // ALLONES                  All the bits are 1
409 // ALLZEROS                 All the bits are 0
410 #define LRFDTRC_CH3PAR23_PAR3_W                                             16U
411 #define LRFDTRC_CH3PAR23_PAR3_M                                     0xFFFF0000U
412 #define LRFDTRC_CH3PAR23_PAR3_S                                             16U
413 #define LRFDTRC_CH3PAR23_PAR3_ALLONES                               0xFFFF0000U
414 #define LRFDTRC_CH3PAR23_PAR3_ALLZEROS                              0x00000000U
415 
416 // Field:  [15:0] PAR2
417 //
418 // Parameter 2 for Channel 3
419 // ENUMs:
420 // ALLONES                  All the bits are 1
421 // ALLZEROS                 All the bits are 0
422 #define LRFDTRC_CH3PAR23_PAR2_W                                             16U
423 #define LRFDTRC_CH3PAR23_PAR2_M                                     0x0000FFFFU
424 #define LRFDTRC_CH3PAR23_PAR2_S                                              0U
425 #define LRFDTRC_CH3PAR23_PAR2_ALLONES                               0x0000FFFFU
426 #define LRFDTRC_CH3PAR23_PAR2_ALLZEROS                              0x00000000U
427 
428 
429 #endif // __LRFDTRC__
430