Loading...
Searching...
No Matches
m33.h
1// THIS HEADER FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT
2
8#ifndef _HARDWARE_STRUCTS_M33_H
9#define _HARDWARE_STRUCTS_M33_H
10
14
16#include "hardware/regs/m33.h"
17
18// Reference to datasheet: https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.pdf#tab-registerlist_m33
19//
20// The _REG_ macro is intended to help make the register navigable in your IDE (for example, using the "Go to Definition" feature)
21// _REG_(x) will link to the corresponding register in hardware/regs/m33.h.
22//
23// Bit-field descriptions are of the form:
24// BITMASK [BITRANGE] FIELDNAME (RESETVALUE) DESCRIPTION
25
26#if defined(__riscv) && PICO_FORBID_ARM_HEADERS_ON_RISCV
27#error "Arm header included in a RISC-V build with PICO_FORBID_ARM_HEADERS_ON_RISCV=1"
28#endif
29
30typedef struct {
31 // (Description copied from array index 0 register M33_ITM_STIM0 applies similarly to other array indexes)
32 _REG_(M33_ITM_STIM0_OFFSET) // M33_ITM_STIM0
33 // ITM Stimulus Port Register 0
34 // 0xffffffff [31:0] STIMULUS (0x00000000) Data to write to the Stimulus Port FIFO, for forwarding...
35 io_rw_32 itm_stim[32];
36
37 uint32_t _pad0[864];
38
39 _REG_(M33_ITM_TER0_OFFSET) // M33_ITM_TER0
40 // Provide an individual enable bit for each ITM_STIM register
41 // 0xffffffff [31:0] STIMENA (0x00000000) For STIMENA[m] in ITM_TER*n, controls whether...
42 io_rw_32 itm_ter0;
43
44 uint32_t _pad1[15];
45
46 _REG_(M33_ITM_TPR_OFFSET) // M33_ITM_TPR
47 // Controls which stimulus ports can be accessed by unprivileged code
48 // 0x0000000f [3:0] PRIVMASK (0x0) Bit mask to enable tracing on ITM stimulus ports
49 io_rw_32 itm_tpr;
50
51 uint32_t _pad2[15];
52
53 _REG_(M33_ITM_TCR_OFFSET) // M33_ITM_TCR
54 // Configures and controls transfers through the ITM interface
55 // 0x00800000 [23] BUSY (0) Indicates whether the ITM is currently processing events
56 // 0x007f0000 [22:16] TRACEBUSID (0x00) Identifier for multi-source trace stream formatting
57 // 0x00000c00 [11:10] GTSFREQ (0x0) Defines how often the ITM generates a global timestamp,...
58 // 0x00000300 [9:8] TSPRESCALE (0x0) Local timestamp prescaler, used with the trace packet...
59 // 0x00000020 [5] STALLENA (0) Stall the PE to guarantee delivery of Data Trace packets
60 // 0x00000010 [4] SWOENA (0) Enables asynchronous clocking of the timestamp counter
61 // 0x00000008 [3] TXENA (0) Enables forwarding of hardware event packet from the DWT...
62 // 0x00000004 [2] SYNCENA (0) Enables Synchronization packet transmission for a...
63 // 0x00000002 [1] TSENA (0) Enables Local timestamp generation
64 // 0x00000001 [0] ITMENA (0) Enables the ITM
65 io_rw_32 itm_tcr;
66
67 uint32_t _pad3[27];
68
69 _REG_(M33_INT_ATREADY_OFFSET) // M33_INT_ATREADY
70 // Integration Mode: Read ATB Ready
71 // 0x00000002 [1] AFVALID (0) A read of this bit returns the value of AFVALID
72 // 0x00000001 [0] ATREADY (0) A read of this bit returns the value of ATREADY
73 io_ro_32 int_atready;
74
75 uint32_t _pad4;
76
77 _REG_(M33_INT_ATVALID_OFFSET) // M33_INT_ATVALID
78 // Integration Mode: Write ATB Valid
79 // 0x00000002 [1] AFREADY (0) A write to this bit gives the value of AFREADY
80 // 0x00000001 [0] ATREADY (0) A write to this bit gives the value of ATVALID
81 io_rw_32 int_atvalid;
82
83 uint32_t _pad5;
84
85 _REG_(M33_ITM_ITCTRL_OFFSET) // M33_ITM_ITCTRL
86 // Integration Mode Control Register
87 // 0x00000001 [0] IME (0) Integration mode enable bit - The possible values are: ...
88 io_rw_32 itm_itctrl;
89
90 uint32_t _pad6[46];
91
92 _REG_(M33_ITM_DEVARCH_OFFSET) // M33_ITM_DEVARCH
93 // Provides CoreSight discovery information for the ITM
94 // 0xffe00000 [31:21] ARCHITECT (0x23b) Defines the architect of the component
95 // 0x00100000 [20] PRESENT (1) Defines that the DEVARCH register is present
96 // 0x000f0000 [19:16] REVISION (0x0) Defines the architecture revision of the component
97 // 0x0000f000 [15:12] ARCHVER (0x1) Defines the architecture version of the component
98 // 0x00000fff [11:0] ARCHPART (0xa01) Defines the architecture of the component
99 io_ro_32 itm_devarch;
100
101 uint32_t _pad7[3];
102
103 _REG_(M33_ITM_DEVTYPE_OFFSET) // M33_ITM_DEVTYPE
104 // Provides CoreSight discovery information for the ITM
105 // 0x000000f0 [7:4] SUB (0x4) Component sub-type
106 // 0x0000000f [3:0] MAJOR (0x3) Component major type
107 io_ro_32 itm_devtype;
108
109 _REG_(M33_ITM_PIDR4_OFFSET) // M33_ITM_PIDR4
110 // Provides CoreSight discovery information for the ITM
111 // 0x000000f0 [7:4] SIZE (0x0) See CoreSight Architecture Specification
112 // 0x0000000f [3:0] DES_2 (0x4) See CoreSight Architecture Specification
113 io_ro_32 itm_pidr4;
114
115 uint32_t _pad8[3];
116
117 _REG_(M33_ITM_PIDR0_OFFSET) // M33_ITM_PIDR0
118 // Provides CoreSight discovery information for the ITM
119 // 0x000000ff [7:0] PART_0 (0x21) See CoreSight Architecture Specification
120 io_ro_32 itm_pidr0;
121
122 _REG_(M33_ITM_PIDR1_OFFSET) // M33_ITM_PIDR1
123 // Provides CoreSight discovery information for the ITM
124 // 0x000000f0 [7:4] DES_0 (0xb) See CoreSight Architecture Specification
125 // 0x0000000f [3:0] PART_1 (0xd) See CoreSight Architecture Specification
126 io_ro_32 itm_pidr1;
127
128 _REG_(M33_ITM_PIDR2_OFFSET) // M33_ITM_PIDR2
129 // Provides CoreSight discovery information for the ITM
130 // 0x000000f0 [7:4] REVISION (0x0) See CoreSight Architecture Specification
131 // 0x00000008 [3] JEDEC (1) See CoreSight Architecture Specification
132 // 0x00000007 [2:0] DES_1 (0x3) See CoreSight Architecture Specification
133 io_ro_32 itm_pidr2;
134
135 _REG_(M33_ITM_PIDR3_OFFSET) // M33_ITM_PIDR3
136 // Provides CoreSight discovery information for the ITM
137 // 0x000000f0 [7:4] REVAND (0x0) See CoreSight Architecture Specification
138 // 0x0000000f [3:0] CMOD (0x0) See CoreSight Architecture Specification
139 io_ro_32 itm_pidr3;
140
141 // (Description copied from array index 0 register M33_ITM_CIDR0 applies similarly to other array indexes)
142 _REG_(M33_ITM_CIDR0_OFFSET) // M33_ITM_CIDR0
143 // Provides CoreSight discovery information for the ITM
144 // 0x000000ff [7:0] PRMBL_0 (0x0d) See CoreSight Architecture Specification
145 io_ro_32 itm_cidr[4];
146
147 _REG_(M33_DWT_CTRL_OFFSET) // M33_DWT_CTRL
148 // Provides configuration and status information for the DWT unit, and used to control features of the unit
149 // 0xf0000000 [31:28] NUMCOMP (0x7) Number of DWT comparators implemented
150 // 0x08000000 [27] NOTRCPKT (0) Indicates whether the implementation does not support trace
151 // 0x04000000 [26] NOEXTTRIG (0) Reserved, RAZ
152 // 0x02000000 [25] NOCYCCNT (1) Indicates whether the implementation does not include a...
153 // 0x01000000 [24] NOPRFCNT (1) Indicates whether the implementation does not include...
154 // 0x00800000 [23] CYCDISS (0) Controls whether the cycle counter is disabled in Secure state
155 // 0x00400000 [22] CYCEVTENA (1) Enables Event Counter packet generation on POSTCNT underflow
156 // 0x00200000 [21] FOLDEVTENA (1) Enables DWT_FOLDCNT counter
157 // 0x00100000 [20] LSUEVTENA (1) Enables DWT_LSUCNT counter
158 // 0x00080000 [19] SLEEPEVTENA (0) Enable DWT_SLEEPCNT counter
159 // 0x00040000 [18] EXCEVTENA (1) Enables DWT_EXCCNT counter
160 // 0x00020000 [17] CPIEVTENA (0) Enables DWT_CPICNT counter
161 // 0x00010000 [16] EXTTRCENA (0) Enables generation of Exception Trace packets
162 // 0x00001000 [12] PCSAMPLENA (1) Enables use of POSTCNT counter as a timer for Periodic...
163 // 0x00000c00 [11:10] SYNCTAP (0x2) Selects the position of the synchronization packet...
164 // 0x00000200 [9] CYCTAP (0) Selects the position of the POSTCNT tap on the CYCCNT counter
165 // 0x000001e0 [8:5] POSTINIT (0x1) Initial value for the POSTCNT counter
166 // 0x0000001e [4:1] POSTPRESET (0x2) Reload value for the POSTCNT counter
167 // 0x00000001 [0] CYCCNTENA (0) Enables CYCCNT
168 io_rw_32 dwt_ctrl;
169
170 _REG_(M33_DWT_CYCCNT_OFFSET) // M33_DWT_CYCCNT
171 // Shows or sets the value of the processor cycle counter, CYCCNT
172 // 0xffffffff [31:0] CYCCNT (0x00000000) Increments one on each processor clock cycle when DWT_CTRL
173 io_rw_32 dwt_cyccnt;
174
175 uint32_t _pad9;
176
177 _REG_(M33_DWT_EXCCNT_OFFSET) // M33_DWT_EXCCNT
178 // Counts the total cycles spent in exception processing
179 // 0x000000ff [7:0] EXCCNT (0x00) Counts one on each cycle when all of the following are...
180 io_rw_32 dwt_exccnt;
181
182 uint32_t _pad10;
183
184 _REG_(M33_DWT_LSUCNT_OFFSET) // M33_DWT_LSUCNT
185 // Increments on the additional cycles required to execute all load or store instructions
186 // 0x000000ff [7:0] LSUCNT (0x00) Counts one on each cycle when all of the following are...
187 io_rw_32 dwt_lsucnt;
188
189 _REG_(M33_DWT_FOLDCNT_OFFSET) // M33_DWT_FOLDCNT
190 // Increments on the additional cycles required to execute all load or store instructions
191 // 0x000000ff [7:0] FOLDCNT (0x00) Counts on each cycle when all of the following are true:...
192 io_rw_32 dwt_foldcnt;
193
194 uint32_t _pad11;
195
196 _REG_(M33_DWT_COMP0_OFFSET) // M33_DWT_COMP0
197 // Provides a reference value for use by watchpoint comparator 0
198 // 0xffffffff [31:0] DWT_COMP0 (0x00000000)
199 io_rw_32 dwt_comp0;
200
201 uint32_t _pad12;
202
203 _REG_(M33_DWT_FUNCTION0_OFFSET) // M33_DWT_FUNCTION0
204 // Controls the operation of watchpoint comparator 0
205 // 0xf8000000 [31:27] ID (0x0b) Identifies the capabilities for MATCH for comparator *n
206 // 0x01000000 [24] MATCHED (0) Set to 1 when the comparator matches
207 // 0x00000c00 [11:10] DATAVSIZE (0x0) Defines the size of the object being watched for by Data...
208 // 0x00000030 [5:4] ACTION (0x0) Defines the action on a match
209 // 0x0000000f [3:0] MATCH (0x0) Controls the type of match generated by this comparator
210 io_rw_32 dwt_function0;
211
212 uint32_t _pad13;
213
214 _REG_(M33_DWT_COMP1_OFFSET) // M33_DWT_COMP1
215 // Provides a reference value for use by watchpoint comparator 1
216 // 0xffffffff [31:0] DWT_COMP1 (0x00000000)
217 io_rw_32 dwt_comp1;
218
219 uint32_t _pad14;
220
221 _REG_(M33_DWT_FUNCTION1_OFFSET) // M33_DWT_FUNCTION1
222 // Controls the operation of watchpoint comparator 1
223 // 0xf8000000 [31:27] ID (0x11) Identifies the capabilities for MATCH for comparator *n
224 // 0x01000000 [24] MATCHED (1) Set to 1 when the comparator matches
225 // 0x00000c00 [11:10] DATAVSIZE (0x2) Defines the size of the object being watched for by Data...
226 // 0x00000030 [5:4] ACTION (0x2) Defines the action on a match
227 // 0x0000000f [3:0] MATCH (0x8) Controls the type of match generated by this comparator
228 io_rw_32 dwt_function1;
229
230 uint32_t _pad15;
231
232 _REG_(M33_DWT_COMP2_OFFSET) // M33_DWT_COMP2
233 // Provides a reference value for use by watchpoint comparator 2
234 // 0xffffffff [31:0] DWT_COMP2 (0x00000000)
235 io_rw_32 dwt_comp2;
236
237 uint32_t _pad16;
238
239 _REG_(M33_DWT_FUNCTION2_OFFSET) // M33_DWT_FUNCTION2
240 // Controls the operation of watchpoint comparator 2
241 // 0xf8000000 [31:27] ID (0x0a) Identifies the capabilities for MATCH for comparator *n
242 // 0x01000000 [24] MATCHED (0) Set to 1 when the comparator matches
243 // 0x00000c00 [11:10] DATAVSIZE (0x0) Defines the size of the object being watched for by Data...
244 // 0x00000030 [5:4] ACTION (0x0) Defines the action on a match
245 // 0x0000000f [3:0] MATCH (0x0) Controls the type of match generated by this comparator
246 io_rw_32 dwt_function2;
247
248 uint32_t _pad17;
249
250 _REG_(M33_DWT_COMP3_OFFSET) // M33_DWT_COMP3
251 // Provides a reference value for use by watchpoint comparator 3
252 // 0xffffffff [31:0] DWT_COMP3 (0x00000000)
253 io_rw_32 dwt_comp3;
254
255 uint32_t _pad18;
256
257 _REG_(M33_DWT_FUNCTION3_OFFSET) // M33_DWT_FUNCTION3
258 // Controls the operation of watchpoint comparator 3
259 // 0xf8000000 [31:27] ID (0x04) Identifies the capabilities for MATCH for comparator *n
260 // 0x01000000 [24] MATCHED (0) Set to 1 when the comparator matches
261 // 0x00000c00 [11:10] DATAVSIZE (0x2) Defines the size of the object being watched for by Data...
262 // 0x00000030 [5:4] ACTION (0x0) Defines the action on a match
263 // 0x0000000f [3:0] MATCH (0x0) Controls the type of match generated by this comparator
264 io_rw_32 dwt_function3;
265
266 uint32_t _pad19[984];
267
268 _REG_(M33_DWT_DEVARCH_OFFSET) // M33_DWT_DEVARCH
269 // Provides CoreSight discovery information for the DWT
270 // 0xffe00000 [31:21] ARCHITECT (0x23b) Defines the architect of the component
271 // 0x00100000 [20] PRESENT (1) Defines that the DEVARCH register is present
272 // 0x000f0000 [19:16] REVISION (0x0) Defines the architecture revision of the component
273 // 0x0000f000 [15:12] ARCHVER (0x1) Defines the architecture version of the component
274 // 0x00000fff [11:0] ARCHPART (0xa02) Defines the architecture of the component
275 io_ro_32 dwt_devarch;
276
277 uint32_t _pad20[3];
278
279 _REG_(M33_DWT_DEVTYPE_OFFSET) // M33_DWT_DEVTYPE
280 // Provides CoreSight discovery information for the DWT
281 // 0x000000f0 [7:4] SUB (0x0) Component sub-type
282 // 0x0000000f [3:0] MAJOR (0x0) Component major type
283 io_ro_32 dwt_devtype;
284
285 _REG_(M33_DWT_PIDR4_OFFSET) // M33_DWT_PIDR4
286 // Provides CoreSight discovery information for the DWT
287 // 0x000000f0 [7:4] SIZE (0x0) See CoreSight Architecture Specification
288 // 0x0000000f [3:0] DES_2 (0x4) See CoreSight Architecture Specification
289 io_ro_32 dwt_pidr4;
290
291 uint32_t _pad21[3];
292
293 _REG_(M33_DWT_PIDR0_OFFSET) // M33_DWT_PIDR0
294 // Provides CoreSight discovery information for the DWT
295 // 0x000000ff [7:0] PART_0 (0x21) See CoreSight Architecture Specification
296 io_ro_32 dwt_pidr0;
297
298 _REG_(M33_DWT_PIDR1_OFFSET) // M33_DWT_PIDR1
299 // Provides CoreSight discovery information for the DWT
300 // 0x000000f0 [7:4] DES_0 (0xb) See CoreSight Architecture Specification
301 // 0x0000000f [3:0] PART_1 (0xd) See CoreSight Architecture Specification
302 io_ro_32 dwt_pidr1;
303
304 _REG_(M33_DWT_PIDR2_OFFSET) // M33_DWT_PIDR2
305 // Provides CoreSight discovery information for the DWT
306 // 0x000000f0 [7:4] REVISION (0x0) See CoreSight Architecture Specification
307 // 0x00000008 [3] JEDEC (1) See CoreSight Architecture Specification
308 // 0x00000007 [2:0] DES_1 (0x3) See CoreSight Architecture Specification
309 io_ro_32 dwt_pidr2;
310
311 _REG_(M33_DWT_PIDR3_OFFSET) // M33_DWT_PIDR3
312 // Provides CoreSight discovery information for the DWT
313 // 0x000000f0 [7:4] REVAND (0x0) See CoreSight Architecture Specification
314 // 0x0000000f [3:0] CMOD (0x0) See CoreSight Architecture Specification
315 io_ro_32 dwt_pidr3;
316
317 // (Description copied from array index 0 register M33_DWT_CIDR0 applies similarly to other array indexes)
318 _REG_(M33_DWT_CIDR0_OFFSET) // M33_DWT_CIDR0
319 // Provides CoreSight discovery information for the DWT
320 // 0x000000ff [7:0] PRMBL_0 (0x0d) See CoreSight Architecture Specification
321 io_ro_32 dwt_cidr[4];
322
323 _REG_(M33_FP_CTRL_OFFSET) // M33_FP_CTRL
324 // Provides FPB implementation information, and the global enable for the FPB unit
325 // 0xf0000000 [31:28] REV (0x6) Flash Patch and Breakpoint Unit architecture revision
326 // 0x00007000 [14:12] NUM_CODE_14_12_ (0x5) Indicates the number of implemented instruction address...
327 // 0x00000f00 [11:8] NUM_LIT (0x5) Indicates the number of implemented literal address comparators
328 // 0x000000f0 [7:4] NUM_CODE_7_4_ (0x8) Indicates the number of implemented instruction address...
329 // 0x00000002 [1] KEY (0) Writes to the FP_CTRL are ignored unless KEY is...
330 // 0x00000001 [0] ENABLE (0) Enables the FPB
331 io_rw_32 fp_ctrl;
332
333 _REG_(M33_FP_REMAP_OFFSET) // M33_FP_REMAP
334 // Indicates whether the implementation supports Flash Patch remap and, if it does, holds the...
335 // 0x20000000 [29] RMPSPT (0) Indicates whether the FPB unit supports the Flash Patch...
336 // 0x1fffffe0 [28:5] REMAP (0x000000) Holds the bits[28:5] of the Flash Patch remap address
337 io_ro_32 fp_remap;
338
339 // (Description copied from array index 0 register M33_FP_COMP0 applies similarly to other array indexes)
340 _REG_(M33_FP_COMP0_OFFSET) // M33_FP_COMP0
341 // Holds an address for comparison
342 // 0x00000001 [0] BE (0) Selects between flashpatch and breakpoint functionality
343 io_rw_32 fp_comp[8];
344
345 uint32_t _pad22[997];
346
347 _REG_(M33_FP_DEVARCH_OFFSET) // M33_FP_DEVARCH
348 // Provides CoreSight discovery information for the FPB
349 // 0xffe00000 [31:21] ARCHITECT (0x23b) Defines the architect of the component
350 // 0x00100000 [20] PRESENT (1) Defines that the DEVARCH register is present
351 // 0x000f0000 [19:16] REVISION (0x0) Defines the architecture revision of the component
352 // 0x0000f000 [15:12] ARCHVER (0x1) Defines the architecture version of the component
353 // 0x00000fff [11:0] ARCHPART (0xa03) Defines the architecture of the component
354 io_ro_32 fp_devarch;
355
356 uint32_t _pad23[3];
357
358 _REG_(M33_FP_DEVTYPE_OFFSET) // M33_FP_DEVTYPE
359 // Provides CoreSight discovery information for the FPB
360 // 0x000000f0 [7:4] SUB (0x0) Component sub-type
361 // 0x0000000f [3:0] MAJOR (0x0) Component major type
362 io_ro_32 fp_devtype;
363
364 _REG_(M33_FP_PIDR4_OFFSET) // M33_FP_PIDR4
365 // Provides CoreSight discovery information for the FP
366 // 0x000000f0 [7:4] SIZE (0x0) See CoreSight Architecture Specification
367 // 0x0000000f [3:0] DES_2 (0x4) See CoreSight Architecture Specification
368 io_ro_32 fp_pidr4;
369
370 uint32_t _pad24[3];
371
372 _REG_(M33_FP_PIDR0_OFFSET) // M33_FP_PIDR0
373 // Provides CoreSight discovery information for the FP
374 // 0x000000ff [7:0] PART_0 (0x21) See CoreSight Architecture Specification
375 io_ro_32 fp_pidr0;
376
377 _REG_(M33_FP_PIDR1_OFFSET) // M33_FP_PIDR1
378 // Provides CoreSight discovery information for the FP
379 // 0x000000f0 [7:4] DES_0 (0xb) See CoreSight Architecture Specification
380 // 0x0000000f [3:0] PART_1 (0xd) See CoreSight Architecture Specification
381 io_ro_32 fp_pidr1;
382
383 _REG_(M33_FP_PIDR2_OFFSET) // M33_FP_PIDR2
384 // Provides CoreSight discovery information for the FP
385 // 0x000000f0 [7:4] REVISION (0x0) See CoreSight Architecture Specification
386 // 0x00000008 [3] JEDEC (1) See CoreSight Architecture Specification
387 // 0x00000007 [2:0] DES_1 (0x3) See CoreSight Architecture Specification
388 io_ro_32 fp_pidr2;
389
390 _REG_(M33_FP_PIDR3_OFFSET) // M33_FP_PIDR3
391 // Provides CoreSight discovery information for the FP
392 // 0x000000f0 [7:4] REVAND (0x0) See CoreSight Architecture Specification
393 // 0x0000000f [3:0] CMOD (0x0) See CoreSight Architecture Specification
394 io_ro_32 fp_pidr3;
395
396 // (Description copied from array index 0 register M33_FP_CIDR0 applies similarly to other array indexes)
397 _REG_(M33_FP_CIDR0_OFFSET) // M33_FP_CIDR0
398 // Provides CoreSight discovery information for the FP
399 // 0x000000ff [7:0] PRMBL_0 (0x0d) See CoreSight Architecture Specification
400 io_ro_32 fp_cidr[4];
401
402 uint32_t _pad25[11265];
403
404 _REG_(M33_ICTR_OFFSET) // M33_ICTR
405 // Provides information about the interrupt controller
406 // 0x0000000f [3:0] INTLINESNUM (0x1) Indicates the number of the highest implemented register...
407 io_ro_32 ictr;
408
409 _REG_(M33_ACTLR_OFFSET) // M33_ACTLR
410 // Provides IMPLEMENTATION DEFINED configuration and control options
411 // 0x20000000 [29] EXTEXCLALL (0) External Exclusives Allowed with no MPU
412 // 0x00001000 [12] DISITMATBFLUSH (0) Disable ATB Flush
413 // 0x00000400 [10] FPEXCODIS (0) Disable FPU exception outputs
414 // 0x00000200 [9] DISOOFP (0) Disable out-of-order FP instruction completion
415 // 0x00000004 [2] DISFOLD (0) Disable dual-issue
416 // 0x00000001 [0] DISMCYCINT (0) Disable dual-issue
417 io_rw_32 actlr;
418
419 uint32_t _pad26;
420
421 _REG_(M33_SYST_CSR_OFFSET) // M33_SYST_CSR
422 // SysTick Control and Status Register
423 // 0x00010000 [16] COUNTFLAG (0) Returns 1 if timer counted to 0 since last time this was read
424 // 0x00000004 [2] CLKSOURCE (0) SysTick clock source
425 // 0x00000002 [1] TICKINT (0) Enables SysTick exception request: +
426 // 0x00000001 [0] ENABLE (0) Enable SysTick counter: +
427 io_rw_32 syst_csr;
428
429 _REG_(M33_SYST_RVR_OFFSET) // M33_SYST_RVR
430 // SysTick Reload Value Register
431 // 0x00ffffff [23:0] RELOAD (0x000000) Value to load into the SysTick Current Value Register...
432 io_rw_32 syst_rvr;
433
434 _REG_(M33_SYST_CVR_OFFSET) // M33_SYST_CVR
435 // SysTick Current Value Register
436 // 0x00ffffff [23:0] CURRENT (0x000000) Reads return the current value of the SysTick counter
437 io_rw_32 syst_cvr;
438
439 _REG_(M33_SYST_CALIB_OFFSET) // M33_SYST_CALIB
440 // SysTick Calibration Value Register
441 // 0x80000000 [31] NOREF (0) If reads as 1, the Reference clock is not provided - the...
442 // 0x40000000 [30] SKEW (0) If reads as 1, the calibration value for 10ms is inexact...
443 // 0x00ffffff [23:0] TENMS (0x000000) An optional Reload value to be used for 10ms (100Hz)...
444 io_ro_32 syst_calib;
445
446 uint32_t _pad27[56];
447
448 // (Description copied from array index 0 register M33_NVIC_ISER0 applies similarly to other array indexes)
449 _REG_(M33_NVIC_ISER0_OFFSET) // M33_NVIC_ISER0
450 // Enables or reads the enabled state of each group of 32 interrupts
451 // 0xffffffff [31:0] SETENA (0x00000000) For SETENA[m] in NVIC_ISER*n, indicates whether...
452 io_rw_32 nvic_iser[2];
453
454 uint32_t _pad28[30];
455
456 // (Description copied from array index 0 register M33_NVIC_ICER0 applies similarly to other array indexes)
457 _REG_(M33_NVIC_ICER0_OFFSET) // M33_NVIC_ICER0
458 // Clears or reads the enabled state of each group of 32 interrupts
459 // 0xffffffff [31:0] CLRENA (0x00000000) For CLRENA[m] in NVIC_ICER*n, indicates whether...
460 io_rw_32 nvic_icer[2];
461
462 uint32_t _pad29[30];
463
464 // (Description copied from array index 0 register M33_NVIC_ISPR0 applies similarly to other array indexes)
465 _REG_(M33_NVIC_ISPR0_OFFSET) // M33_NVIC_ISPR0
466 // Enables or reads the pending state of each group of 32 interrupts
467 // 0xffffffff [31:0] SETPEND (0x00000000) For SETPEND[m] in NVIC_ISPR*n, indicates whether...
468 io_rw_32 nvic_ispr[2];
469
470 uint32_t _pad30[30];
471
472 // (Description copied from array index 0 register M33_NVIC_ICPR0 applies similarly to other array indexes)
473 _REG_(M33_NVIC_ICPR0_OFFSET) // M33_NVIC_ICPR0
474 // Clears or reads the pending state of each group of 32 interrupts
475 // 0xffffffff [31:0] CLRPEND (0x00000000) For CLRPEND[m] in NVIC_ICPR*n, indicates whether...
476 io_rw_32 nvic_icpr[2];
477
478 uint32_t _pad31[30];
479
480 // (Description copied from array index 0 register M33_NVIC_IABR0 applies similarly to other array indexes)
481 _REG_(M33_NVIC_IABR0_OFFSET) // M33_NVIC_IABR0
482 // For each group of 32 interrupts, shows the active state of each interrupt
483 // 0xffffffff [31:0] ACTIVE (0x00000000) For ACTIVE[m] in NVIC_IABR*n, indicates the active state...
484 io_rw_32 nvic_iabr[2];
485
486 uint32_t _pad32[30];
487
488 // (Description copied from array index 0 register M33_NVIC_ITNS0 applies similarly to other array indexes)
489 _REG_(M33_NVIC_ITNS0_OFFSET) // M33_NVIC_ITNS0
490 // For each group of 32 interrupts, determines whether each interrupt targets Non-secure or Secure state
491 // 0xffffffff [31:0] ITNS (0x00000000) For ITNS[m] in NVIC_ITNS*n, `IAAMO the target Security...
492 io_rw_32 nvic_itns[2];
493
494 uint32_t _pad33[30];
495
496 // (Description copied from array index 0 register M33_NVIC_IPR0 applies similarly to other array indexes)
497 _REG_(M33_NVIC_IPR0_OFFSET) // M33_NVIC_IPR0
498 // Sets or reads interrupt priorities
499 // 0xf0000000 [31:28] PRI_N3 (0x0) For register NVIC_IPRn, the priority of interrupt number...
500 // 0x00f00000 [23:20] PRI_N2 (0x0) For register NVIC_IPRn, the priority of interrupt number...
501 // 0x0000f000 [15:12] PRI_N1 (0x0) For register NVIC_IPRn, the priority of interrupt number...
502 // 0x000000f0 [7:4] PRI_N0 (0x0) For register NVIC_IPRn, the priority of interrupt number...
503 io_rw_32 nvic_ipr[16];
504
505 uint32_t _pad34[560];
506
507 _REG_(M33_CPUID_OFFSET) // M33_CPUID
508 // Provides identification information for the PE, including an implementer code for the device and...
509 // 0xff000000 [31:24] IMPLEMENTER (0x41) This field must hold an implementer code that has been...
510 // 0x00f00000 [23:20] VARIANT (0x1) IMPLEMENTATION DEFINED variant number
511 // 0x000f0000 [19:16] ARCHITECTURE (0xf) Defines the Architecture implemented by the PE
512 // 0x0000fff0 [15:4] PARTNO (0xd21) IMPLEMENTATION DEFINED primary part number for the device
513 // 0x0000000f [3:0] REVISION (0x0) IMPLEMENTATION DEFINED revision number for the device
514 io_ro_32 cpuid;
515
516 _REG_(M33_ICSR_OFFSET) // M33_ICSR
517 // Controls and provides status information for NMI, PendSV, SysTick and interrupts
518 // 0x80000000 [31] PENDNMISET (0) Indicates whether the NMI exception is pending
519 // 0x40000000 [30] PENDNMICLR (0) Allows the NMI exception pend state to be cleared
520 // 0x10000000 [28] PENDSVSET (0) Indicates whether the PendSV `FTSSS exception is pending
521 // 0x08000000 [27] PENDSVCLR (0) Allows the PendSV exception pend state to be cleared `FTSSS
522 // 0x04000000 [26] PENDSTSET (0) Indicates whether the SysTick `FTSSS exception is pending
523 // 0x02000000 [25] PENDSTCLR (0) Allows the SysTick exception pend state to be cleared `FTSSS
524 // 0x01000000 [24] STTNS (0) Controls whether in a single SysTick implementation, the...
525 // 0x00800000 [23] ISRPREEMPT (0) Indicates whether a pending exception will be serviced...
526 // 0x00400000 [22] ISRPENDING (0) Indicates whether an external interrupt, generated by...
527 // 0x001ff000 [20:12] VECTPENDING (0x000) The exception number of the highest priority pending and...
528 // 0x00000800 [11] RETTOBASE (0) In Handler mode, indicates whether there is more than...
529 // 0x000001ff [8:0] VECTACTIVE (0x000) The exception number of the current executing exception
530 io_rw_32 icsr;
531
532 _REG_(M33_VTOR_OFFSET) // M33_VTOR
533 // Vector Table Offset Register
534 // 0xffffff80 [31:7] TBLOFF (0x0000000) Vector table base offset field
535 io_rw_32 vtor;
536
537 _REG_(M33_AIRCR_OFFSET) // M33_AIRCR
538 // Application Interrupt and Reset Control Register
539 // 0xffff0000 [31:16] VECTKEY (0x0000) Register key: +
540 // 0x00008000 [15] ENDIANESS (0) Data endianness implemented: +
541 // 0x00004000 [14] PRIS (0) Prioritize Secure exceptions
542 // 0x00002000 [13] BFHFNMINS (0) BusFault, HardFault, and NMI Non-secure enable
543 // 0x00000700 [10:8] PRIGROUP (0x0) Interrupt priority grouping field
544 // 0x00000008 [3] SYSRESETREQS (0) System reset request, Secure state only
545 // 0x00000004 [2] SYSRESETREQ (0) This resets only the core on which SYSRESETREQ is...
546 // 0x00000002 [1] VECTCLRACTIVE (0) Clears all active state information for fixed and...
547 io_rw_32 aircr;
548
549 _REG_(M33_SCR_OFFSET) // M33_SCR
550 // System Control Register
551 // 0x00000010 [4] SEVONPEND (0) Send Event on Pending bit: +
552 // 0x00000008 [3] SLEEPDEEPS (0) 0 SLEEPDEEP is available to both security states +
553 // 0x00000004 [2] SLEEPDEEP (0) Controls whether the processor uses sleep or deep sleep...
554 // 0x00000002 [1] SLEEPONEXIT (0) Indicates sleep-on-exit when returning from Handler mode...
555 io_rw_32 scr;
556
557 _REG_(M33_CCR_OFFSET) // M33_CCR
558 // Sets or returns configuration and control data
559 // 0x00040000 [18] BP (0) Enables program flow prediction `FTSSS
560 // 0x00020000 [17] IC (0) This is a global enable bit for instruction caches in...
561 // 0x00010000 [16] DC (0) Enables data caching of all data accesses to Normal memory `FTSSS
562 // 0x00000400 [10] STKOFHFNMIGN (0) Controls the effect of a stack limit violation while...
563 // 0x00000200 [9] RES1 (1) Reserved, RES1
564 // 0x00000100 [8] BFHFNMIGN (0) Determines the effect of precise BusFaults on handlers...
565 // 0x00000010 [4] DIV_0_TRP (0) Controls the generation of a DIVBYZERO UsageFault when...
566 // 0x00000008 [3] UNALIGN_TRP (0) Controls the trapping of unaligned word or halfword accesses
567 // 0x00000002 [1] USERSETMPEND (0) Determines whether unprivileged accesses are permitted...
568 // 0x00000001 [0] RES1_1 (1) Reserved, RES1
569 io_rw_32 ccr;
570
571 // (Description copied from array index 0 register M33_SHPR1 applies similarly to other array indexes)
572 _REG_(M33_SHPR1_OFFSET) // M33_SHPR1
573 // Sets or returns priority for system handlers 4 - 7
574 // 0xe0000000 [31:29] PRI_7_3 (0x0) Priority of system handler 7, SecureFault
575 // 0x00e00000 [23:21] PRI_6_3 (0x0) Priority of system handler 6, SecureFault
576 // 0x0000e000 [15:13] PRI_5_3 (0x0) Priority of system handler 5, SecureFault
577 // 0x000000e0 [7:5] PRI_4_3 (0x0) Priority of system handler 4, SecureFault
578 io_rw_32 shpr[3];
579
580 _REG_(M33_SHCSR_OFFSET) // M33_SHCSR
581 // Provides access to the active and pending status of system exceptions
582 // 0x00200000 [21] HARDFAULTPENDED (0) `IAAMO the pending state of the HardFault exception `CTTSSS
583 // 0x00100000 [20] SECUREFAULTPENDED (0) `IAAMO the pending state of the SecureFault exception
584 // 0x00080000 [19] SECUREFAULTENA (0) `DW the SecureFault exception is enabled
585 // 0x00040000 [18] USGFAULTENA (0) `DW the UsageFault exception is enabled `FTSSS
586 // 0x00020000 [17] BUSFAULTENA (0) `DW the BusFault exception is enabled
587 // 0x00010000 [16] MEMFAULTENA (0) `DW the MemManage exception is enabled `FTSSS
588 // 0x00008000 [15] SVCALLPENDED (0) `IAAMO the pending state of the SVCall exception `FTSSS
589 // 0x00004000 [14] BUSFAULTPENDED (0) `IAAMO the pending state of the BusFault exception
590 // 0x00002000 [13] MEMFAULTPENDED (0) `IAAMO the pending state of the MemManage exception `FTSSS
591 // 0x00001000 [12] USGFAULTPENDED (0) The UsageFault exception is banked between Security...
592 // 0x00000800 [11] SYSTICKACT (0) `IAAMO the active state of the SysTick exception `FTSSS
593 // 0x00000400 [10] PENDSVACT (0) `IAAMO the active state of the PendSV exception `FTSSS
594 // 0x00000100 [8] MONITORACT (0) `IAAMO the active state of the DebugMonitor exception
595 // 0x00000080 [7] SVCALLACT (0) `IAAMO the active state of the SVCall exception `FTSSS
596 // 0x00000020 [5] NMIACT (0) `IAAMO the active state of the NMI exception
597 // 0x00000010 [4] SECUREFAULTACT (0) `IAAMO the active state of the SecureFault exception
598 // 0x00000008 [3] USGFAULTACT (0) `IAAMO the active state of the UsageFault exception `FTSSS
599 // 0x00000004 [2] HARDFAULTACT (0) Indicates and allows limited modification of the active...
600 // 0x00000002 [1] BUSFAULTACT (0) `IAAMO the active state of the BusFault exception
601 // 0x00000001 [0] MEMFAULTACT (0) `IAAMO the active state of the MemManage exception `FTSSS
602 io_rw_32 shcsr;
603
604 _REG_(M33_CFSR_OFFSET) // M33_CFSR
605 // Contains the three Configurable Fault Status Registers
606 // 0x02000000 [25] UFSR_DIVBYZERO (0) Sticky flag indicating whether an integer division by...
607 // 0x01000000 [24] UFSR_UNALIGNED (0) Sticky flag indicating whether an unaligned access error...
608 // 0x00100000 [20] UFSR_STKOF (0) Sticky flag indicating whether a stack overflow error...
609 // 0x00080000 [19] UFSR_NOCP (0) Sticky flag indicating whether a coprocessor disabled or...
610 // 0x00040000 [18] UFSR_INVPC (0) Sticky flag indicating whether an integrity check error...
611 // 0x00020000 [17] UFSR_INVSTATE (0) Sticky flag indicating whether an EPSR
612 // 0x00010000 [16] UFSR_UNDEFINSTR (0) Sticky flag indicating whether an undefined instruction...
613 // 0x00008000 [15] BFSR_BFARVALID (0) Indicates validity of the contents of the BFAR register
614 // 0x00002000 [13] BFSR_LSPERR (0) Records whether a BusFault occurred during FP lazy state...
615 // 0x00001000 [12] BFSR_STKERR (0) Records whether a derived BusFault occurred during...
616 // 0x00000800 [11] BFSR_UNSTKERR (0) Records whether a derived BusFault occurred during...
617 // 0x00000400 [10] BFSR_IMPRECISERR (0) Records whether an imprecise data access error has occurred
618 // 0x00000200 [9] BFSR_PRECISERR (0) Records whether a precise data access error has occurred
619 // 0x00000100 [8] BFSR_IBUSERR (0) Records whether a BusFault on an instruction prefetch...
620 // 0x000000ff [7:0] MMFSR (0x00) Provides information on MemManage exceptions
621 io_rw_32 cfsr;
622
623 _REG_(M33_HFSR_OFFSET) // M33_HFSR
624 // Shows the cause of any HardFaults
625 // 0x80000000 [31] DEBUGEVT (0) Indicates when a Debug event has occurred
626 // 0x40000000 [30] FORCED (0) Indicates that a fault with configurable priority has...
627 // 0x00000002 [1] VECTTBL (0) Indicates when a fault has occurred because of a vector...
628 io_rw_32 hfsr;
629
630 _REG_(M33_DFSR_OFFSET) // M33_DFSR
631 // Shows which debug event occurred
632 // 0x00000010 [4] EXTERNAL (0) Sticky flag indicating whether an External debug request...
633 // 0x00000008 [3] VCATCH (0) Sticky flag indicating whether a Vector catch debug...
634 // 0x00000004 [2] DWTTRAP (0) Sticky flag indicating whether a Watchpoint debug event...
635 // 0x00000002 [1] BKPT (0) Sticky flag indicating whether a Breakpoint debug event...
636 // 0x00000001 [0] HALTED (0) Sticky flag indicating that a Halt request debug event...
637 io_rw_32 dfsr;
638
639 _REG_(M33_MMFAR_OFFSET) // M33_MMFAR
640 // Shows the address of the memory location that caused an MPU fault
641 // 0xffffffff [31:0] ADDRESS (0x00000000) This register is updated with the address of a location...
642 io_rw_32 mmfar;
643
644 _REG_(M33_BFAR_OFFSET) // M33_BFAR
645 // Shows the address associated with a precise data access BusFault
646 // 0xffffffff [31:0] ADDRESS (0x00000000) This register is updated with the address of a location...
647 io_rw_32 bfar;
648
649 uint32_t _pad35;
650
651 // (Description copied from array index 0 register M33_ID_PFR0 applies similarly to other array indexes)
652 _REG_(M33_ID_PFR0_OFFSET) // M33_ID_PFR0
653 // Gives top-level information about the instruction set supported by the PE
654 // 0x000000f0 [7:4] STATE1 (0x3) T32 instruction set support
655 // 0x0000000f [3:0] STATE0 (0x0) A32 instruction set support
656 io_ro_32 id_pfr[2];
657
658 _REG_(M33_ID_DFR0_OFFSET) // M33_ID_DFR0
659 // Provides top level information about the debug system
660 // 0x00f00000 [23:20] MPROFDBG (0x2) Indicates the supported M-profile debug architecture
661 io_ro_32 id_dfr0;
662
663 _REG_(M33_ID_AFR0_OFFSET) // M33_ID_AFR0
664 // Provides information about the IMPLEMENTATION DEFINED features of the PE
665 // 0x0000f000 [15:12] IMPDEF3 (0x0) IMPLEMENTATION DEFINED meaning
666 // 0x00000f00 [11:8] IMPDEF2 (0x0) IMPLEMENTATION DEFINED meaning
667 // 0x000000f0 [7:4] IMPDEF1 (0x0) IMPLEMENTATION DEFINED meaning
668 // 0x0000000f [3:0] IMPDEF0 (0x0) IMPLEMENTATION DEFINED meaning
669 io_ro_32 id_afr0;
670
671 // (Description copied from array index 0 register M33_ID_MMFR0 applies similarly to other array indexes)
672 _REG_(M33_ID_MMFR0_OFFSET) // M33_ID_MMFR0
673 // Provides information about the implemented memory model and memory management support
674 // 0x00f00000 [23:20] AUXREG (0x1) Indicates support for Auxiliary Control Registers
675 // 0x000f0000 [19:16] TCM (0x0) Indicates support for tightly coupled memories (TCMs)
676 // 0x0000f000 [15:12] SHARELVL (0x1) Indicates the number of shareability levels implemented
677 // 0x00000f00 [11:8] OUTERSHR (0xf) Indicates the outermost shareability domain implemented
678 // 0x000000f0 [7:4] PMSA (0x4) Indicates support for the protected memory system...
679 io_ro_32 id_mmfr[4];
680
681 // (Description copied from array index 0 register M33_ID_ISAR0 applies similarly to other array indexes)
682 _REG_(M33_ID_ISAR0_OFFSET) // M33_ID_ISAR0
683 // Provides information about the instruction set implemented by the PE
684 // 0x0f000000 [27:24] DIVIDE (0x8) Indicates the supported Divide instructions
685 // 0x00f00000 [23:20] DEBUG (0x0) Indicates the implemented Debug instructions
686 // 0x000f0000 [19:16] COPROC (0x9) Indicates the supported Coprocessor instructions
687 // 0x0000f000 [15:12] CMPBRANCH (0x2) Indicates the supported combined Compare and Branch instructions
688 // 0x00000f00 [11:8] BITFIELD (0x3) Indicates the supported bit field instructions
689 // 0x000000f0 [7:4] BITCOUNT (0x0) Indicates the supported bit count instructions
690 io_ro_32 id_isar[5];
691
692 uint32_t _pad36[2];
693
694 _REG_(M33_CTR_OFFSET) // M33_CTR
695 // Provides information about the architecture of the caches
696 // 0x80000000 [31] RES1 (1) Reserved, RES1
697 // 0x0f000000 [27:24] CWG (0x0) Log2 of the number of words of the maximum size of...
698 // 0x00f00000 [23:20] ERG (0x0) Log2 of the number of words of the maximum size of the...
699 // 0x000f0000 [19:16] DMINLINE (0x0) Log2 of the number of words in the smallest cache line...
700 // 0x0000c000 [15:14] RES1_1 (0x3) Reserved, RES1
701 // 0x0000000f [3:0] IMINLINE (0x0) Log2 of the number of words in the smallest cache line...
702 io_ro_32 ctr;
703
704 uint32_t _pad37[2];
705
706 _REG_(M33_CPACR_OFFSET) // M33_CPACR
707 // Specifies the access privileges for coprocessors and the FP Extension
708 // 0x00c00000 [23:22] CP11 (0x0) The value in this field is ignored
709 // 0x00300000 [21:20] CP10 (0x0) Defines the access rights for the floating-point functionality
710 // 0x0000c000 [15:14] CP7 (0x0) Controls access privileges for coprocessor 7
711 // 0x00003000 [13:12] CP6 (0x0) Controls access privileges for coprocessor 6
712 // 0x00000c00 [11:10] CP5 (0x0) Controls access privileges for coprocessor 5
713 // 0x00000300 [9:8] CP4 (0x0) Controls access privileges for coprocessor 4
714 // 0x000000c0 [7:6] CP3 (0x0) Controls access privileges for coprocessor 3
715 // 0x00000030 [5:4] CP2 (0x0) Controls access privileges for coprocessor 2
716 // 0x0000000c [3:2] CP1 (0x0) Controls access privileges for coprocessor 1
717 // 0x00000003 [1:0] CP0 (0x0) Controls access privileges for coprocessor 0
718 io_rw_32 cpacr;
719
720 _REG_(M33_NSACR_OFFSET) // M33_NSACR
721 // Defines the Non-secure access permissions for both the FP Extension and coprocessors CP0 to CP7
722 // 0x00000800 [11] CP11 (0) Enables Non-secure access to the Floating-point Extension
723 // 0x00000400 [10] CP10 (0) Enables Non-secure access to the Floating-point Extension
724 // 0x00000080 [7] CP7 (0) Enables Non-secure access to coprocessor CP7
725 // 0x00000040 [6] CP6 (0) Enables Non-secure access to coprocessor CP6
726 // 0x00000020 [5] CP5 (0) Enables Non-secure access to coprocessor CP5
727 // 0x00000010 [4] CP4 (0) Enables Non-secure access to coprocessor CP4
728 // 0x00000008 [3] CP3 (0) Enables Non-secure access to coprocessor CP3
729 // 0x00000004 [2] CP2 (0) Enables Non-secure access to coprocessor CP2
730 // 0x00000002 [1] CP1 (0) Enables Non-secure access to coprocessor CP1
731 // 0x00000001 [0] CP0 (0) Enables Non-secure access to coprocessor CP0
732 io_rw_32 nsacr;
733
734 _REG_(M33_MPU_TYPE_OFFSET) // M33_MPU_TYPE
735 // The MPU Type Register indicates how many regions the MPU `FTSSS supports
736 // 0x0000ff00 [15:8] DREGION (0x08) Number of regions supported by the MPU
737 // 0x00000001 [0] SEPARATE (0) Indicates support for separate instructions and data...
738 io_ro_32 mpu_type;
739
740 _REG_(M33_MPU_CTRL_OFFSET) // M33_MPU_CTRL
741 // Enables the MPU and, when the MPU is enabled, controls whether the default memory map is enabled...
742 // 0x00000004 [2] PRIVDEFENA (0) Controls whether the default memory map is enabled for...
743 // 0x00000002 [1] HFNMIENA (0) Controls whether handlers executing with priority less...
744 // 0x00000001 [0] ENABLE (0) Enables the MPU
745 io_rw_32 mpu_ctrl;
746
747 _REG_(M33_MPU_RNR_OFFSET) // M33_MPU_RNR
748 // Selects the region currently accessed by MPU_RBAR and MPU_RLAR
749 // 0x00000007 [2:0] REGION (0x0) Indicates the memory region accessed by MPU_RBAR and MPU_RLAR
750 io_rw_32 mpu_rnr;
751
752 _REG_(M33_MPU_RBAR_OFFSET) // M33_MPU_RBAR
753 // Provides indirect read and write access to the base address of the currently selected MPU region `FTSSS
754 // 0xffffffe0 [31:5] BASE (0x0000000) Contains bits [31:5] of the lower inclusive limit of the...
755 // 0x00000018 [4:3] SH (0x0) Defines the Shareability domain of this region for Normal memory
756 // 0x00000006 [2:1] AP (0x0) Defines the access permissions for this region
757 // 0x00000001 [0] XN (0) Defines whether code can be executed from this region
758 io_rw_32 mpu_rbar;
759
760 _REG_(M33_MPU_RLAR_OFFSET) // M33_MPU_RLAR
761 // Provides indirect read and write access to the limit address of the currently selected MPU region `FTSSS
762 // 0xffffffe0 [31:5] LIMIT (0x0000000) Contains bits [31:5] of the upper inclusive limit of the...
763 // 0x0000000e [3:1] ATTRINDX (0x0) Associates a set of attributes in the MPU_MAIR0 and...
764 // 0x00000001 [0] EN (0) Region enable
765 io_rw_32 mpu_rlar;
766
767 _REG_(M33_MPU_RBAR_A1_OFFSET) // M33_MPU_RBAR_A1
768 // Provides indirect read and write access to the base address of the MPU region selected by...
769 // 0xffffffe0 [31:5] BASE (0x0000000) Contains bits [31:5] of the lower inclusive limit of the...
770 // 0x00000018 [4:3] SH (0x0) Defines the Shareability domain of this region for Normal memory
771 // 0x00000006 [2:1] AP (0x0) Defines the access permissions for this region
772 // 0x00000001 [0] XN (0) Defines whether code can be executed from this region
773 io_rw_32 mpu_rbar_a1;
774
775 _REG_(M33_MPU_RLAR_A1_OFFSET) // M33_MPU_RLAR_A1
776 // Provides indirect read and write access to the limit address of the currently selected MPU...
777 // 0xffffffe0 [31:5] LIMIT (0x0000000) Contains bits [31:5] of the upper inclusive limit of the...
778 // 0x0000000e [3:1] ATTRINDX (0x0) Associates a set of attributes in the MPU_MAIR0 and...
779 // 0x00000001 [0] EN (0) Region enable
780 io_rw_32 mpu_rlar_a1;
781
782 _REG_(M33_MPU_RBAR_A2_OFFSET) // M33_MPU_RBAR_A2
783 // Provides indirect read and write access to the base address of the MPU region selected by...
784 // 0xffffffe0 [31:5] BASE (0x0000000) Contains bits [31:5] of the lower inclusive limit of the...
785 // 0x00000018 [4:3] SH (0x0) Defines the Shareability domain of this region for Normal memory
786 // 0x00000006 [2:1] AP (0x0) Defines the access permissions for this region
787 // 0x00000001 [0] XN (0) Defines whether code can be executed from this region
788 io_rw_32 mpu_rbar_a2;
789
790 _REG_(M33_MPU_RLAR_A2_OFFSET) // M33_MPU_RLAR_A2
791 // Provides indirect read and write access to the limit address of the currently selected MPU...
792 // 0xffffffe0 [31:5] LIMIT (0x0000000) Contains bits [31:5] of the upper inclusive limit of the...
793 // 0x0000000e [3:1] ATTRINDX (0x0) Associates a set of attributes in the MPU_MAIR0 and...
794 // 0x00000001 [0] EN (0) Region enable
795 io_rw_32 mpu_rlar_a2;
796
797 _REG_(M33_MPU_RBAR_A3_OFFSET) // M33_MPU_RBAR_A3
798 // Provides indirect read and write access to the base address of the MPU region selected by...
799 // 0xffffffe0 [31:5] BASE (0x0000000) Contains bits [31:5] of the lower inclusive limit of the...
800 // 0x00000018 [4:3] SH (0x0) Defines the Shareability domain of this region for Normal memory
801 // 0x00000006 [2:1] AP (0x0) Defines the access permissions for this region
802 // 0x00000001 [0] XN (0) Defines whether code can be executed from this region
803 io_rw_32 mpu_rbar_a3;
804
805 _REG_(M33_MPU_RLAR_A3_OFFSET) // M33_MPU_RLAR_A3
806 // Provides indirect read and write access to the limit address of the currently selected MPU...
807 // 0xffffffe0 [31:5] LIMIT (0x0000000) Contains bits [31:5] of the upper inclusive limit of the...
808 // 0x0000000e [3:1] ATTRINDX (0x0) Associates a set of attributes in the MPU_MAIR0 and...
809 // 0x00000001 [0] EN (0) Region enable
810 io_rw_32 mpu_rlar_a3;
811
812 uint32_t _pad38;
813
814 // (Description copied from array index 0 register M33_MPU_MAIR0 applies similarly to other array indexes)
815 _REG_(M33_MPU_MAIR0_OFFSET) // M33_MPU_MAIR0
816 // Along with MPU_MAIR1, provides the memory attribute encodings corresponding to the AttrIndex values
817 // 0xff000000 [31:24] ATTR3 (0x00) Memory attribute encoding for MPU regions with an AttrIndex of 3
818 // 0x00ff0000 [23:16] ATTR2 (0x00) Memory attribute encoding for MPU regions with an AttrIndex of 2
819 // 0x0000ff00 [15:8] ATTR1 (0x00) Memory attribute encoding for MPU regions with an AttrIndex of 1
820 // 0x000000ff [7:0] ATTR0 (0x00) Memory attribute encoding for MPU regions with an AttrIndex of 0
821 io_rw_32 mpu_mair[2];
822
823 uint32_t _pad39[2];
824
825 _REG_(M33_SAU_CTRL_OFFSET) // M33_SAU_CTRL
826 // Allows enabling of the Security Attribution Unit
827 // 0x00000002 [1] ALLNS (0) When SAU_CTRL
828 // 0x00000001 [0] ENABLE (0) Enables the SAU
829 io_rw_32 sau_ctrl;
830
831 _REG_(M33_SAU_TYPE_OFFSET) // M33_SAU_TYPE
832 // Indicates the number of regions implemented by the Security Attribution Unit
833 // 0x000000ff [7:0] SREGION (0x08) The number of implemented SAU regions
834 io_ro_32 sau_type;
835
836 _REG_(M33_SAU_RNR_OFFSET) // M33_SAU_RNR
837 // Selects the region currently accessed by SAU_RBAR and SAU_RLAR
838 // 0x000000ff [7:0] REGION (0x00) Indicates the SAU region accessed by SAU_RBAR and SAU_RLAR
839 io_rw_32 sau_rnr;
840
841 _REG_(M33_SAU_RBAR_OFFSET) // M33_SAU_RBAR
842 // Provides indirect read and write access to the base address of the currently selected SAU region
843 // 0xffffffe0 [31:5] BADDR (0x0000000) Holds bits [31:5] of the base address for the selected SAU region
844 io_rw_32 sau_rbar;
845
846 _REG_(M33_SAU_RLAR_OFFSET) // M33_SAU_RLAR
847 // Provides indirect read and write access to the limit address of the currently selected SAU region
848 // 0xffffffe0 [31:5] LADDR (0x0000000) Holds bits [31:5] of the limit address for the selected...
849 // 0x00000002 [1] NSC (0) Controls whether Non-secure state is permitted to...
850 // 0x00000001 [0] ENABLE (0) SAU region enable
851 io_rw_32 sau_rlar;
852
853 _REG_(M33_SFSR_OFFSET) // M33_SFSR
854 // Provides information about any security related faults
855 // 0x00000080 [7] LSERR (0) Sticky flag indicating that an error occurred during...
856 // 0x00000040 [6] SFARVALID (0) This bit is set when the SFAR register contains a valid value
857 // 0x00000020 [5] LSPERR (0) Stick flag indicating that an SAU or IDAU violation...
858 // 0x00000010 [4] INVTRAN (0) Sticky flag indicating that an exception was raised due...
859 // 0x00000008 [3] AUVIOL (0) Sticky flag indicating that an attempt was made to...
860 // 0x00000004 [2] INVER (0) This can be caused by EXC_RETURN
861 // 0x00000002 [1] INVIS (0) This bit is set if the integrity signature in an...
862 // 0x00000001 [0] INVEP (0) This bit is set if a function call from the Non-secure...
863 io_rw_32 sfsr;
864
865 _REG_(M33_SFAR_OFFSET) // M33_SFAR
866 // Shows the address of the memory location that caused a Security violation
867 // 0xffffffff [31:0] ADDRESS (0x00000000) The address of an access that caused a attribution unit violation
868 io_rw_32 sfar;
869
870 uint32_t _pad40;
871
872 _REG_(M33_DHCSR_OFFSET) // M33_DHCSR
873 // Controls halting debug
874 // 0x04000000 [26] S_RESTART_ST (0) Indicates the PE has processed a request to clear DHCSR
875 // 0x02000000 [25] S_RESET_ST (0) Indicates whether the PE has been reset since the last...
876 // 0x01000000 [24] S_RETIRE_ST (0) Set to 1 every time the PE retires one of more instructions
877 // 0x00100000 [20] S_SDE (0) Indicates whether Secure invasive debug is allowed
878 // 0x00080000 [19] S_LOCKUP (0) Indicates whether the PE is in Lockup state
879 // 0x00040000 [18] S_SLEEP (0) Indicates whether the PE is sleeping
880 // 0x00020000 [17] S_HALT (0) Indicates whether the PE is in Debug state
881 // 0x00010000 [16] S_REGRDY (0) Handshake flag to transfers through the DCRDR
882 // 0x00000020 [5] C_SNAPSTALL (0) Allow imprecise entry to Debug state
883 // 0x00000008 [3] C_MASKINTS (0) When debug is enabled, the debugger can write to this...
884 // 0x00000004 [2] C_STEP (0) Enable single instruction step
885 // 0x00000002 [1] C_HALT (0) PE enter Debug state halt request
886 // 0x00000001 [0] C_DEBUGEN (0) Enable Halting debug
887 io_rw_32 dhcsr;
888
889 _REG_(M33_DCRSR_OFFSET) // M33_DCRSR
890 // With the DCRDR, provides debug access to the general-purpose registers, special-purpose...
891 // 0x00010000 [16] REGWNR (0) Specifies the access type for the transfer
892 // 0x0000007f [6:0] REGSEL (0x00) Specifies the general-purpose register, special-purpose...
893 io_rw_32 dcrsr;
894
895 _REG_(M33_DCRDR_OFFSET) // M33_DCRDR
896 // With the DCRSR, provides debug access to the general-purpose registers, special-purpose...
897 // 0xffffffff [31:0] DBGTMP (0x00000000) Provides debug access for reading and writing the...
898 io_rw_32 dcrdr;
899
900 _REG_(M33_DEMCR_OFFSET) // M33_DEMCR
901 // Manages vector catch behavior and DebugMonitor handling when debugging
902 // 0x01000000 [24] TRCENA (0) Global enable for all DWT and ITM features
903 // 0x00100000 [20] SDME (0) Indicates whether the DebugMonitor targets the Secure or...
904 // 0x00080000 [19] MON_REQ (0) DebugMonitor semaphore bit
905 // 0x00040000 [18] MON_STEP (0) Enable DebugMonitor stepping
906 // 0x00020000 [17] MON_PEND (0) Sets or clears the pending state of the DebugMonitor exception
907 // 0x00010000 [16] MON_EN (0) Enable the DebugMonitor exception
908 // 0x00000800 [11] VC_SFERR (0) SecureFault exception halting debug vector catch enable
909 // 0x00000400 [10] VC_HARDERR (0) HardFault exception halting debug vector catch enable
910 // 0x00000200 [9] VC_INTERR (0) Enable halting debug vector catch for faults during...
911 // 0x00000100 [8] VC_BUSERR (0) BusFault exception halting debug vector catch enable
912 // 0x00000080 [7] VC_STATERR (0) Enable halting debug trap on a UsageFault exception...
913 // 0x00000040 [6] VC_CHKERR (0) Enable halting debug trap on a UsageFault exception...
914 // 0x00000020 [5] VC_NOCPERR (0) Enable halting debug trap on a UsageFault caused by an...
915 // 0x00000010 [4] VC_MMERR (0) Enable halting debug trap on a MemManage exception
916 // 0x00000001 [0] VC_CORERESET (0) Enable Reset Vector Catch
917 io_rw_32 demcr;
918
919 uint32_t _pad41[2];
920
921 _REG_(M33_DSCSR_OFFSET) // M33_DSCSR
922 // Provides control and status information for Secure debug
923 // 0x00020000 [17] CDSKEY (0) Writes to the CDS bit are ignored unless CDSKEY is...
924 // 0x00010000 [16] CDS (0) This field indicates the current Security state of the processor
925 // 0x00000002 [1] SBRSEL (0) If SBRSELEN is 1 this bit selects whether the Non-secure...
926 // 0x00000001 [0] SBRSELEN (0) Controls whether the SBRSEL field or the current...
927 io_rw_32 dscsr;
928
929 uint32_t _pad42[61];
930
931 _REG_(M33_STIR_OFFSET) // M33_STIR
932 // Provides a mechanism for software to generate an interrupt
933 // 0x000001ff [8:0] INTID (0x000) Indicates the interrupt to be pended
934 io_rw_32 stir;
935
936 uint32_t _pad43[12];
937
938 _REG_(M33_FPCCR_OFFSET) // M33_FPCCR
939 // Holds control data for the Floating-point extension
940 // 0x80000000 [31] ASPEN (0) When this bit is set to 1, execution of a floating-point...
941 // 0x40000000 [30] LSPEN (0) Enables lazy context save of floating-point state
942 // 0x20000000 [29] LSPENS (1) This bit controls whether the LSPEN bit is writeable...
943 // 0x10000000 [28] CLRONRET (0) Clear floating-point caller saved registers on exception return
944 // 0x08000000 [27] CLRONRETS (0) This bit controls whether the CLRONRET bit is writeable...
945 // 0x04000000 [26] TS (0) Treat floating-point registers as Secure enable
946 // 0x00000400 [10] UFRDY (1) Indicates whether the software executing when the PE...
947 // 0x00000200 [9] SPLIMVIOL (0) This bit is banked between the Security states and...
948 // 0x00000100 [8] MONRDY (0) Indicates whether the software executing when the PE...
949 // 0x00000080 [7] SFRDY (0) Indicates whether the software executing when the PE...
950 // 0x00000040 [6] BFRDY (1) Indicates whether the software executing when the PE...
951 // 0x00000020 [5] MMRDY (1) Indicates whether the software executing when the PE...
952 // 0x00000010 [4] HFRDY (1) Indicates whether the software executing when the PE...
953 // 0x00000008 [3] THREAD (0) Indicates the PE mode when it allocated the...
954 // 0x00000004 [2] S (0) Security status of the floating-point context
955 // 0x00000002 [1] USER (1) Indicates the privilege level of the software executing...
956 // 0x00000001 [0] LSPACT (0) Indicates whether lazy preservation of the...
957 io_rw_32 fpccr;
958
959 _REG_(M33_FPCAR_OFFSET) // M33_FPCAR
960 // Holds the location of the unpopulated floating-point register space allocated on an exception stack frame
961 // 0xfffffff8 [31:3] ADDRESS (0x00000000) The location of the unpopulated floating-point register...
962 io_rw_32 fpcar;
963
964 _REG_(M33_FPDSCR_OFFSET) // M33_FPDSCR
965 // Holds the default values for the floating-point status control data that the PE assigns to the...
966 // 0x04000000 [26] AHP (0) Default value for FPSCR
967 // 0x02000000 [25] DN (0) Default value for FPSCR
968 // 0x01000000 [24] FZ (0) Default value for FPSCR
969 // 0x00c00000 [23:22] RMODE (0x0) Default value for FPSCR
970 io_rw_32 fpdscr;
971
972 // (Description copied from array index 0 register M33_MVFR0 applies similarly to other array indexes)
973 _REG_(M33_MVFR0_OFFSET) // M33_MVFR0
974 // Describes the features provided by the Floating-point Extension
975 // 0xf0000000 [31:28] FPROUND (0x6) Indicates the rounding modes supported by the FP Extension
976 // 0x00f00000 [23:20] FPSQRT (0x5) Indicates the support for FP square root operations
977 // 0x000f0000 [19:16] FPDIVIDE (0x4) Indicates the support for FP divide operations
978 // 0x00000f00 [11:8] FPDP (0x6) Indicates support for FP double-precision operations
979 // 0x000000f0 [7:4] FPSP (0x0) Indicates support for FP single-precision operations
980 // 0x0000000f [3:0] SIMDREG (0x1) Indicates size of FP register file
981 io_ro_32 mvfr[3];
982
983 uint32_t _pad44[28];
984
985 _REG_(M33_DDEVARCH_OFFSET) // M33_DDEVARCH
986 // Provides CoreSight discovery information for the SCS
987 // 0xffe00000 [31:21] ARCHITECT (0x23b) Defines the architect of the component
988 // 0x00100000 [20] PRESENT (1) Defines that the DEVARCH register is present
989 // 0x000f0000 [19:16] REVISION (0x0) Defines the architecture revision of the component
990 // 0x0000f000 [15:12] ARCHVER (0x2) Defines the architecture version of the component
991 // 0x00000fff [11:0] ARCHPART (0xa04) Defines the architecture of the component
992 io_ro_32 ddevarch;
993
994 uint32_t _pad45[3];
995
996 _REG_(M33_DDEVTYPE_OFFSET) // M33_DDEVTYPE
997 // Provides CoreSight discovery information for the SCS
998 // 0x000000f0 [7:4] SUB (0x0) Component sub-type
999 // 0x0000000f [3:0] MAJOR (0x0) CoreSight major type
1000 io_ro_32 ddevtype;
1001
1002 _REG_(M33_DPIDR4_OFFSET) // M33_DPIDR4
1003 // Provides CoreSight discovery information for the SCS
1004 // 0x000000f0 [7:4] SIZE (0x0) See CoreSight Architecture Specification
1005 // 0x0000000f [3:0] DES_2 (0x4) See CoreSight Architecture Specification
1006 io_ro_32 dpidr4;
1007
1008 uint32_t _pad46[3];
1009
1010 _REG_(M33_DPIDR0_OFFSET) // M33_DPIDR0
1011 // Provides CoreSight discovery information for the SCS
1012 // 0x000000ff [7:0] PART_0 (0x21) See CoreSight Architecture Specification
1013 io_ro_32 dpidr0;
1014
1015 _REG_(M33_DPIDR1_OFFSET) // M33_DPIDR1
1016 // Provides CoreSight discovery information for the SCS
1017 // 0x000000f0 [7:4] DES_0 (0xb) See CoreSight Architecture Specification
1018 // 0x0000000f [3:0] PART_1 (0xd) See CoreSight Architecture Specification
1019 io_ro_32 dpidr1;
1020
1021 _REG_(M33_DPIDR2_OFFSET) // M33_DPIDR2
1022 // Provides CoreSight discovery information for the SCS
1023 // 0x000000f0 [7:4] REVISION (0x0) See CoreSight Architecture Specification
1024 // 0x00000008 [3] JEDEC (1) See CoreSight Architecture Specification
1025 // 0x00000007 [2:0] DES_1 (0x3) See CoreSight Architecture Specification
1026 io_ro_32 dpidr2;
1027
1028 _REG_(M33_DPIDR3_OFFSET) // M33_DPIDR3
1029 // Provides CoreSight discovery information for the SCS
1030 // 0x000000f0 [7:4] REVAND (0x0) See CoreSight Architecture Specification
1031 // 0x0000000f [3:0] CMOD (0x0) See CoreSight Architecture Specification
1032 io_ro_32 dpidr3;
1033
1034 // (Description copied from array index 0 register M33_DCIDR0 applies similarly to other array indexes)
1035 _REG_(M33_DCIDR0_OFFSET) // M33_DCIDR0
1036 // Provides CoreSight discovery information for the SCS
1037 // 0x000000ff [7:0] PRMBL_0 (0x0d) See CoreSight Architecture Specification
1038 io_ro_32 dcidr[4];
1039
1040 uint32_t _pad47[51201];
1041
1042 _REG_(M33_TRCPRGCTLR_OFFSET) // M33_TRCPRGCTLR
1043 // Programming Control Register
1044 // 0x00000001 [0] EN (0) Trace Unit Enable
1045 io_rw_32 trcprgctlr;
1046
1047 uint32_t _pad48;
1048
1049 _REG_(M33_TRCSTATR_OFFSET) // M33_TRCSTATR
1050 // The TRCSTATR indicates the ETM-Teal status
1051 // 0x00000002 [1] PMSTABLE (0) Indicates whether the ETM-Teal registers are stable and...
1052 // 0x00000001 [0] IDLE (0) Indicates that the trace unit is inactive
1053 io_ro_32 trcstatr;
1054
1055 _REG_(M33_TRCCONFIGR_OFFSET) // M33_TRCCONFIGR
1056 // The TRCCONFIGR sets the basic tracing options for the trace unit
1057 // 0x00001000 [12] RS (0) Return stack enable
1058 // 0x00000800 [11] TS (0) Global timestamp tracing
1059 // 0x000007e0 [10:5] COND (0x00) Conditional instruction tracing
1060 // 0x00000010 [4] CCI (0) Cycle counting in instruction trace
1061 // 0x00000008 [3] BB (0) Branch broadcast mode
1062 io_rw_32 trcconfigr;
1063
1064 uint32_t _pad49[3];
1065
1066 _REG_(M33_TRCEVENTCTL0R_OFFSET) // M33_TRCEVENTCTL0R
1067 // The TRCEVENTCTL0R controls the tracing of events in the trace stream
1068 // 0x00008000 [15] TYPE1 (0) Selects the resource type for event 1
1069 // 0x00000700 [10:8] SEL1 (0x0) Selects the resource number, based on the value of...
1070 // 0x00000080 [7] TYPE0 (0) Selects the resource type for event 0
1071 // 0x00000007 [2:0] SEL0 (0x0) Selects the resource number, based on the value of...
1072 io_rw_32 trceventctl0r;
1073
1074 _REG_(M33_TRCEVENTCTL1R_OFFSET) // M33_TRCEVENTCTL1R
1075 // The TRCEVENTCTL1R controls how the events selected by TRCEVENTCTL0R behave
1076 // 0x00001000 [12] LPOVERRIDE (0) Low power state behavior override
1077 // 0x00000800 [11] ATB (0) ATB enabled
1078 // 0x00000002 [1] INSTEN1 (0) One bit per event, to enable generation of an event...
1079 // 0x00000001 [0] INSTEN0 (0) One bit per event, to enable generation of an event...
1080 io_rw_32 trceventctl1r;
1081
1082 uint32_t _pad50;
1083
1084 _REG_(M33_TRCSTALLCTLR_OFFSET) // M33_TRCSTALLCTLR
1085 // The TRCSTALLCTLR enables ETM-Teal to stall the processor if the ETM-Teal FIFO goes over the...
1086 // 0x00000400 [10] INSTPRIORITY (0) Reserved, RES0
1087 // 0x00000100 [8] ISTALL (0) Stall processor based on instruction trace buffer space
1088 // 0x0000000c [3:2] LEVEL (0x0) Threshold at which stalling becomes active
1089 io_rw_32 trcstallctlr;
1090
1091 _REG_(M33_TRCTSCTLR_OFFSET) // M33_TRCTSCTLR
1092 // The TRCTSCTLR controls the insertion of global timestamps into the trace stream
1093 // 0x00000080 [7] TYPE0 (0) Selects the resource type for event 0
1094 // 0x00000003 [1:0] SEL0 (0x0) Selects the resource number, based on the value of...
1095 io_rw_32 trctsctlr;
1096
1097 _REG_(M33_TRCSYNCPR_OFFSET) // M33_TRCSYNCPR
1098 // The TRCSYNCPR specifies the period of trace synchronization of the trace streams
1099 // 0x0000001f [4:0] PERIOD (0x0a) Defines the number of bytes of trace between trace...
1100 io_ro_32 trcsyncpr;
1101
1102 _REG_(M33_TRCCCCTLR_OFFSET) // M33_TRCCCCTLR
1103 // The TRCCCCTLR sets the threshold value for instruction trace cycle counting
1104 // 0x00000fff [11:0] THRESHOLD (0x000) Instruction trace cycle count threshold
1105 io_rw_32 trcccctlr;
1106
1107 uint32_t _pad51[17];
1108
1109 _REG_(M33_TRCVICTLR_OFFSET) // M33_TRCVICTLR
1110 // The TRCVICTLR controls instruction trace filtering
1111 // 0x00080000 [19] EXLEVEL_S3 (0) In Secure state, each bit controls whether instruction...
1112 // 0x00010000 [16] EXLEVEL_S0 (0) In Secure state, each bit controls whether instruction...
1113 // 0x00000800 [11] TRCERR (0) Selects whether a system error exception must always be traced
1114 // 0x00000400 [10] TRCRESET (0) Selects whether a reset exception must always be traced
1115 // 0x00000200 [9] SSSTATUS (0) Indicates the current status of the start/stop logic
1116 // 0x00000080 [7] TYPE0 (0) Selects the resource type for event 0
1117 // 0x00000003 [1:0] SEL0 (0x0) Selects the resource number, based on the value of...
1118 io_rw_32 trcvictlr;
1119
1120 uint32_t _pad52[47];
1121
1122 _REG_(M33_TRCCNTRLDVR0_OFFSET) // M33_TRCCNTRLDVR0
1123 // The TRCCNTRLDVR defines the reload value for the reduced function counter
1124 // 0x0000ffff [15:0] VALUE (0x0000) Defines the reload value for the counter
1125 io_rw_32 trccntrldvr0;
1126
1127 uint32_t _pad53[15];
1128
1129 _REG_(M33_TRCIDR8_OFFSET) // M33_TRCIDR8
1130 // TRCIDR8
1131 // 0xffffffff [31:0] MAXSPEC (0x00000000) reads as `ImpDef
1132 io_ro_32 trcidr8;
1133
1134 _REG_(M33_TRCIDR9_OFFSET) // M33_TRCIDR9
1135 // TRCIDR9
1136 // 0xffffffff [31:0] NUMP0KEY (0x00000000) reads as `ImpDef
1137 io_ro_32 trcidr9;
1138
1139 _REG_(M33_TRCIDR10_OFFSET) // M33_TRCIDR10
1140 // TRCIDR10
1141 // 0xffffffff [31:0] NUMP1KEY (0x00000000) reads as `ImpDef
1142 io_ro_32 trcidr10;
1143
1144 _REG_(M33_TRCIDR11_OFFSET) // M33_TRCIDR11
1145 // TRCIDR11
1146 // 0xffffffff [31:0] NUMP1SPC (0x00000000) reads as `ImpDef
1147 io_ro_32 trcidr11;
1148
1149 _REG_(M33_TRCIDR12_OFFSET) // M33_TRCIDR12
1150 // TRCIDR12
1151 // 0xffffffff [31:0] NUMCONDKEY (0x00000001) reads as `ImpDef
1152 io_ro_32 trcidr12;
1153
1154 _REG_(M33_TRCIDR13_OFFSET) // M33_TRCIDR13
1155 // TRCIDR13
1156 // 0xffffffff [31:0] NUMCONDSPC (0x00000000) reads as `ImpDef
1157 io_ro_32 trcidr13;
1158
1159 uint32_t _pad54[10];
1160
1161 _REG_(M33_TRCIMSPEC_OFFSET) // M33_TRCIMSPEC
1162 // The TRCIMSPEC shows the presence of any IMPLEMENTATION SPECIFIC features, and enables any...
1163 // 0x0000000f [3:0] SUPPORT (0x0) Reserved, RES0
1164 io_ro_32 trcimspec;
1165
1166 uint32_t _pad55[7];
1167
1168 _REG_(M33_TRCIDR0_OFFSET) // M33_TRCIDR0
1169 // TRCIDR0
1170 // 0x20000000 [29] COMMOPT (1) reads as `ImpDef
1171 // 0x1f000000 [28:24] TSSIZE (0x08) reads as `ImpDef
1172 // 0x00020000 [17] TRCEXDATA (0) reads as `ImpDef
1173 // 0x00018000 [16:15] QSUPP (0x0) reads as `ImpDef
1174 // 0x00004000 [14] QFILT (0) reads as `ImpDef
1175 // 0x00003000 [13:12] CONDTYPE (0x0) reads as `ImpDef
1176 // 0x00000c00 [11:10] NUMEVENT (0x1) reads as `ImpDef
1177 // 0x00000200 [9] RETSTACK (1) reads as `ImpDef
1178 // 0x00000080 [7] TRCCCI (1) reads as `ImpDef
1179 // 0x00000040 [6] TRCCOND (1) reads as `ImpDef
1180 // 0x00000020 [5] TRCBB (1) reads as `ImpDef
1181 // 0x00000018 [4:3] TRCDATA (0x0) reads as `ImpDef
1182 // 0x00000006 [2:1] INSTP0 (0x0) reads as `ImpDef
1183 // 0x00000001 [0] RES1 (1) Reserved, RES1
1184 io_ro_32 trcidr0;
1185
1186 _REG_(M33_TRCIDR1_OFFSET) // M33_TRCIDR1
1187 // TRCIDR1
1188 // 0xff000000 [31:24] DESIGNER (0x41) reads as `ImpDef
1189 // 0x0000f000 [15:12] RES1 (0xf) Reserved, RES1
1190 // 0x00000f00 [11:8] TRCARCHMAJ (0x4) reads as 0b0100
1191 // 0x000000f0 [7:4] TRCARCHMIN (0x2) reads as 0b0000
1192 // 0x0000000f [3:0] REVISION (0x1) reads as `ImpDef
1193 io_ro_32 trcidr1;
1194
1195 _REG_(M33_TRCIDR2_OFFSET) // M33_TRCIDR2
1196 // TRCIDR2
1197 // 0x1e000000 [28:25] CCSIZE (0x0) reads as `ImpDef
1198 // 0x01f00000 [24:20] DVSIZE (0x00) reads as `ImpDef
1199 // 0x000f8000 [19:15] DASIZE (0x00) reads as `ImpDef
1200 // 0x00007c00 [14:10] VMIDSIZE (0x00) reads as `ImpDef
1201 // 0x000003e0 [9:5] CIDSIZE (0x00) reads as `ImpDef
1202 // 0x0000001f [4:0] IASIZE (0x04) reads as `ImpDef
1203 io_ro_32 trcidr2;
1204
1205 _REG_(M33_TRCIDR3_OFFSET) // M33_TRCIDR3
1206 // TRCIDR3
1207 // 0x80000000 [31] NOOVERFLOW (0) reads as `ImpDef
1208 // 0x70000000 [30:28] NUMPROC (0x0) reads as `ImpDef
1209 // 0x08000000 [27] SYSSTALL (1) reads as `ImpDef
1210 // 0x04000000 [26] STALLCTL (1) reads as `ImpDef
1211 // 0x02000000 [25] SYNCPR (1) reads as `ImpDef
1212 // 0x01000000 [24] TRCERR (1) reads as `ImpDef
1213 // 0x00f00000 [23:20] EXLEVEL_NS (0x0) reads as `ImpDef
1214 // 0x000f0000 [19:16] EXLEVEL_S (0x9) reads as `ImpDef
1215 // 0x00000fff [11:0] CCITMIN (0x004) reads as `ImpDef
1216 io_ro_32 trcidr3;
1217
1218 _REG_(M33_TRCIDR4_OFFSET) // M33_TRCIDR4
1219 // TRCIDR4
1220 // 0xf0000000 [31:28] NUMVMIDC (0x0) reads as `ImpDef
1221 // 0x0f000000 [27:24] NUMCIDC (0x0) reads as `ImpDef
1222 // 0x00f00000 [23:20] NUMSSCC (0x1) reads as `ImpDef
1223 // 0x000f0000 [19:16] NUMRSPAIR (0x1) reads as `ImpDef
1224 // 0x0000f000 [15:12] NUMPC (0x4) reads as `ImpDef
1225 // 0x00000100 [8] SUPPDAC (0) reads as `ImpDef
1226 // 0x000000f0 [7:4] NUMDVC (0x0) reads as `ImpDef
1227 // 0x0000000f [3:0] NUMACPAIRS (0x0) reads as `ImpDef
1228 io_ro_32 trcidr4;
1229
1230 _REG_(M33_TRCIDR5_OFFSET) // M33_TRCIDR5
1231 // TRCIDR5
1232 // 0x80000000 [31] REDFUNCNTR (1) reads as `ImpDef
1233 // 0x70000000 [30:28] NUMCNTR (0x1) reads as `ImpDef
1234 // 0x0e000000 [27:25] NUMSEQSTATE (0x0) reads as `ImpDef
1235 // 0x00800000 [23] LPOVERRIDE (1) reads as `ImpDef
1236 // 0x00400000 [22] ATBTRIG (1) reads as `ImpDef
1237 // 0x003f0000 [21:16] TRACEIDSIZE (0x07) reads as 0x07
1238 // 0x00000e00 [11:9] NUMEXTINSEL (0x0) reads as `ImpDef
1239 // 0x000001ff [8:0] NUMEXTIN (0x004) reads as `ImpDef
1240 io_ro_32 trcidr5;
1241
1242 uint32_t _pad56[4];
1243
1244 // (Description copied from array index 0 register M33_TRCRSCTLR2 applies similarly to other array indexes)
1245 _REG_(M33_TRCRSCTLR2_OFFSET) // M33_TRCRSCTLR2
1246 // The TRCRSCTLR controls the trace resources
1247 // 0x00200000 [21] PAIRINV (0) Inverts the result of a combined pair of resources
1248 // 0x00100000 [20] INV (0) Inverts the selected resources
1249 // 0x00070000 [18:16] GROUP (0x0) Selects a group of resource
1250 // 0x000000ff [7:0] SELECT (0x00) Selects one or more resources from the wanted group
1251 io_rw_32 trcrsctlr[2];
1252
1253 uint32_t _pad57[36];
1254
1255 _REG_(M33_TRCSSCSR_OFFSET) // M33_TRCSSCSR
1256 // Controls the corresponding single-shot comparator resource
1257 // 0x80000000 [31] STATUS (0) Single-shot status bit
1258 // 0x00000008 [3] PC (0) Reserved, RES1
1259 // 0x00000004 [2] DV (0) Reserved, RES0
1260 // 0x00000002 [1] DA (0) Reserved, RES0
1261 // 0x00000001 [0] INST (0) Reserved, RES0
1262 io_rw_32 trcsscsr;
1263
1264 uint32_t _pad58[7];
1265
1266 _REG_(M33_TRCSSPCICR_OFFSET) // M33_TRCSSPCICR
1267 // Selects the PE comparator inputs for Single-shot control
1268 // 0x0000000f [3:0] PC (0x0) Selects one or more PE comparator inputs for Single-shot control
1269 io_rw_32 trcsspcicr;
1270
1271 uint32_t _pad59[19];
1272
1273 _REG_(M33_TRCPDCR_OFFSET) // M33_TRCPDCR
1274 // Requests the system to provide power to the trace unit
1275 // 0x00000008 [3] PU (0) Powerup request bit:
1276 io_rw_32 trcpdcr;
1277
1278 _REG_(M33_TRCPDSR_OFFSET) // M33_TRCPDSR
1279 // Returns the following information about the trace unit: - OS Lock status
1280 // 0x00000020 [5] OSLK (0) OS Lock status bit:
1281 // 0x00000002 [1] STICKYPD (1) Sticky powerdown status bit
1282 // 0x00000001 [0] POWER (1) Power status bit:
1283 io_ro_32 trcpdsr;
1284
1285 uint32_t _pad60[755];
1286
1287 _REG_(M33_TRCITATBIDR_OFFSET) // M33_TRCITATBIDR
1288 // Trace Integration ATB Identification Register
1289 // 0x0000007f [6:0] ID (0x00) Trace ID
1290 io_rw_32 trcitatbidr;
1291
1292 uint32_t _pad61[3];
1293
1294 _REG_(M33_TRCITIATBINR_OFFSET) // M33_TRCITIATBINR
1295 // Trace Integration Instruction ATB In Register
1296 // 0x00000002 [1] AFVALIDM (0) Integration Mode instruction AFVALIDM in
1297 // 0x00000001 [0] ATREADYM (0) Integration Mode instruction ATREADYM in
1298 io_rw_32 trcitiatbinr;
1299
1300 uint32_t _pad62;
1301
1302 _REG_(M33_TRCITIATBOUTR_OFFSET) // M33_TRCITIATBOUTR
1303 // Trace Integration Instruction ATB Out Register
1304 // 0x00000002 [1] AFREADY (0) Integration Mode instruction AFREADY out
1305 // 0x00000001 [0] ATVALID (0) Integration Mode instruction ATVALID out
1306 io_rw_32 trcitiatboutr;
1307
1308 uint32_t _pad63[40];
1309
1310 _REG_(M33_TRCCLAIMSET_OFFSET) // M33_TRCCLAIMSET
1311 // Claim Tag Set Register
1312 // 0x00000008 [3] SET3 (1) When a write to one of these bits occurs, with the value:
1313 // 0x00000004 [2] SET2 (1) When a write to one of these bits occurs, with the value:
1314 // 0x00000002 [1] SET1 (1) When a write to one of these bits occurs, with the value:
1315 // 0x00000001 [0] SET0 (1) When a write to one of these bits occurs, with the value:
1316 io_rw_32 trcclaimset;
1317
1318 _REG_(M33_TRCCLAIMCLR_OFFSET) // M33_TRCCLAIMCLR
1319 // Claim Tag Clear Register
1320 // 0x00000008 [3] CLR3 (0) When a write to one of these bits occurs, with the value:
1321 // 0x00000004 [2] CLR2 (0) When a write to one of these bits occurs, with the value:
1322 // 0x00000002 [1] CLR1 (0) When a write to one of these bits occurs, with the value:
1323 // 0x00000001 [0] CLR0 (0) When a write to one of these bits occurs, with the value:
1324 io_rw_32 trcclaimclr;
1325
1326 uint32_t _pad64[4];
1327
1328 _REG_(M33_TRCAUTHSTATUS_OFFSET) // M33_TRCAUTHSTATUS
1329 // Returns the level of tracing that the trace unit can support
1330 // 0x000000c0 [7:6] SNID (0x0) Indicates whether the system enables the trace unit to...
1331 // 0x00000030 [5:4] SID (0x0) Indicates whether the trace unit supports Secure invasive debug:
1332 // 0x0000000c [3:2] NSNID (0x0) Indicates whether the system enables the trace unit to...
1333 // 0x00000003 [1:0] NSID (0x0) Indicates whether the trace unit supports Non-secure...
1334 io_ro_32 trcauthstatus;
1335
1336 _REG_(M33_TRCDEVARCH_OFFSET) // M33_TRCDEVARCH
1337 // TRCDEVARCH
1338 // 0xffe00000 [31:21] ARCHITECT (0x23b) reads as 0b01000111011
1339 // 0x00100000 [20] PRESENT (1) reads as 0b1
1340 // 0x000f0000 [19:16] REVISION (0x2) reads as 0b0000
1341 // 0x0000ffff [15:0] ARCHID (0x4a13) reads as 0b0100101000010011
1342 io_ro_32 trcdevarch;
1343
1344 uint32_t _pad65[3];
1345
1346 _REG_(M33_TRCDEVTYPE_OFFSET) // M33_TRCDEVTYPE
1347 // TRCDEVTYPE
1348 // 0x000000f0 [7:4] SUB (0x1) reads as 0b0001
1349 // 0x0000000f [3:0] MAJOR (0x3) reads as 0b0011
1350 io_ro_32 trcdevtype;
1351
1352 _REG_(M33_TRCPIDR4_OFFSET) // M33_TRCPIDR4
1353 // TRCPIDR4
1354 // 0x000000f0 [7:4] SIZE (0x0) reads as `ImpDef
1355 // 0x0000000f [3:0] DES_2 (0x4) reads as `ImpDef
1356 io_ro_32 trcpidr4;
1357
1358 uint32_t _pad66[3];
1359
1360 _REG_(M33_TRCPIDR0_OFFSET) // M33_TRCPIDR0
1361 // TRCPIDR0
1362 // 0x000000ff [7:0] PART_0 (0x21) reads as `ImpDef
1363 io_ro_32 trcpidr0;
1364
1365 _REG_(M33_TRCPIDR1_OFFSET) // M33_TRCPIDR1
1366 // TRCPIDR1
1367 // 0x000000f0 [7:4] DES_0 (0xb) reads as `ImpDef
1368 // 0x0000000f [3:0] PART_0 (0xd) reads as `ImpDef
1369 io_ro_32 trcpidr1;
1370
1371 _REG_(M33_TRCPIDR2_OFFSET) // M33_TRCPIDR2
1372 // TRCPIDR2
1373 // 0x000000f0 [7:4] REVISION (0x2) reads as `ImpDef
1374 // 0x00000008 [3] JEDEC (1) reads as 0b1
1375 // 0x00000007 [2:0] DES_0 (0x3) reads as `ImpDef
1376 io_ro_32 trcpidr2;
1377
1378 _REG_(M33_TRCPIDR3_OFFSET) // M33_TRCPIDR3
1379 // TRCPIDR3
1380 // 0x000000f0 [7:4] REVAND (0x0) reads as `ImpDef
1381 // 0x0000000f [3:0] CMOD (0x0) reads as `ImpDef
1382 io_ro_32 trcpidr3;
1383
1384 // (Description copied from array index 0 register M33_TRCCIDR0 applies similarly to other array indexes)
1385 _REG_(M33_TRCCIDR0_OFFSET) // M33_TRCCIDR0
1386 // TRCCIDR0
1387 // 0x000000ff [7:0] PRMBL_0 (0x0d) reads as 0b00001101
1388 io_ro_32 trccidr[4];
1389
1390 _REG_(M33_CTICONTROL_OFFSET) // M33_CTICONTROL
1391 // CTI Control Register
1392 // 0x00000001 [0] GLBEN (0) Enables or disables the CTI
1393 io_rw_32 cticontrol;
1394
1395 uint32_t _pad67[3];
1396
1397 _REG_(M33_CTIINTACK_OFFSET) // M33_CTIINTACK
1398 // CTI Interrupt Acknowledge Register
1399 // 0x000000ff [7:0] INTACK (0x00) Acknowledges the corresponding ctitrigout output
1400 io_rw_32 ctiintack;
1401
1402 _REG_(M33_CTIAPPSET_OFFSET) // M33_CTIAPPSET
1403 // CTI Application Trigger Set Register
1404 // 0x0000000f [3:0] APPSET (0x0) Setting a bit HIGH generates a channel event for the...
1405 io_rw_32 ctiappset;
1406
1407 _REG_(M33_CTIAPPCLEAR_OFFSET) // M33_CTIAPPCLEAR
1408 // CTI Application Trigger Clear Register
1409 // 0x0000000f [3:0] APPCLEAR (0x0) Sets the corresponding bits in the CTIAPPSET to 0
1410 io_rw_32 ctiappclear;
1411
1412 _REG_(M33_CTIAPPPULSE_OFFSET) // M33_CTIAPPPULSE
1413 // CTI Application Pulse Register
1414 // 0x0000000f [3:0] APPULSE (0x0) Setting a bit HIGH generates a channel event pulse for...
1415 io_rw_32 ctiapppulse;
1416
1417 // (Description copied from array index 0 register M33_CTIINEN0 applies similarly to other array indexes)
1418 _REG_(M33_CTIINEN0_OFFSET) // M33_CTIINEN0
1419 // CTI Trigger to Channel Enable Registers
1420 // 0x0000000f [3:0] TRIGINEN (0x0) Enables a cross trigger event to the corresponding...
1421 io_rw_32 ctiinen[8];
1422
1423 uint32_t _pad68[24];
1424
1425 // (Description copied from array index 0 register M33_CTIOUTEN0 applies similarly to other array indexes)
1426 _REG_(M33_CTIOUTEN0_OFFSET) // M33_CTIOUTEN0
1427 // CTI Trigger to Channel Enable Registers
1428 // 0x0000000f [3:0] TRIGOUTEN (0x0) Enables a cross trigger event to ctitrigout when the...
1429 io_rw_32 ctiouten[8];
1430
1431 uint32_t _pad69[28];
1432
1433 _REG_(M33_CTITRIGINSTATUS_OFFSET) // M33_CTITRIGINSTATUS
1434 // CTI Trigger to Channel Enable Registers
1435 // 0x000000ff [7:0] TRIGINSTATUS (0x00) Shows the status of the ctitrigin inputs
1436 io_ro_32 ctitriginstatus;
1437
1438 _REG_(M33_CTITRIGOUTSTATUS_OFFSET) // M33_CTITRIGOUTSTATUS
1439 // CTI Trigger In Status Register
1440 // 0x000000ff [7:0] TRIGOUTSTATUS (0x00) Shows the status of the ctitrigout outputs
1441 io_ro_32 ctitrigoutstatus;
1442
1443 _REG_(M33_CTICHINSTATUS_OFFSET) // M33_CTICHINSTATUS
1444 // CTI Channel In Status Register
1445 // 0x0000000f [3:0] CTICHOUTSTATUS (0x0) Shows the status of the ctichout outputs
1446 io_ro_32 ctichinstatus;
1447
1448 uint32_t _pad70;
1449
1450 _REG_(M33_CTIGATE_OFFSET) // M33_CTIGATE
1451 // Enable CTI Channel Gate register
1452 // 0x00000008 [3] CTIGATEEN3 (1) Enable ctichout3
1453 // 0x00000004 [2] CTIGATEEN2 (1) Enable ctichout2
1454 // 0x00000002 [1] CTIGATEEN1 (1) Enable ctichout1
1455 // 0x00000001 [0] CTIGATEEN0 (1) Enable ctichout0
1456 io_rw_32 ctigate;
1457
1458 uint32_t _pad71[872];
1459
1460 _REG_(M33_ITCHOUT_OFFSET) // M33_ITCHOUT
1461 // Integration Test Channel Output register
1462 // 0x0000000f [3:0] CTCHOUT (0x0) Sets the value of the ctichout outputs
1463 io_rw_32 itchout;
1464
1465 _REG_(M33_ITTRIGOUT_OFFSET) // M33_ITTRIGOUT
1466 // Integration Test Trigger Output register
1467 // 0x000000ff [7:0] CTTRIGOUT (0x00) Sets the value of the ctitrigout outputs
1468 io_rw_32 ittrigout;
1469
1470 uint32_t _pad72[2];
1471
1472 _REG_(M33_ITCHIN_OFFSET) // M33_ITCHIN
1473 // Integration Test Channel Input register
1474 // 0x0000000f [3:0] CTCHIN (0x0) Reads the value of the ctichin inputs
1475 io_ro_32 itchin;
1476
1477 uint32_t _pad73[2];
1478
1479 _REG_(M33_ITCTRL_OFFSET) // M33_ITCTRL
1480 // Integration Mode Control register
1481 // 0x00000001 [0] IME (0) Integration Mode Enable
1482 io_rw_32 itctrl;
1483
1484 uint32_t _pad74[46];
1485
1486 _REG_(M33_DEVARCH_OFFSET) // M33_DEVARCH
1487 // Device Architecture register
1488 // 0xffe00000 [31:21] ARCHITECT (0x23b) Indicates the component architect
1489 // 0x00100000 [20] PRESENT (1) Indicates whether the DEVARCH register is present
1490 // 0x000f0000 [19:16] REVISION (0x0) Indicates the architecture revision
1491 // 0x0000ffff [15:0] ARCHID (0x1a14) Indicates the component
1492 io_ro_32 devarch;
1493
1494 uint32_t _pad75[2];
1495
1496 _REG_(M33_DEVID_OFFSET) // M33_DEVID
1497 // Device Configuration register
1498 // 0x000f0000 [19:16] NUMCH (0x4) Number of ECT channels available
1499 // 0x0000ff00 [15:8] NUMTRIG (0x08) Number of ECT triggers available
1500 // 0x0000001f [4:0] EXTMUXNUM (0x00) Indicates the number of multiplexers available on...
1501 io_ro_32 devid;
1502
1503 _REG_(M33_DEVTYPE_OFFSET) // M33_DEVTYPE
1504 // Device Type Identifier register
1505 // 0x000000f0 [7:4] SUB (0x1) Sub-classification of the type of the debug component as...
1506 // 0x0000000f [3:0] MAJOR (0x4) Major classification of the type of the debug component...
1507 io_ro_32 devtype;
1508
1509 _REG_(M33_PIDR4_OFFSET) // M33_PIDR4
1510 // CoreSight Peripheral ID4
1511 // 0x000000f0 [7:4] SIZE (0x0) Always 0b0000
1512 // 0x0000000f [3:0] DES_2 (0x4) Together, PIDR1
1513 io_ro_32 pidr4;
1514
1515 uint32_t _pad76[3];
1516
1517 _REG_(M33_PIDR0_OFFSET) // M33_PIDR0
1518 // CoreSight Peripheral ID0
1519 // 0x000000ff [7:0] PART_0 (0x21) Bits[7:0] of the 12-bit part number of the component
1520 io_ro_32 pidr0;
1521
1522 _REG_(M33_PIDR1_OFFSET) // M33_PIDR1
1523 // CoreSight Peripheral ID1
1524 // 0x000000f0 [7:4] DES_0 (0xb) Together, PIDR1
1525 // 0x0000000f [3:0] PART_1 (0xd) Bits[11:8] of the 12-bit part number of the component
1526 io_ro_32 pidr1;
1527
1528 _REG_(M33_PIDR2_OFFSET) // M33_PIDR2
1529 // CoreSight Peripheral ID2
1530 // 0x000000f0 [7:4] REVISION (0x0) This device is at r1p0
1531 // 0x00000008 [3] JEDEC (1) Always 1
1532 // 0x00000007 [2:0] DES_1 (0x3) Together, PIDR1
1533 io_ro_32 pidr2;
1534
1535 _REG_(M33_PIDR3_OFFSET) // M33_PIDR3
1536 // CoreSight Peripheral ID3
1537 // 0x000000f0 [7:4] REVAND (0x0) Indicates minor errata fixes specific to the revision of...
1538 // 0x0000000f [3:0] CMOD (0x0) Customer Modified
1539 io_ro_32 pidr3;
1540
1541 // (Description copied from array index 0 register M33_CIDR0 applies similarly to other array indexes)
1542 _REG_(M33_CIDR0_OFFSET) // M33_CIDR0
1543 // CoreSight Component ID0
1544 // 0x000000ff [7:0] PRMBL_0 (0x0d) Preamble[0]
1545 io_ro_32 cidr[4];
1546} m33_hw_t;
1547
1548#define m33_hw ((m33_hw_t *)PPB_BASE)
1549#define m33_ns_hw ((m33_hw_t *)PPB_NONSEC_BASE)
1550static_assert(sizeof (m33_hw_t) == 0x43000, "");
1551
1552#endif // _HARDWARE_STRUCTS_M33_H
Definition m33.h:30