| // THIS HEADER FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT |
| |
| /** |
| * Copyright (c) 2024 Raspberry Pi Ltd. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| #ifndef _HARDWARE_STRUCTS_M33_H |
| #define _HARDWARE_STRUCTS_M33_H |
| |
| /** |
| * \file rp2350/m33.h |
| */ |
| |
| #include "hardware/address_mapped.h" |
| #include "hardware/regs/m33.h" |
| |
| // Reference to datasheet: https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.pdf#tab-registerlist_m33 |
| // |
| // The _REG_ macro is intended to help make the register navigable in your IDE (for example, using the "Go to Definition" feature) |
| // _REG_(x) will link to the corresponding register in hardware/regs/m33.h. |
| // |
| // Bit-field descriptions are of the form: |
| // BITMASK [BITRANGE] FIELDNAME (RESETVALUE) DESCRIPTION |
| |
| #if defined(__riscv) && PICO_FORBID_ARM_HEADERS_ON_RISCV |
| #error "Arm header included in a RISC-V build with PICO_FORBID_ARM_HEADERS_ON_RISCV=1" |
| #endif |
| |
| typedef struct { |
| // (Description copied from array index 0 register M33_ITM_STIM0 applies similarly to other array indexes) |
| _REG_(M33_ITM_STIM0_OFFSET) // M33_ITM_STIM0 |
| // ITM Stimulus Port Register 0 |
| // 0xffffffff [31:0] STIMULUS (0x00000000) Data to write to the Stimulus Port FIFO, for forwarding... |
| io_rw_32 itm_stim[32]; |
| |
| uint32_t _pad0[864]; |
| |
| _REG_(M33_ITM_TER0_OFFSET) // M33_ITM_TER0 |
| // Provide an individual enable bit for each ITM_STIM register |
| // 0xffffffff [31:0] STIMENA (0x00000000) For STIMENA[m] in ITM_TER*n, controls whether... |
| io_rw_32 itm_ter0; |
| |
| uint32_t _pad1[15]; |
| |
| _REG_(M33_ITM_TPR_OFFSET) // M33_ITM_TPR |
| // Controls which stimulus ports can be accessed by unprivileged code |
| // 0x0000000f [3:0] PRIVMASK (0x0) Bit mask to enable tracing on ITM stimulus ports |
| io_rw_32 itm_tpr; |
| |
| uint32_t _pad2[15]; |
| |
| _REG_(M33_ITM_TCR_OFFSET) // M33_ITM_TCR |
| // Configures and controls transfers through the ITM interface |
| // 0x00800000 [23] BUSY (0) Indicates whether the ITM is currently processing events |
| // 0x007f0000 [22:16] TRACEBUSID (0x00) Identifier for multi-source trace stream formatting |
| // 0x00000c00 [11:10] GTSFREQ (0x0) Defines how often the ITM generates a global timestamp,... |
| // 0x00000300 [9:8] TSPRESCALE (0x0) Local timestamp prescaler, used with the trace packet... |
| // 0x00000020 [5] STALLENA (0) Stall the PE to guarantee delivery of Data Trace packets |
| // 0x00000010 [4] SWOENA (0) Enables asynchronous clocking of the timestamp counter |
| // 0x00000008 [3] TXENA (0) Enables forwarding of hardware event packet from the DWT... |
| // 0x00000004 [2] SYNCENA (0) Enables Synchronization packet transmission for a... |
| // 0x00000002 [1] TSENA (0) Enables Local timestamp generation |
| // 0x00000001 [0] ITMENA (0) Enables the ITM |
| io_rw_32 itm_tcr; |
| |
| uint32_t _pad3[27]; |
| |
| _REG_(M33_INT_ATREADY_OFFSET) // M33_INT_ATREADY |
| // Integration Mode: Read ATB Ready |
| // 0x00000002 [1] AFVALID (0) A read of this bit returns the value of AFVALID |
| // 0x00000001 [0] ATREADY (0) A read of this bit returns the value of ATREADY |
| io_ro_32 int_atready; |
| |
| uint32_t _pad4; |
| |
| _REG_(M33_INT_ATVALID_OFFSET) // M33_INT_ATVALID |
| // Integration Mode: Write ATB Valid |
| // 0x00000002 [1] AFREADY (0) A write to this bit gives the value of AFREADY |
| // 0x00000001 [0] ATREADY (0) A write to this bit gives the value of ATVALID |
| io_rw_32 int_atvalid; |
| |
| uint32_t _pad5; |
| |
| _REG_(M33_ITM_ITCTRL_OFFSET) // M33_ITM_ITCTRL |
| // Integration Mode Control Register |
| // 0x00000001 [0] IME (0) Integration mode enable bit - The possible values are: ... |
| io_rw_32 itm_itctrl; |
| |
| uint32_t _pad6[46]; |
| |
| _REG_(M33_ITM_DEVARCH_OFFSET) // M33_ITM_DEVARCH |
| // Provides CoreSight discovery information for the ITM |
| // 0xffe00000 [31:21] ARCHITECT (0x23b) Defines the architect of the component |
| // 0x00100000 [20] PRESENT (1) Defines that the DEVARCH register is present |
| // 0x000f0000 [19:16] REVISION (0x0) Defines the architecture revision of the component |
| // 0x0000f000 [15:12] ARCHVER (0x1) Defines the architecture version of the component |
| // 0x00000fff [11:0] ARCHPART (0xa01) Defines the architecture of the component |
| io_ro_32 itm_devarch; |
| |
| uint32_t _pad7[3]; |
| |
| _REG_(M33_ITM_DEVTYPE_OFFSET) // M33_ITM_DEVTYPE |
| // Provides CoreSight discovery information for the ITM |
| // 0x000000f0 [7:4] SUB (0x4) Component sub-type |
| // 0x0000000f [3:0] MAJOR (0x3) Component major type |
| io_ro_32 itm_devtype; |
| |
| _REG_(M33_ITM_PIDR4_OFFSET) // M33_ITM_PIDR4 |
| // Provides CoreSight discovery information for the ITM |
| // 0x000000f0 [7:4] SIZE (0x0) See CoreSight Architecture Specification |
| // 0x0000000f [3:0] DES_2 (0x4) See CoreSight Architecture Specification |
| io_ro_32 itm_pidr4; |
| |
| _REG_(M33_ITM_PIDR5_OFFSET) // M33_ITM_PIDR5 |
| // Provides CoreSight discovery information for the ITM |
| // 0x00000000 [31:0] ITM_PIDR5 (0x00000000) |
| io_rw_32 itm_pidr5; |
| |
| _REG_(M33_ITM_PIDR6_OFFSET) // M33_ITM_PIDR6 |
| // Provides CoreSight discovery information for the ITM |
| // 0x00000000 [31:0] ITM_PIDR6 (0x00000000) |
| io_rw_32 itm_pidr6; |
| |
| _REG_(M33_ITM_PIDR7_OFFSET) // M33_ITM_PIDR7 |
| // Provides CoreSight discovery information for the ITM |
| // 0x00000000 [31:0] ITM_PIDR7 (0x00000000) |
| io_rw_32 itm_pidr7; |
| |
| _REG_(M33_ITM_PIDR0_OFFSET) // M33_ITM_PIDR0 |
| // Provides CoreSight discovery information for the ITM |
| // 0x000000ff [7:0] PART_0 (0x21) See CoreSight Architecture Specification |
| io_ro_32 itm_pidr0; |
| |
| _REG_(M33_ITM_PIDR1_OFFSET) // M33_ITM_PIDR1 |
| // Provides CoreSight discovery information for the ITM |
| // 0x000000f0 [7:4] DES_0 (0xb) See CoreSight Architecture Specification |
| // 0x0000000f [3:0] PART_1 (0xd) See CoreSight Architecture Specification |
| io_ro_32 itm_pidr1; |
| |
| _REG_(M33_ITM_PIDR2_OFFSET) // M33_ITM_PIDR2 |
| // Provides CoreSight discovery information for the ITM |
| // 0x000000f0 [7:4] REVISION (0x0) See CoreSight Architecture Specification |
| // 0x00000008 [3] JEDEC (1) See CoreSight Architecture Specification |
| // 0x00000007 [2:0] DES_1 (0x3) See CoreSight Architecture Specification |
| io_ro_32 itm_pidr2; |
| |
| _REG_(M33_ITM_PIDR3_OFFSET) // M33_ITM_PIDR3 |
| // Provides CoreSight discovery information for the ITM |
| // 0x000000f0 [7:4] REVAND (0x0) See CoreSight Architecture Specification |
| // 0x0000000f [3:0] CMOD (0x0) See CoreSight Architecture Specification |
| io_ro_32 itm_pidr3; |
| |
| // (Description copied from array index 0 register M33_ITM_CIDR0 applies similarly to other array indexes) |
| _REG_(M33_ITM_CIDR0_OFFSET) // M33_ITM_CIDR0 |
| // Provides CoreSight discovery information for the ITM |
| // 0x000000ff [7:0] PRMBL_0 (0x0d) See CoreSight Architecture Specification |
| io_ro_32 itm_cidr[4]; |
| |
| _REG_(M33_DWT_CTRL_OFFSET) // M33_DWT_CTRL |
| // Provides configuration and status information for the DWT unit, and used to control features of the unit |
| // 0xf0000000 [31:28] NUMCOMP (0x7) Number of DWT comparators implemented |
| // 0x08000000 [27] NOTRCPKT (0) Indicates whether the implementation does not support trace |
| // 0x04000000 [26] NOEXTTRIG (0) Reserved, RAZ |
| // 0x02000000 [25] NOCYCCNT (1) Indicates whether the implementation does not include a... |
| // 0x01000000 [24] NOPRFCNT (1) Indicates whether the implementation does not include... |
| // 0x00800000 [23] CYCDISS (0) Controls whether the cycle counter is disabled in Secure state |
| // 0x00400000 [22] CYCEVTENA (1) Enables Event Counter packet generation on POSTCNT underflow |
| // 0x00200000 [21] FOLDEVTENA (1) Enables DWT_FOLDCNT counter |
| // 0x00100000 [20] LSUEVTENA (1) Enables DWT_LSUCNT counter |
| // 0x00080000 [19] SLEEPEVTENA (0) Enable DWT_SLEEPCNT counter |
| // 0x00040000 [18] EXCEVTENA (1) Enables DWT_EXCCNT counter |
| // 0x00020000 [17] CPIEVTENA (0) Enables DWT_CPICNT counter |
| // 0x00010000 [16] EXTTRCENA (0) Enables generation of Exception Trace packets |
| // 0x00001000 [12] PCSAMPLENA (1) Enables use of POSTCNT counter as a timer for Periodic... |
| // 0x00000c00 [11:10] SYNCTAP (0x2) Selects the position of the synchronization packet... |
| // 0x00000200 [9] CYCTAP (0) Selects the position of the POSTCNT tap on the CYCCNT counter |
| // 0x000001e0 [8:5] POSTINIT (0x1) Initial value for the POSTCNT counter |
| // 0x0000001e [4:1] POSTPRESET (0x2) Reload value for the POSTCNT counter |
| // 0x00000001 [0] CYCCNTENA (0) Enables CYCCNT |
| io_rw_32 dwt_ctrl; |
| |
| _REG_(M33_DWT_CYCCNT_OFFSET) // M33_DWT_CYCCNT |
| // Shows or sets the value of the processor cycle counter, CYCCNT |
| // 0xffffffff [31:0] CYCCNT (0x00000000) Increments one on each processor clock cycle when DWT_CTRL |
| io_rw_32 dwt_cyccnt; |
| |
| uint32_t _pad8; |
| |
| _REG_(M33_DWT_EXCCNT_OFFSET) // M33_DWT_EXCCNT |
| // Counts the total cycles spent in exception processing |
| // 0x000000ff [7:0] EXCCNT (0x00) Counts one on each cycle when all of the following are... |
| io_rw_32 dwt_exccnt; |
| |
| uint32_t _pad9; |
| |
| _REG_(M33_DWT_LSUCNT_OFFSET) // M33_DWT_LSUCNT |
| // Increments on the additional cycles required to execute all load or store instructions |
| // 0x000000ff [7:0] LSUCNT (0x00) Counts one on each cycle when all of the following are... |
| io_rw_32 dwt_lsucnt; |
| |
| _REG_(M33_DWT_FOLDCNT_OFFSET) // M33_DWT_FOLDCNT |
| // Increments on the additional cycles required to execute all load or store instructions |
| // 0x000000ff [7:0] FOLDCNT (0x00) Counts on each cycle when all of the following are true:... |
| io_rw_32 dwt_foldcnt; |
| |
| uint32_t _pad10; |
| |
| _REG_(M33_DWT_COMP0_OFFSET) // M33_DWT_COMP0 |
| // Provides a reference value for use by watchpoint comparator 0 |
| // 0xffffffff [31:0] DWT_COMP0 (0x00000000) |
| io_rw_32 dwt_comp0; |
| |
| uint32_t _pad11; |
| |
| _REG_(M33_DWT_FUNCTION0_OFFSET) // M33_DWT_FUNCTION0 |
| // Controls the operation of watchpoint comparator 0 |
| // 0xf8000000 [31:27] ID (0x0b) Identifies the capabilities for MATCH for comparator *n |
| // 0x01000000 [24] MATCHED (0) Set to 1 when the comparator matches |
| // 0x00000c00 [11:10] DATAVSIZE (0x0) Defines the size of the object being watched for by Data... |
| // 0x00000030 [5:4] ACTION (0x0) Defines the action on a match |
| // 0x0000000f [3:0] MATCH (0x0) Controls the type of match generated by this comparator |
| io_rw_32 dwt_function0; |
| |
| uint32_t _pad12; |
| |
| _REG_(M33_DWT_COMP1_OFFSET) // M33_DWT_COMP1 |
| // Provides a reference value for use by watchpoint comparator 1 |
| // 0xffffffff [31:0] DWT_COMP1 (0x00000000) |
| io_rw_32 dwt_comp1; |
| |
| uint32_t _pad13; |
| |
| _REG_(M33_DWT_FUNCTION1_OFFSET) // M33_DWT_FUNCTION1 |
| // Controls the operation of watchpoint comparator 1 |
| // 0xf8000000 [31:27] ID (0x11) Identifies the capabilities for MATCH for comparator *n |
| // 0x01000000 [24] MATCHED (1) Set to 1 when the comparator matches |
| // 0x00000c00 [11:10] DATAVSIZE (0x2) Defines the size of the object being watched for by Data... |
| // 0x00000030 [5:4] ACTION (0x2) Defines the action on a match |
| // 0x0000000f [3:0] MATCH (0x8) Controls the type of match generated by this comparator |
| io_rw_32 dwt_function1; |
| |
| uint32_t _pad14; |
| |
| _REG_(M33_DWT_COMP2_OFFSET) // M33_DWT_COMP2 |
| // Provides a reference value for use by watchpoint comparator 2 |
| // 0xffffffff [31:0] DWT_COMP2 (0x00000000) |
| io_rw_32 dwt_comp2; |
| |
| uint32_t _pad15; |
| |
| _REG_(M33_DWT_FUNCTION2_OFFSET) // M33_DWT_FUNCTION2 |
| // Controls the operation of watchpoint comparator 2 |
| // 0xf8000000 [31:27] ID (0x0a) Identifies the capabilities for MATCH for comparator *n |
| // 0x01000000 [24] MATCHED (0) Set to 1 when the comparator matches |
| // 0x00000c00 [11:10] DATAVSIZE (0x0) Defines the size of the object being watched for by Data... |
| // 0x00000030 [5:4] ACTION (0x0) Defines the action on a match |
| // 0x0000000f [3:0] MATCH (0x0) Controls the type of match generated by this comparator |
| io_rw_32 dwt_function2; |
| |
| uint32_t _pad16; |
| |
| _REG_(M33_DWT_COMP3_OFFSET) // M33_DWT_COMP3 |
| // Provides a reference value for use by watchpoint comparator 3 |
| // 0xffffffff [31:0] DWT_COMP3 (0x00000000) |
| io_rw_32 dwt_comp3; |
| |
| uint32_t _pad17; |
| |
| _REG_(M33_DWT_FUNCTION3_OFFSET) // M33_DWT_FUNCTION3 |
| // Controls the operation of watchpoint comparator 3 |
| // 0xf8000000 [31:27] ID (0x04) Identifies the capabilities for MATCH for comparator *n |
| // 0x01000000 [24] MATCHED (0) Set to 1 when the comparator matches |
| // 0x00000c00 [11:10] DATAVSIZE (0x2) Defines the size of the object being watched for by Data... |
| // 0x00000030 [5:4] ACTION (0x0) Defines the action on a match |
| // 0x0000000f [3:0] MATCH (0x0) Controls the type of match generated by this comparator |
| io_rw_32 dwt_function3; |
| |
| uint32_t _pad18[984]; |
| |
| _REG_(M33_DWT_DEVARCH_OFFSET) // M33_DWT_DEVARCH |
| // Provides CoreSight discovery information for the DWT |
| // 0xffe00000 [31:21] ARCHITECT (0x23b) Defines the architect of the component |
| // 0x00100000 [20] PRESENT (1) Defines that the DEVARCH register is present |
| // 0x000f0000 [19:16] REVISION (0x0) Defines the architecture revision of the component |
| // 0x0000f000 [15:12] ARCHVER (0x1) Defines the architecture version of the component |
| // 0x00000fff [11:0] ARCHPART (0xa02) Defines the architecture of the component |
| io_ro_32 dwt_devarch; |
| |
| uint32_t _pad19[3]; |
| |
| _REG_(M33_DWT_DEVTYPE_OFFSET) // M33_DWT_DEVTYPE |
| // Provides CoreSight discovery information for the DWT |
| // 0x000000f0 [7:4] SUB (0x0) Component sub-type |
| // 0x0000000f [3:0] MAJOR (0x0) Component major type |
| io_ro_32 dwt_devtype; |
| |
| _REG_(M33_DWT_PIDR4_OFFSET) // M33_DWT_PIDR4 |
| // Provides CoreSight discovery information for the DWT |
| // 0x000000f0 [7:4] SIZE (0x0) See CoreSight Architecture Specification |
| // 0x0000000f [3:0] DES_2 (0x4) See CoreSight Architecture Specification |
| io_ro_32 dwt_pidr4; |
| |
| _REG_(M33_DWT_PIDR5_OFFSET) // M33_DWT_PIDR5 |
| // Provides CoreSight discovery information for the DWT |
| // 0x00000000 [31:0] DWT_PIDR5 (0x00000000) |
| io_rw_32 dwt_pidr5; |
| |
| _REG_(M33_DWT_PIDR6_OFFSET) // M33_DWT_PIDR6 |
| // Provides CoreSight discovery information for the DWT |
| // 0x00000000 [31:0] DWT_PIDR6 (0x00000000) |
| io_rw_32 dwt_pidr6; |
| |
| _REG_(M33_DWT_PIDR7_OFFSET) // M33_DWT_PIDR7 |
| // Provides CoreSight discovery information for the DWT |
| // 0x00000000 [31:0] DWT_PIDR7 (0x00000000) |
| io_rw_32 dwt_pidr7; |
| |
| _REG_(M33_DWT_PIDR0_OFFSET) // M33_DWT_PIDR0 |
| // Provides CoreSight discovery information for the DWT |
| // 0x000000ff [7:0] PART_0 (0x21) See CoreSight Architecture Specification |
| io_ro_32 dwt_pidr0; |
| |
| _REG_(M33_DWT_PIDR1_OFFSET) // M33_DWT_PIDR1 |
| // Provides CoreSight discovery information for the DWT |
| // 0x000000f0 [7:4] DES_0 (0xb) See CoreSight Architecture Specification |
| // 0x0000000f [3:0] PART_1 (0xd) See CoreSight Architecture Specification |
| io_ro_32 dwt_pidr1; |
| |
| _REG_(M33_DWT_PIDR2_OFFSET) // M33_DWT_PIDR2 |
| // Provides CoreSight discovery information for the DWT |
| // 0x000000f0 [7:4] REVISION (0x0) See CoreSight Architecture Specification |
| // 0x00000008 [3] JEDEC (1) See CoreSight Architecture Specification |
| // 0x00000007 [2:0] DES_1 (0x3) See CoreSight Architecture Specification |
| io_ro_32 dwt_pidr2; |
| |
| _REG_(M33_DWT_PIDR3_OFFSET) // M33_DWT_PIDR3 |
| // Provides CoreSight discovery information for the DWT |
| // 0x000000f0 [7:4] REVAND (0x0) See CoreSight Architecture Specification |
| // 0x0000000f [3:0] CMOD (0x0) See CoreSight Architecture Specification |
| io_ro_32 dwt_pidr3; |
| |
| // (Description copied from array index 0 register M33_DWT_CIDR0 applies similarly to other array indexes) |
| _REG_(M33_DWT_CIDR0_OFFSET) // M33_DWT_CIDR0 |
| // Provides CoreSight discovery information for the DWT |
| // 0x000000ff [7:0] PRMBL_0 (0x0d) See CoreSight Architecture Specification |
| io_ro_32 dwt_cidr[4]; |
| |
| _REG_(M33_FP_CTRL_OFFSET) // M33_FP_CTRL |
| // Provides FPB implementation information, and the global enable for the FPB unit |
| // 0xf0000000 [31:28] REV (0x6) Flash Patch and Breakpoint Unit architecture revision |
| // 0x00007000 [14:12] NUM_CODE_14_12_ (0x5) Indicates the number of implemented instruction address... |
| // 0x00000f00 [11:8] NUM_LIT (0x5) Indicates the number of implemented literal address comparators |
| // 0x000000f0 [7:4] NUM_CODE_7_4_ (0x8) Indicates the number of implemented instruction address... |
| // 0x00000002 [1] KEY (0) Writes to the FP_CTRL are ignored unless KEY is... |
| // 0x00000001 [0] ENABLE (0) Enables the FPB |
| io_rw_32 fp_ctrl; |
| |
| _REG_(M33_FP_REMAP_OFFSET) // M33_FP_REMAP |
| // Indicates whether the implementation supports Flash Patch remap and, if it does, holds the... |
| // 0x20000000 [29] RMPSPT (0) Indicates whether the FPB unit supports the Flash Patch... |
| // 0x1fffffe0 [28:5] REMAP (0x000000) Holds the bits[28:5] of the Flash Patch remap address |
| io_ro_32 fp_remap; |
| |
| // (Description copied from array index 0 register M33_FP_COMP0 applies similarly to other array indexes) |
| _REG_(M33_FP_COMP0_OFFSET) // M33_FP_COMP0 |
| // Holds an address for comparison |
| // 0x00000001 [0] BE (0) Selects between flashpatch and breakpoint functionality |
| io_rw_32 fp_comp[8]; |
| |
| uint32_t _pad20[997]; |
| |
| _REG_(M33_FP_DEVARCH_OFFSET) // M33_FP_DEVARCH |
| // Provides CoreSight discovery information for the FPB |
| // 0xffe00000 [31:21] ARCHITECT (0x23b) Defines the architect of the component |
| // 0x00100000 [20] PRESENT (1) Defines that the DEVARCH register is present |
| // 0x000f0000 [19:16] REVISION (0x0) Defines the architecture revision of the component |
| // 0x0000f000 [15:12] ARCHVER (0x1) Defines the architecture version of the component |
| // 0x00000fff [11:0] ARCHPART (0xa03) Defines the architecture of the component |
| io_ro_32 fp_devarch; |
| |
| uint32_t _pad21[3]; |
| |
| _REG_(M33_FP_DEVTYPE_OFFSET) // M33_FP_DEVTYPE |
| // Provides CoreSight discovery information for the FPB |
| // 0x000000f0 [7:4] SUB (0x0) Component sub-type |
| // 0x0000000f [3:0] MAJOR (0x0) Component major type |
| io_ro_32 fp_devtype; |
| |
| _REG_(M33_FP_PIDR4_OFFSET) // M33_FP_PIDR4 |
| // Provides CoreSight discovery information for the FP |
| // 0x000000f0 [7:4] SIZE (0x0) See CoreSight Architecture Specification |
| // 0x0000000f [3:0] DES_2 (0x4) See CoreSight Architecture Specification |
| io_ro_32 fp_pidr4; |
| |
| _REG_(M33_FP_PIDR5_OFFSET) // M33_FP_PIDR5 |
| // Provides CoreSight discovery information for the FP |
| // 0x00000000 [31:0] FP_PIDR5 (0x00000000) |
| io_rw_32 fp_pidr5; |
| |
| _REG_(M33_FP_PIDR6_OFFSET) // M33_FP_PIDR6 |
| // Provides CoreSight discovery information for the FP |
| // 0x00000000 [31:0] FP_PIDR6 (0x00000000) |
| io_rw_32 fp_pidr6; |
| |
| _REG_(M33_FP_PIDR7_OFFSET) // M33_FP_PIDR7 |
| // Provides CoreSight discovery information for the FP |
| // 0x00000000 [31:0] FP_PIDR7 (0x00000000) |
| io_rw_32 fp_pidr7; |
| |
| _REG_(M33_FP_PIDR0_OFFSET) // M33_FP_PIDR0 |
| // Provides CoreSight discovery information for the FP |
| // 0x000000ff [7:0] PART_0 (0x21) See CoreSight Architecture Specification |
| io_ro_32 fp_pidr0; |
| |
| _REG_(M33_FP_PIDR1_OFFSET) // M33_FP_PIDR1 |
| // Provides CoreSight discovery information for the FP |
| // 0x000000f0 [7:4] DES_0 (0xb) See CoreSight Architecture Specification |
| // 0x0000000f [3:0] PART_1 (0xd) See CoreSight Architecture Specification |
| io_ro_32 fp_pidr1; |
| |
| _REG_(M33_FP_PIDR2_OFFSET) // M33_FP_PIDR2 |
| // Provides CoreSight discovery information for the FP |
| // 0x000000f0 [7:4] REVISION (0x0) See CoreSight Architecture Specification |
| // 0x00000008 [3] JEDEC (1) See CoreSight Architecture Specification |
| // 0x00000007 [2:0] DES_1 (0x3) See CoreSight Architecture Specification |
| io_ro_32 fp_pidr2; |
| |
| _REG_(M33_FP_PIDR3_OFFSET) // M33_FP_PIDR3 |
| // Provides CoreSight discovery information for the FP |
| // 0x000000f0 [7:4] REVAND (0x0) See CoreSight Architecture Specification |
| // 0x0000000f [3:0] CMOD (0x0) See CoreSight Architecture Specification |
| io_ro_32 fp_pidr3; |
| |
| // (Description copied from array index 0 register M33_FP_CIDR0 applies similarly to other array indexes) |
| _REG_(M33_FP_CIDR0_OFFSET) // M33_FP_CIDR0 |
| // Provides CoreSight discovery information for the FP |
| // 0x000000ff [7:0] PRMBL_0 (0x0d) See CoreSight Architecture Specification |
| io_ro_32 fp_cidr[4]; |
| |
| uint32_t _pad22[11265]; |
| |
| _REG_(M33_ICTR_OFFSET) // M33_ICTR |
| // Provides information about the interrupt controller |
| // 0x0000000f [3:0] INTLINESNUM (0x1) Indicates the number of the highest implemented register... |
| io_ro_32 ictr; |
| |
| _REG_(M33_ACTLR_OFFSET) // M33_ACTLR |
| // Provides IMPLEMENTATION DEFINED configuration and control options |
| // 0x20000000 [29] EXTEXCLALL (0) External Exclusives Allowed with no MPU |
| // 0x00001000 [12] DISITMATBFLUSH (0) Disable ATB Flush |
| // 0x00000400 [10] FPEXCODIS (0) Disable FPU exception outputs |
| // 0x00000200 [9] DISOOFP (0) Disable out-of-order FP instruction completion |
| // 0x00000004 [2] DISFOLD (0) Disable dual-issue |
| // 0x00000001 [0] DISMCYCINT (0) Disable dual-issue |
| io_rw_32 actlr; |
| |
| uint32_t _pad23; |
| |
| _REG_(M33_SYST_CSR_OFFSET) // M33_SYST_CSR |
| // SysTick Control and Status Register |
| // 0x00010000 [16] COUNTFLAG (0) Returns 1 if timer counted to 0 since last time this was read |
| // 0x00000004 [2] CLKSOURCE (0) SysTick clock source |
| // 0x00000002 [1] TICKINT (0) Enables SysTick exception request: + |
| // 0x00000001 [0] ENABLE (0) Enable SysTick counter: + |
| io_rw_32 syst_csr; |
| |
| _REG_(M33_SYST_RVR_OFFSET) // M33_SYST_RVR |
| // SysTick Reload Value Register |
| // 0x00ffffff [23:0] RELOAD (0x000000) Value to load into the SysTick Current Value Register... |
| io_rw_32 syst_rvr; |
| |
| _REG_(M33_SYST_CVR_OFFSET) // M33_SYST_CVR |
| // SysTick Current Value Register |
| // 0x00ffffff [23:0] CURRENT (0x000000) Reads return the current value of the SysTick counter |
| io_rw_32 syst_cvr; |
| |
| _REG_(M33_SYST_CALIB_OFFSET) // M33_SYST_CALIB |
| // SysTick Calibration Value Register |
| // 0x80000000 [31] NOREF (0) If reads as 1, the Reference clock is not provided - the... |
| // 0x40000000 [30] SKEW (0) If reads as 1, the calibration value for 10ms is inexact... |
| // 0x00ffffff [23:0] TENMS (0x000000) An optional Reload value to be used for 10ms (100Hz)... |
| io_ro_32 syst_calib; |
| |
| uint32_t _pad24[56]; |
| |
| // (Description copied from array index 0 register M33_NVIC_ISER0 applies similarly to other array indexes) |
| _REG_(M33_NVIC_ISER0_OFFSET) // M33_NVIC_ISER0 |
| // Enables or reads the enabled state of each group of 32 interrupts |
| // 0xffffffff [31:0] SETENA (0x00000000) For SETENA[m] in NVIC_ISER*n, indicates whether... |
| io_rw_32 nvic_iser[2]; |
| |
| uint32_t _pad25[30]; |
| |
| // (Description copied from array index 0 register M33_NVIC_ICER0 applies similarly to other array indexes) |
| _REG_(M33_NVIC_ICER0_OFFSET) // M33_NVIC_ICER0 |
| // Clears or reads the enabled state of each group of 32 interrupts |
| // 0xffffffff [31:0] CLRENA (0x00000000) For CLRENA[m] in NVIC_ICER*n, indicates whether... |
| io_rw_32 nvic_icer[2]; |
| |
| uint32_t _pad26[30]; |
| |
| // (Description copied from array index 0 register M33_NVIC_ISPR0 applies similarly to other array indexes) |
| _REG_(M33_NVIC_ISPR0_OFFSET) // M33_NVIC_ISPR0 |
| // Enables or reads the pending state of each group of 32 interrupts |
| // 0xffffffff [31:0] SETPEND (0x00000000) For SETPEND[m] in NVIC_ISPR*n, indicates whether... |
| io_rw_32 nvic_ispr[2]; |
| |
| uint32_t _pad27[30]; |
| |
| // (Description copied from array index 0 register M33_NVIC_ICPR0 applies similarly to other array indexes) |
| _REG_(M33_NVIC_ICPR0_OFFSET) // M33_NVIC_ICPR0 |
| // Clears or reads the pending state of each group of 32 interrupts |
| // 0xffffffff [31:0] CLRPEND (0x00000000) For CLRPEND[m] in NVIC_ICPR*n, indicates whether... |
| io_rw_32 nvic_icpr[2]; |
| |
| uint32_t _pad28[30]; |
| |
| // (Description copied from array index 0 register M33_NVIC_IABR0 applies similarly to other array indexes) |
| _REG_(M33_NVIC_IABR0_OFFSET) // M33_NVIC_IABR0 |
| // For each group of 32 interrupts, shows the active state of each interrupt |
| // 0xffffffff [31:0] ACTIVE (0x00000000) For ACTIVE[m] in NVIC_IABR*n, indicates the active state... |
| io_rw_32 nvic_iabr[2]; |
| |
| uint32_t _pad29[30]; |
| |
| // (Description copied from array index 0 register M33_NVIC_ITNS0 applies similarly to other array indexes) |
| _REG_(M33_NVIC_ITNS0_OFFSET) // M33_NVIC_ITNS0 |
| // For each group of 32 interrupts, determines whether each interrupt targets Non-secure or Secure state |
| // 0xffffffff [31:0] ITNS (0x00000000) For ITNS[m] in NVIC_ITNS*n, `IAAMO the target Security... |
| io_rw_32 nvic_itns[2]; |
| |
| uint32_t _pad30[30]; |
| |
| // (Description copied from array index 0 register M33_NVIC_IPR0 applies similarly to other array indexes) |
| _REG_(M33_NVIC_IPR0_OFFSET) // M33_NVIC_IPR0 |
| // Sets or reads interrupt priorities |
| // 0xf0000000 [31:28] PRI_N3 (0x0) For register NVIC_IPRn, the priority of interrupt number... |
| // 0x00f00000 [23:20] PRI_N2 (0x0) For register NVIC_IPRn, the priority of interrupt number... |
| // 0x0000f000 [15:12] PRI_N1 (0x0) For register NVIC_IPRn, the priority of interrupt number... |
| // 0x000000f0 [7:4] PRI_N0 (0x0) For register NVIC_IPRn, the priority of interrupt number... |
| io_rw_32 nvic_ipr[16]; |
| |
| uint32_t _pad31[560]; |
| |
| _REG_(M33_CPUID_OFFSET) // M33_CPUID |
| // Provides identification information for the PE, including an implementer code for the device and... |
| // 0xff000000 [31:24] IMPLEMENTER (0x41) This field must hold an implementer code that has been... |
| // 0x00f00000 [23:20] VARIANT (0x1) IMPLEMENTATION DEFINED variant number |
| // 0x000f0000 [19:16] ARCHITECTURE (0xf) Defines the Architecture implemented by the PE |
| // 0x0000fff0 [15:4] PARTNO (0xd21) IMPLEMENTATION DEFINED primary part number for the device |
| // 0x0000000f [3:0] REVISION (0x0) IMPLEMENTATION DEFINED revision number for the device |
| io_ro_32 cpuid; |
| |
| _REG_(M33_ICSR_OFFSET) // M33_ICSR |
| // Controls and provides status information for NMI, PendSV, SysTick and interrupts |
| // 0x80000000 [31] PENDNMISET (0) Indicates whether the NMI exception is pending |
| // 0x40000000 [30] PENDNMICLR (0) Allows the NMI exception pend state to be cleared |
| // 0x10000000 [28] PENDSVSET (0) Indicates whether the PendSV `FTSSS exception is pending |
| // 0x08000000 [27] PENDSVCLR (0) Allows the PendSV exception pend state to be cleared `FTSSS |
| // 0x04000000 [26] PENDSTSET (0) Indicates whether the SysTick `FTSSS exception is pending |
| // 0x02000000 [25] PENDSTCLR (0) Allows the SysTick exception pend state to be cleared `FTSSS |
| // 0x01000000 [24] STTNS (0) Controls whether in a single SysTick implementation, the... |
| // 0x00800000 [23] ISRPREEMPT (0) Indicates whether a pending exception will be serviced... |
| // 0x00400000 [22] ISRPENDING (0) Indicates whether an external interrupt, generated by... |
| // 0x001ff000 [20:12] VECTPENDING (0x000) The exception number of the highest priority pending and... |
| // 0x00000800 [11] RETTOBASE (0) In Handler mode, indicates whether there is more than... |
| // 0x000001ff [8:0] VECTACTIVE (0x000) The exception number of the current executing exception |
| io_rw_32 icsr; |
| |
| _REG_(M33_VTOR_OFFSET) // M33_VTOR |
| // Vector Table Offset Register |
| // 0xffffff80 [31:7] TBLOFF (0x0000000) Vector table base offset field |
| io_rw_32 vtor; |
| |
| _REG_(M33_AIRCR_OFFSET) // M33_AIRCR |
| // Application Interrupt and Reset Control Register |
| // 0xffff0000 [31:16] VECTKEY (0x0000) Register key: + |
| // 0x00008000 [15] ENDIANESS (0) Data endianness implemented: + |
| // 0x00004000 [14] PRIS (0) Prioritize Secure exceptions |
| // 0x00002000 [13] BFHFNMINS (0) BusFault, HardFault, and NMI Non-secure enable |
| // 0x00000700 [10:8] PRIGROUP (0x0) Interrupt priority grouping field |
| // 0x00000008 [3] SYSRESETREQS (0) System reset request, Secure state only |
| // 0x00000004 [2] SYSRESETREQ (0) Writing 1 to this bit causes the SYSRESETREQ signal to... |
| // 0x00000002 [1] VECTCLRACTIVE (0) Clears all active state information for fixed and... |
| io_rw_32 aircr; |
| |
| _REG_(M33_SCR_OFFSET) // M33_SCR |
| // System Control Register |
| // 0x00000010 [4] SEVONPEND (0) Send Event on Pending bit: + |
| // 0x00000008 [3] SLEEPDEEPS (0) 0 SLEEPDEEP is available to both security states + |
| // 0x00000004 [2] SLEEPDEEP (0) Controls whether the processor uses sleep or deep sleep... |
| // 0x00000002 [1] SLEEPONEXIT (0) Indicates sleep-on-exit when returning from Handler mode... |
| io_rw_32 scr; |
| |
| _REG_(M33_CCR_OFFSET) // M33_CCR |
| // Sets or returns configuration and control data |
| // 0x00040000 [18] BP (0) Enables program flow prediction `FTSSS |
| // 0x00020000 [17] IC (0) This is a global enable bit for instruction caches in... |
| // 0x00010000 [16] DC (0) Enables data caching of all data accesses to Normal memory `FTSSS |
| // 0x00000400 [10] STKOFHFNMIGN (0) Controls the effect of a stack limit violation while... |
| // 0x00000200 [9] RES1 (1) Reserved, RES1 |
| // 0x00000100 [8] BFHFNMIGN (0) Determines the effect of precise BusFaults on handlers... |
| // 0x00000010 [4] DIV_0_TRP (0) Controls the generation of a DIVBYZERO UsageFault when... |
| // 0x00000008 [3] UNALIGN_TRP (0) Controls the trapping of unaligned word or halfword accesses |
| // 0x00000002 [1] USERSETMPEND (0) Determines whether unprivileged accesses are permitted... |
| // 0x00000001 [0] RES1_1 (1) Reserved, RES1 |
| io_rw_32 ccr; |
| |
| // (Description copied from array index 0 register M33_SHPR1 applies similarly to other array indexes) |
| _REG_(M33_SHPR1_OFFSET) // M33_SHPR1 |
| // Sets or returns priority for system handlers 4 - 7 |
| // 0xe0000000 [31:29] PRI_7_3 (0x0) Priority of system handler 7, SecureFault |
| // 0x00e00000 [23:21] PRI_6_3 (0x0) Priority of system handler 6, SecureFault |
| // 0x0000e000 [15:13] PRI_5_3 (0x0) Priority of system handler 5, SecureFault |
| // 0x000000e0 [7:5] PRI_4_3 (0x0) Priority of system handler 4, SecureFault |
| io_rw_32 shpr[3]; |
| |
| _REG_(M33_SHCSR_OFFSET) // M33_SHCSR |
| // Provides access to the active and pending status of system exceptions |
| // 0x00200000 [21] HARDFAULTPENDED (0) `IAAMO the pending state of the HardFault exception `CTTSSS |
| // 0x00100000 [20] SECUREFAULTPENDED (0) `IAAMO the pending state of the SecureFault exception |
| // 0x00080000 [19] SECUREFAULTENA (0) `DW the SecureFault exception is enabled |
| // 0x00040000 [18] USGFAULTENA (0) `DW the UsageFault exception is enabled `FTSSS |
| // 0x00020000 [17] BUSFAULTENA (0) `DW the BusFault exception is enabled |
| // 0x00010000 [16] MEMFAULTENA (0) `DW the MemManage exception is enabled `FTSSS |
| // 0x00008000 [15] SVCALLPENDED (0) `IAAMO the pending state of the SVCall exception `FTSSS |
| // 0x00004000 [14] BUSFAULTPENDED (0) `IAAMO the pending state of the BusFault exception |
| // 0x00002000 [13] MEMFAULTPENDED (0) `IAAMO the pending state of the MemManage exception `FTSSS |
| // 0x00001000 [12] USGFAULTPENDED (0) The UsageFault exception is banked between Security... |
| // 0x00000800 [11] SYSTICKACT (0) `IAAMO the active state of the SysTick exception `FTSSS |
| // 0x00000400 [10] PENDSVACT (0) `IAAMO the active state of the PendSV exception `FTSSS |
| // 0x00000100 [8] MONITORACT (0) `IAAMO the active state of the DebugMonitor exception |
| // 0x00000080 [7] SVCALLACT (0) `IAAMO the active state of the SVCall exception `FTSSS |
| // 0x00000020 [5] NMIACT (0) `IAAMO the active state of the NMI exception |
| // 0x00000010 [4] SECUREFAULTACT (0) `IAAMO the active state of the SecureFault exception |
| // 0x00000008 [3] USGFAULTACT (0) `IAAMO the active state of the UsageFault exception `FTSSS |
| // 0x00000004 [2] HARDFAULTACT (0) Indicates and allows limited modification of the active... |
| // 0x00000002 [1] BUSFAULTACT (0) `IAAMO the active state of the BusFault exception |
| // 0x00000001 [0] MEMFAULTACT (0) `IAAMO the active state of the MemManage exception `FTSSS |
| io_rw_32 shcsr; |
| |
| _REG_(M33_CFSR_OFFSET) // M33_CFSR |
| // Contains the three Configurable Fault Status Registers |
| // 0x02000000 [25] UFSR_DIVBYZERO (0) Sticky flag indicating whether an integer division by... |
| // 0x01000000 [24] UFSR_UNALIGNED (0) Sticky flag indicating whether an unaligned access error... |
| // 0x00100000 [20] UFSR_STKOF (0) Sticky flag indicating whether a stack overflow error... |
| // 0x00080000 [19] UFSR_NOCP (0) Sticky flag indicating whether a coprocessor disabled or... |
| // 0x00040000 [18] UFSR_INVPC (0) Sticky flag indicating whether an integrity check error... |
| // 0x00020000 [17] UFSR_INVSTATE (0) Sticky flag indicating whether an EPSR |
| // 0x00010000 [16] UFSR_UNDEFINSTR (0) Sticky flag indicating whether an undefined instruction... |
| // 0x00008000 [15] BFSR_BFARVALID (0) Indicates validity of the contents of the BFAR register |
| // 0x00002000 [13] BFSR_LSPERR (0) Records whether a BusFault occurred during FP lazy state... |
| // 0x00001000 [12] BFSR_STKERR (0) Records whether a derived BusFault occurred during... |
| // 0x00000800 [11] BFSR_UNSTKERR (0) Records whether a derived BusFault occurred during... |
| // 0x00000400 [10] BFSR_IMPRECISERR (0) Records whether an imprecise data access error has occurred |
| // 0x00000200 [9] BFSR_PRECISERR (0) Records whether a precise data access error has occurred |
| // 0x00000100 [8] BFSR_IBUSERR (0) Records whether a BusFault on an instruction prefetch... |
| // 0x000000ff [7:0] MMFSR (0x00) Provides information on MemManage exceptions |
| io_rw_32 cfsr; |
| |
| _REG_(M33_HFSR_OFFSET) // M33_HFSR |
| // Shows the cause of any HardFaults |
| // 0x80000000 [31] DEBUGEVT (0) Indicates when a Debug event has occurred |
| // 0x40000000 [30] FORCED (0) Indicates that a fault with configurable priority has... |
| // 0x00000002 [1] VECTTBL (0) Indicates when a fault has occurred because of a vector... |
| io_rw_32 hfsr; |
| |
| _REG_(M33_DFSR_OFFSET) // M33_DFSR |
| // Shows which debug event occurred |
| // 0x00000010 [4] EXTERNAL (0) Sticky flag indicating whether an External debug request... |
| // 0x00000008 [3] VCATCH (0) Sticky flag indicating whether a Vector catch debug... |
| // 0x00000004 [2] DWTTRAP (0) Sticky flag indicating whether a Watchpoint debug event... |
| // 0x00000002 [1] BKPT (0) Sticky flag indicating whether a Breakpoint debug event... |
| // 0x00000001 [0] HALTED (0) Sticky flag indicating that a Halt request debug event... |
| io_rw_32 dfsr; |
| |
| _REG_(M33_MMFAR_OFFSET) // M33_MMFAR |
| // Shows the address of the memory location that caused an MPU fault |
| // 0xffffffff [31:0] ADDRESS (0x00000000) This register is updated with the address of a location... |
| io_rw_32 mmfar; |
| |
| _REG_(M33_BFAR_OFFSET) // M33_BFAR |
| // Shows the address associated with a precise data access BusFault |
| // 0xffffffff [31:0] ADDRESS (0x00000000) This register is updated with the address of a location... |
| io_rw_32 bfar; |
| |
| uint32_t _pad32; |
| |
| // (Description copied from array index 0 register M33_ID_PFR0 applies similarly to other array indexes) |
| _REG_(M33_ID_PFR0_OFFSET) // M33_ID_PFR0 |
| // Gives top-level information about the instruction set supported by the PE |
| // 0x000000f0 [7:4] STATE1 (0x3) T32 instruction set support |
| // 0x0000000f [3:0] STATE0 (0x0) A32 instruction set support |
| io_ro_32 id_pfr[2]; |
| |
| _REG_(M33_ID_DFR0_OFFSET) // M33_ID_DFR0 |
| // Provides top level information about the debug system |
| // 0x00f00000 [23:20] MPROFDBG (0x2) Indicates the supported M-profile debug architecture |
| io_ro_32 id_dfr0; |
| |
| _REG_(M33_ID_AFR0_OFFSET) // M33_ID_AFR0 |
| // Provides information about the IMPLEMENTATION DEFINED features of the PE |
| // 0x0000f000 [15:12] IMPDEF3 (0x0) IMPLEMENTATION DEFINED meaning |
| // 0x00000f00 [11:8] IMPDEF2 (0x0) IMPLEMENTATION DEFINED meaning |
| // 0x000000f0 [7:4] IMPDEF1 (0x0) IMPLEMENTATION DEFINED meaning |
| // 0x0000000f [3:0] IMPDEF0 (0x0) IMPLEMENTATION DEFINED meaning |
| io_ro_32 id_afr0; |
| |
| // (Description copied from array index 0 register M33_ID_MMFR0 applies similarly to other array indexes) |
| _REG_(M33_ID_MMFR0_OFFSET) // M33_ID_MMFR0 |
| // Provides information about the implemented memory model and memory management support |
| // 0x00f00000 [23:20] AUXREG (0x1) Indicates support for Auxiliary Control Registers |
| // 0x000f0000 [19:16] TCM (0x0) Indicates support for tightly coupled memories (TCMs) |
| // 0x0000f000 [15:12] SHARELVL (0x1) Indicates the number of shareability levels implemented |
| // 0x00000f00 [11:8] OUTERSHR (0xf) Indicates the outermost shareability domain implemented |
| // 0x000000f0 [7:4] PMSA (0x4) Indicates support for the protected memory system... |
| io_ro_32 id_mmfr[4]; |
| |
| // (Description copied from array index 0 register M33_ID_ISAR0 applies similarly to other array indexes) |
| _REG_(M33_ID_ISAR0_OFFSET) // M33_ID_ISAR0 |
| // Provides information about the instruction set implemented by the PE |
| // 0x0f000000 [27:24] DIVIDE (0x8) Indicates the supported Divide instructions |
| // 0x00f00000 [23:20] DEBUG (0x0) Indicates the implemented Debug instructions |
| // 0x000f0000 [19:16] COPROC (0x9) Indicates the supported Coprocessor instructions |
| // 0x0000f000 [15:12] CMPBRANCH (0x2) Indicates the supported combined Compare and Branch instructions |
| // 0x00000f00 [11:8] BITFIELD (0x3) Indicates the supported bit field instructions |
| // 0x000000f0 [7:4] BITCOUNT (0x0) Indicates the supported bit count instructions |
| io_ro_32 id_isar[6]; |
| |
| uint32_t _pad33; |
| |
| _REG_(M33_CTR_OFFSET) // M33_CTR |
| // Provides information about the architecture of the caches |
| // 0x80000000 [31] RES1 (1) Reserved, RES1 |
| // 0x0f000000 [27:24] CWG (0x0) Log2 of the number of words of the maximum size of... |
| // 0x00f00000 [23:20] ERG (0x0) Log2 of the number of words of the maximum size of the... |
| // 0x000f0000 [19:16] DMINLINE (0x0) Log2 of the number of words in the smallest cache line... |
| // 0x0000c000 [15:14] RES1_1 (0x3) Reserved, RES1 |
| // 0x0000000f [3:0] IMINLINE (0x0) Log2 of the number of words in the smallest cache line... |
| io_ro_32 ctr; |
| |
| uint32_t _pad34[2]; |
| |
| _REG_(M33_CPACR_OFFSET) // M33_CPACR |
| // Specifies the access privileges for coprocessors and the FP Extension |
| // 0x00c00000 [23:22] CP11 (0x0) The value in this field is ignored |
| // 0x00300000 [21:20] CP10 (0x0) Defines the access rights for the floating-point functionality |
| // 0x0000c000 [15:14] CP7 (0x0) Controls access privileges for coprocessor 7 |
| // 0x00003000 [13:12] CP6 (0x0) Controls access privileges for coprocessor 6 |
| // 0x00000c00 [11:10] CP5 (0x0) Controls access privileges for coprocessor 5 |
| // 0x00000300 [9:8] CP4 (0x0) Controls access privileges for coprocessor 4 |
| // 0x000000c0 [7:6] CP3 (0x0) Controls access privileges for coprocessor 3 |
| // 0x00000030 [5:4] CP2 (0x0) Controls access privileges for coprocessor 2 |
| // 0x0000000c [3:2] CP1 (0x0) Controls access privileges for coprocessor 1 |
| // 0x00000003 [1:0] CP0 (0x0) Controls access privileges for coprocessor 0 |
| io_rw_32 cpacr; |
| |
| _REG_(M33_NSACR_OFFSET) // M33_NSACR |
| // Defines the Non-secure access permissions for both the FP Extension and coprocessors CP0 to CP7 |
| // 0x00000800 [11] CP11 (0) Enables Non-secure access to the Floating-point Extension |
| // 0x00000400 [10] CP10 (0) Enables Non-secure access to the Floating-point Extension |
| // 0x00000080 [7] CP7 (0) Enables Non-secure access to coprocessor CP7 |
| // 0x00000040 [6] CP6 (0) Enables Non-secure access to coprocessor CP6 |
| // 0x00000020 [5] CP5 (0) Enables Non-secure access to coprocessor CP5 |
| // 0x00000010 [4] CP4 (0) Enables Non-secure access to coprocessor CP4 |
| // 0x00000008 [3] CP3 (0) Enables Non-secure access to coprocessor CP3 |
| // 0x00000004 [2] CP2 (0) Enables Non-secure access to coprocessor CP2 |
| // 0x00000002 [1] CP1 (0) Enables Non-secure access to coprocessor CP1 |
| // 0x00000001 [0] CP0 (0) Enables Non-secure access to coprocessor CP0 |
| io_rw_32 nsacr; |
| |
| _REG_(M33_MPU_TYPE_OFFSET) // M33_MPU_TYPE |
| // The MPU Type Register indicates how many regions the MPU `FTSSS supports |
| // 0x0000ff00 [15:8] DREGION (0x08) Number of regions supported by the MPU |
| // 0x00000001 [0] SEPARATE (0) Indicates support for separate instructions and data... |
| io_ro_32 mpu_type; |
| |
| _REG_(M33_MPU_CTRL_OFFSET) // M33_MPU_CTRL |
| // Enables the MPU and, when the MPU is enabled, controls whether the default memory map is enabled... |
| // 0x00000004 [2] PRIVDEFENA (0) Controls whether the default memory map is enabled for... |
| // 0x00000002 [1] HFNMIENA (0) Controls whether handlers executing with priority less... |
| // 0x00000001 [0] ENABLE (0) Enables the MPU |
| io_rw_32 mpu_ctrl; |
| |
| _REG_(M33_MPU_RNR_OFFSET) // M33_MPU_RNR |
| // Selects the region currently accessed by MPU_RBAR and MPU_RLAR |
| // 0x00000007 [2:0] REGION (0x0) Indicates the memory region accessed by MPU_RBAR and MPU_RLAR |
| io_rw_32 mpu_rnr; |
| |
| _REG_(M33_MPU_RBAR_OFFSET) // M33_MPU_RBAR |
| // Provides indirect read and write access to the base address of the currently selected MPU region `FTSSS |
| // 0xffffffe0 [31:5] BASE (0x0000000) Contains bits [31:5] of the lower inclusive limit of the... |
| // 0x00000018 [4:3] SH (0x0) Defines the Shareability domain of this region for Normal memory |
| // 0x00000006 [2:1] AP (0x0) Defines the access permissions for this region |
| // 0x00000001 [0] XN (0) Defines whether code can be executed from this region |
| io_rw_32 mpu_rbar; |
| |
| _REG_(M33_MPU_RLAR_OFFSET) // M33_MPU_RLAR |
| // Provides indirect read and write access to the limit address of the currently selected MPU region `FTSSS |
| // 0xffffffe0 [31:5] LIMIT (0x0000000) Contains bits [31:5] of the upper inclusive limit of the... |
| // 0x0000000e [3:1] ATTRINDX (0x0) Associates a set of attributes in the MPU_MAIR0 and... |
| // 0x00000001 [0] EN (0) Region enable |
| io_rw_32 mpu_rlar; |
| |
| _REG_(M33_MPU_RBAR_A1_OFFSET) // M33_MPU_RBAR_A1 |
| // Provides indirect read and write access to the base address of the MPU region selected by... |
| // 0xffffffe0 [31:5] BASE (0x0000000) Contains bits [31:5] of the lower inclusive limit of the... |
| // 0x00000018 [4:3] SH (0x0) Defines the Shareability domain of this region for Normal memory |
| // 0x00000006 [2:1] AP (0x0) Defines the access permissions for this region |
| // 0x00000001 [0] XN (0) Defines whether code can be executed from this region |
| io_rw_32 mpu_rbar_a1; |
| |
| _REG_(M33_MPU_RLAR_A1_OFFSET) // M33_MPU_RLAR_A1 |
| // Provides indirect read and write access to the limit address of the currently selected MPU... |
| // 0xffffffe0 [31:5] LIMIT (0x0000000) Contains bits [31:5] of the upper inclusive limit of the... |
| // 0x0000000e [3:1] ATTRINDX (0x0) Associates a set of attributes in the MPU_MAIR0 and... |
| // 0x00000001 [0] EN (0) Region enable |
| io_rw_32 mpu_rlar_a1; |
| |
| _REG_(M33_MPU_RBAR_A2_OFFSET) // M33_MPU_RBAR_A2 |
| // Provides indirect read and write access to the base address of the MPU region selected by... |
| // 0xffffffe0 [31:5] BASE (0x0000000) Contains bits [31:5] of the lower inclusive limit of the... |
| // 0x00000018 [4:3] SH (0x0) Defines the Shareability domain of this region for Normal memory |
| // 0x00000006 [2:1] AP (0x0) Defines the access permissions for this region |
| // 0x00000001 [0] XN (0) Defines whether code can be executed from this region |
| io_rw_32 mpu_rbar_a2; |
| |
| _REG_(M33_MPU_RLAR_A2_OFFSET) // M33_MPU_RLAR_A2 |
| // Provides indirect read and write access to the limit address of the currently selected MPU... |
| // 0xffffffe0 [31:5] LIMIT (0x0000000) Contains bits [31:5] of the upper inclusive limit of the... |
| // 0x0000000e [3:1] ATTRINDX (0x0) Associates a set of attributes in the MPU_MAIR0 and... |
| // 0x00000001 [0] EN (0) Region enable |
| io_rw_32 mpu_rlar_a2; |
| |
| _REG_(M33_MPU_RBAR_A3_OFFSET) // M33_MPU_RBAR_A3 |
| // Provides indirect read and write access to the base address of the MPU region selected by... |
| // 0xffffffe0 [31:5] BASE (0x0000000) Contains bits [31:5] of the lower inclusive limit of the... |
| // 0x00000018 [4:3] SH (0x0) Defines the Shareability domain of this region for Normal memory |
| // 0x00000006 [2:1] AP (0x0) Defines the access permissions for this region |
| // 0x00000001 [0] XN (0) Defines whether code can be executed from this region |
| io_rw_32 mpu_rbar_a3; |
| |
| _REG_(M33_MPU_RLAR_A3_OFFSET) // M33_MPU_RLAR_A3 |
| // Provides indirect read and write access to the limit address of the currently selected MPU... |
| // 0xffffffe0 [31:5] LIMIT (0x0000000) Contains bits [31:5] of the upper inclusive limit of the... |
| // 0x0000000e [3:1] ATTRINDX (0x0) Associates a set of attributes in the MPU_MAIR0 and... |
| // 0x00000001 [0] EN (0) Region enable |
| io_rw_32 mpu_rlar_a3; |
| |
| uint32_t _pad35; |
| |
| // (Description copied from array index 0 register M33_MPU_MAIR0 applies similarly to other array indexes) |
| _REG_(M33_MPU_MAIR0_OFFSET) // M33_MPU_MAIR0 |
| // Along with MPU_MAIR1, provides the memory attribute encodings corresponding to the AttrIndex values |
| // 0xff000000 [31:24] ATTR3 (0x00) Memory attribute encoding for MPU regions with an AttrIndex of 3 |
| // 0x00ff0000 [23:16] ATTR2 (0x00) Memory attribute encoding for MPU regions with an AttrIndex of 2 |
| // 0x0000ff00 [15:8] ATTR1 (0x00) Memory attribute encoding for MPU regions with an AttrIndex of 1 |
| // 0x000000ff [7:0] ATTR0 (0x00) Memory attribute encoding for MPU regions with an AttrIndex of 0 |
| io_rw_32 mpu_mair[2]; |
| |
| uint32_t _pad36[2]; |
| |
| _REG_(M33_SAU_CTRL_OFFSET) // M33_SAU_CTRL |
| // Allows enabling of the Security Attribution Unit |
| // 0x00000002 [1] ALLNS (0) When SAU_CTRL |
| // 0x00000001 [0] ENABLE (0) Enables the SAU |
| io_rw_32 sau_ctrl; |
| |
| _REG_(M33_SAU_TYPE_OFFSET) // M33_SAU_TYPE |
| // Indicates the number of regions implemented by the Security Attribution Unit |
| // 0x000000ff [7:0] SREGION (0x08) The number of implemented SAU regions |
| io_ro_32 sau_type; |
| |
| _REG_(M33_SAU_RNR_OFFSET) // M33_SAU_RNR |
| // Selects the region currently accessed by SAU_RBAR and SAU_RLAR |
| // 0x000000ff [7:0] REGION (0x00) Indicates the SAU region accessed by SAU_RBAR and SAU_RLAR |
| io_rw_32 sau_rnr; |
| |
| _REG_(M33_SAU_RBAR_OFFSET) // M33_SAU_RBAR |
| // Provides indirect read and write access to the base address of the currently selected SAU region |
| // 0xffffffe0 [31:5] BADDR (0x0000000) Holds bits [31:5] of the base address for the selected SAU region |
| io_rw_32 sau_rbar; |
| |
| _REG_(M33_SAU_RLAR_OFFSET) // M33_SAU_RLAR |
| // Provides indirect read and write access to the limit address of the currently selected SAU region |
| // 0xffffffe0 [31:5] LADDR (0x0000000) Holds bits [31:5] of the limit address for the selected... |
| // 0x00000002 [1] NSC (0) Controls whether Non-secure state is permitted to... |
| // 0x00000001 [0] ENABLE (0) SAU region enable |
| io_rw_32 sau_rlar; |
| |
| _REG_(M33_SFSR_OFFSET) // M33_SFSR |
| // Provides information about any security related faults |
| // 0x00000080 [7] LSERR (0) Sticky flag indicating that an error occurred during... |
| // 0x00000040 [6] SFARVALID (0) This bit is set when the SFAR register contains a valid value |
| // 0x00000020 [5] LSPERR (0) Stick flag indicating that an SAU or IDAU violation... |
| // 0x00000010 [4] INVTRAN (0) Sticky flag indicating that an exception was raised due... |
| // 0x00000008 [3] AUVIOL (0) Sticky flag indicating that an attempt was made to... |
| // 0x00000004 [2] INVER (0) This can be caused by EXC_RETURN |
| // 0x00000002 [1] INVIS (0) This bit is set if the integrity signature in an... |
| // 0x00000001 [0] INVEP (0) This bit is set if a function call from the Non-secure... |
| io_rw_32 sfsr; |
| |
| _REG_(M33_SFAR_OFFSET) // M33_SFAR |
| // Shows the address of the memory location that caused a Security violation |
| // 0xffffffff [31:0] ADDRESS (0x00000000) The address of an access that caused a attribution unit violation |
| io_rw_32 sfar; |
| |
| uint32_t _pad37; |
| |
| _REG_(M33_DHCSR_OFFSET) // M33_DHCSR |
| // Controls halting debug |
| // 0x04000000 [26] S_RESTART_ST (0) Indicates the PE has processed a request to clear DHCSR |
| // 0x02000000 [25] S_RESET_ST (0) Indicates whether the PE has been reset since the last... |
| // 0x01000000 [24] S_RETIRE_ST (0) Set to 1 every time the PE retires one of more instructions |
| // 0x00100000 [20] S_SDE (0) Indicates whether Secure invasive debug is allowed |
| // 0x00080000 [19] S_LOCKUP (0) Indicates whether the PE is in Lockup state |
| // 0x00040000 [18] S_SLEEP (0) Indicates whether the PE is sleeping |
| // 0x00020000 [17] S_HALT (0) Indicates whether the PE is in Debug state |
| // 0x00010000 [16] S_REGRDY (0) Handshake flag to transfers through the DCRDR |
| // 0x00000020 [5] C_SNAPSTALL (0) Allow imprecise entry to Debug state |
| // 0x00000008 [3] C_MASKINTS (0) When debug is enabled, the debugger can write to this... |
| // 0x00000004 [2] C_STEP (0) Enable single instruction step |
| // 0x00000002 [1] C_HALT (0) PE enter Debug state halt request |
| // 0x00000001 [0] C_DEBUGEN (0) Enable Halting debug |
| io_rw_32 dhcsr; |
| |
| _REG_(M33_DCRSR_OFFSET) // M33_DCRSR |
| // With the DCRDR, provides debug access to the general-purpose registers, special-purpose... |
| // 0x00010000 [16] REGWNR (0) Specifies the access type for the transfer |
| // 0x0000007f [6:0] REGSEL (0x00) Specifies the general-purpose register, special-purpose... |
| io_rw_32 dcrsr; |
| |
| _REG_(M33_DCRDR_OFFSET) // M33_DCRDR |
| // With the DCRSR, provides debug access to the general-purpose registers, special-purpose... |
| // 0xffffffff [31:0] DBGTMP (0x00000000) Provides debug access for reading and writing the... |
| io_rw_32 dcrdr; |
| |
| _REG_(M33_DEMCR_OFFSET) // M33_DEMCR |
| // Manages vector catch behavior and DebugMonitor handling when debugging |
| // 0x01000000 [24] TRCENA (0) Global enable for all DWT and ITM features |
| // 0x00100000 [20] SDME (0) Indicates whether the DebugMonitor targets the Secure or... |
| // 0x00080000 [19] MON_REQ (0) DebugMonitor semaphore bit |
| // 0x00040000 [18] MON_STEP (0) Enable DebugMonitor stepping |
| // 0x00020000 [17] MON_PEND (0) Sets or clears the pending state of the DebugMonitor exception |
| // 0x00010000 [16] MON_EN (0) Enable the DebugMonitor exception |
| // 0x00000800 [11] VC_SFERR (0) SecureFault exception halting debug vector catch enable |
| // 0x00000400 [10] VC_HARDERR (0) HardFault exception halting debug vector catch enable |
| // 0x00000200 [9] VC_INTERR (0) Enable halting debug vector catch for faults during... |
| // 0x00000100 [8] VC_BUSERR (0) BusFault exception halting debug vector catch enable |
| // 0x00000080 [7] VC_STATERR (0) Enable halting debug trap on a UsageFault exception... |
| // 0x00000040 [6] VC_CHKERR (0) Enable halting debug trap on a UsageFault exception... |
| // 0x00000020 [5] VC_NOCPERR (0) Enable halting debug trap on a UsageFault caused by an... |
| // 0x00000010 [4] VC_MMERR (0) Enable halting debug trap on a MemManage exception |
| // 0x00000001 [0] VC_CORERESET (0) Enable Reset Vector Catch |
| io_rw_32 demcr; |
| |
| uint32_t _pad38[2]; |
| |
| _REG_(M33_DSCSR_OFFSET) // M33_DSCSR |
| // Provides control and status information for Secure debug |
| // 0x00020000 [17] CDSKEY (0) Writes to the CDS bit are ignored unless CDSKEY is... |
| // 0x00010000 [16] CDS (0) This field indicates the current Security state of the processor |
| // 0x00000002 [1] SBRSEL (0) If SBRSELEN is 1 this bit selects whether the Non-secure... |
| // 0x00000001 [0] SBRSELEN (0) Controls whether the SBRSEL field or the current... |
| io_rw_32 dscsr; |
| |
| uint32_t _pad39[61]; |
| |
| _REG_(M33_STIR_OFFSET) // M33_STIR |
| // Provides a mechanism for software to generate an interrupt |
| // 0x000001ff [8:0] INTID (0x000) Indicates the interrupt to be pended |
| io_rw_32 stir; |
| |
| uint32_t _pad40[12]; |
| |
| _REG_(M33_FPCCR_OFFSET) // M33_FPCCR |
| // Holds control data for the Floating-point extension |
| // 0x80000000 [31] ASPEN (0) When this bit is set to 1, execution of a floating-point... |
| // 0x40000000 [30] LSPEN (0) Enables lazy context save of floating-point state |
| // 0x20000000 [29] LSPENS (1) This bit controls whether the LSPEN bit is writeable... |
| // 0x10000000 [28] CLRONRET (0) Clear floating-point caller saved registers on exception return |
| // 0x08000000 [27] CLRONRETS (0) This bit controls whether the CLRONRET bit is writeable... |
| // 0x04000000 [26] TS (0) Treat floating-point registers as Secure enable |
| // 0x00000400 [10] UFRDY (1) Indicates whether the software executing when the PE... |
| // 0x00000200 [9] SPLIMVIOL (0) This bit is banked between the Security states and... |
| // 0x00000100 [8] MONRDY (0) Indicates whether the software executing when the PE... |
| // 0x00000080 [7] SFRDY (0) Indicates whether the software executing when the PE... |
| // 0x00000040 [6] BFRDY (1) Indicates whether the software executing when the PE... |
| // 0x00000020 [5] MMRDY (1) Indicates whether the software executing when the PE... |
| // 0x00000010 [4] HFRDY (1) Indicates whether the software executing when the PE... |
| // 0x00000008 [3] THREAD (0) Indicates the PE mode when it allocated the... |
| // 0x00000004 [2] S (0) Security status of the floating-point context |
| // 0x00000002 [1] USER (1) Indicates the privilege level of the software executing... |
| // 0x00000001 [0] LSPACT (0) Indicates whether lazy preservation of the... |
| io_rw_32 fpccr; |
| |
| _REG_(M33_FPCAR_OFFSET) // M33_FPCAR |
| // Holds the location of the unpopulated floating-point register space allocated on an exception stack frame |
| // 0xfffffff8 [31:3] ADDRESS (0x00000000) The location of the unpopulated floating-point register... |
| io_rw_32 fpcar; |
| |
| _REG_(M33_FPDSCR_OFFSET) // M33_FPDSCR |
| // Holds the default values for the floating-point status control data that the PE assigns to the... |
| // 0x04000000 [26] AHP (0) Default value for FPSCR |
| // 0x02000000 [25] DN (0) Default value for FPSCR |
| // 0x01000000 [24] FZ (0) Default value for FPSCR |
| // 0x00c00000 [23:22] RMODE (0x0) Default value for FPSCR |
| io_rw_32 fpdscr; |
| |
| // (Description copied from array index 0 register M33_MVFR0 applies similarly to other array indexes) |
| _REG_(M33_MVFR0_OFFSET) // M33_MVFR0 |
| // Describes the features provided by the Floating-point Extension |
| // 0xf0000000 [31:28] FPROUND (0x6) Indicates the rounding modes supported by the FP Extension |
| // 0x00f00000 [23:20] FPSQRT (0x5) Indicates the support for FP square root operations |
| // 0x000f0000 [19:16] FPDIVIDE (0x4) Indicates the support for FP divide operations |
| // 0x00000f00 [11:8] FPDP (0x6) Indicates support for FP double-precision operations |
| // 0x000000f0 [7:4] FPSP (0x0) Indicates support for FP single-precision operations |
| // 0x0000000f [3:0] SIMDREG (0x1) Indicates size of FP register file |
| io_ro_32 mvfr[3]; |
| |
| uint32_t _pad41[28]; |
| |
| _REG_(M33_DDEVARCH_OFFSET) // M33_DDEVARCH |
| // Provides CoreSight discovery information for the SCS |
| // 0xffe00000 [31:21] ARCHITECT (0x23b) Defines the architect of the component |
| // 0x00100000 [20] PRESENT (1) Defines that the DEVARCH register is present |
| // 0x000f0000 [19:16] REVISION (0x0) Defines the architecture revision of the component |
| // 0x0000f000 [15:12] ARCHVER (0x2) Defines the architecture version of the component |
| // 0x00000fff [11:0] ARCHPART (0xa04) Defines the architecture of the component |
| io_ro_32 ddevarch; |
| |
| uint32_t _pad42[3]; |
| |
| _REG_(M33_DDEVTYPE_OFFSET) // M33_DDEVTYPE |
| // Provides CoreSight discovery information for the SCS |
| // 0x000000f0 [7:4] SUB (0x0) Component sub-type |
| // 0x0000000f [3:0] MAJOR (0x0) CoreSight major type |
| io_ro_32 ddevtype; |
| |
| _REG_(M33_DPIDR4_OFFSET) // M33_DPIDR4 |
| // Provides CoreSight discovery information for the SCS |
| // 0x000000f0 [7:4] SIZE (0x0) See CoreSight Architecture Specification |
| // 0x0000000f [3:0] DES_2 (0x4) See CoreSight Architecture Specification |
| io_ro_32 dpidr4; |
| |
| _REG_(M33_DPIDR5_OFFSET) // M33_DPIDR5 |
| // Provides CoreSight discovery information for the SCS |
| // 0x00000000 [31:0] DPIDR5 (0x00000000) |
| io_rw_32 dpidr5; |
| |
| _REG_(M33_DPIDR6_OFFSET) // M33_DPIDR6 |
| // Provides CoreSight discovery information for the SCS |
| // 0x00000000 [31:0] DPIDR6 (0x00000000) |
| io_rw_32 dpidr6; |
| |
| _REG_(M33_DPIDR7_OFFSET) // M33_DPIDR7 |
| // Provides CoreSight discovery information for the SCS |
| // 0x00000000 [31:0] DPIDR7 (0x00000000) |
| io_rw_32 dpidr7; |
| |
| _REG_(M33_DPIDR0_OFFSET) // M33_DPIDR0 |
| // Provides CoreSight discovery information for the SCS |
| // 0x000000ff [7:0] PART_0 (0x21) See CoreSight Architecture Specification |
| io_ro_32 dpidr0; |
| |
| _REG_(M33_DPIDR1_OFFSET) // M33_DPIDR1 |
| // Provides CoreSight discovery information for the SCS |
| // 0x000000f0 [7:4] DES_0 (0xb) See CoreSight Architecture Specification |
| // 0x0000000f [3:0] PART_1 (0xd) See CoreSight Architecture Specification |
| io_ro_32 dpidr1; |
| |
| _REG_(M33_DPIDR2_OFFSET) // M33_DPIDR2 |
| // Provides CoreSight discovery information for the SCS |
| // 0x000000f0 [7:4] REVISION (0x0) See CoreSight Architecture Specification |
| // 0x00000008 [3] JEDEC (1) See CoreSight Architecture Specification |
| // 0x00000007 [2:0] DES_1 (0x3) See CoreSight Architecture Specification |
| io_ro_32 dpidr2; |
| |
| _REG_(M33_DPIDR3_OFFSET) // M33_DPIDR3 |
| // Provides CoreSight discovery information for the SCS |
| // 0x000000f0 [7:4] REVAND (0x0) See CoreSight Architecture Specification |
| // 0x0000000f [3:0] CMOD (0x0) See CoreSight Architecture Specification |
| io_ro_32 dpidr3; |
| |
| // (Description copied from array index 0 register M33_DCIDR0 applies similarly to other array indexes) |
| _REG_(M33_DCIDR0_OFFSET) // M33_DCIDR0 |
| // Provides CoreSight discovery information for the SCS |
| // 0x000000ff [7:0] PRMBL_0 (0x0d) See CoreSight Architecture Specification |
| io_ro_32 dcidr[4]; |
| |
| uint32_t _pad43[51201]; |
| |
| _REG_(M33_TRCPRGCTLR_OFFSET) // M33_TRCPRGCTLR |
| // Programming Control Register |
| // 0x00000001 [0] EN (0) Trace Unit Enable |
| io_rw_32 trcprgctlr; |
| |
| uint32_t _pad44; |
| |
| _REG_(M33_TRCSTATR_OFFSET) // M33_TRCSTATR |
| // The TRCSTATR indicates the ETM-Teal status |
| // 0x00000002 [1] PMSTABLE (0) Indicates whether the ETM-Teal registers are stable and... |
| // 0x00000001 [0] IDLE (0) Indicates that the trace unit is inactive |
| io_ro_32 trcstatr; |
| |
| _REG_(M33_TRCCONFIGR_OFFSET) // M33_TRCCONFIGR |
| // The TRCCONFIGR sets the basic tracing options for the trace unit |
| // 0x00001000 [12] RS (0) Return stack enable |
| // 0x00000800 [11] TS (0) Global timestamp tracing |
| // 0x000007e0 [10:5] COND (0x00) Conditional instruction tracing |
| // 0x00000010 [4] CCI (0) Cycle counting in instruction trace |
| // 0x00000008 [3] BB (0) Branch broadcast mode |
| io_rw_32 trcconfigr; |
| |
| uint32_t _pad45[3]; |
| |
| _REG_(M33_TRCEVENTCTL0R_OFFSET) // M33_TRCEVENTCTL0R |
| // The TRCEVENTCTL0R controls the tracing of events in the trace stream |
| // 0x00008000 [15] TYPE1 (0) Selects the resource type for event 1 |
| // 0x00000700 [10:8] SEL1 (0x0) Selects the resource number, based on the value of... |
| // 0x00000080 [7] TYPE0 (0) Selects the resource type for event 0 |
| // 0x00000007 [2:0] SEL0 (0x0) Selects the resource number, based on the value of... |
| io_rw_32 trceventctl0r; |
| |
| _REG_(M33_TRCEVENTCTL1R_OFFSET) // M33_TRCEVENTCTL1R |
| // The TRCEVENTCTL1R controls how the events selected by TRCEVENTCTL0R behave |
| // 0x00001000 [12] LPOVERRIDE (0) Low power state behavior override |
| // 0x00000800 [11] ATB (0) ATB enabled |
| // 0x00000002 [1] INSTEN1 (0) One bit per event, to enable generation of an event... |
| // 0x00000001 [0] INSTEN0 (0) One bit per event, to enable generation of an event... |
| io_rw_32 trceventctl1r; |
| |
| uint32_t _pad46; |
| |
| _REG_(M33_TRCSTALLCTLR_OFFSET) // M33_TRCSTALLCTLR |
| // The TRCSTALLCTLR enables ETM-Teal to stall the processor if the ETM-Teal FIFO goes over the... |
| // 0x00000400 [10] INSTPRIORITY (0) Reserved, RES0 |
| // 0x00000100 [8] ISTALL (0) Stall processor based on instruction trace buffer space |
| // 0x0000000c [3:2] LEVEL (0x0) Threshold at which stalling becomes active |
| io_rw_32 trcstallctlr; |
| |
| _REG_(M33_TRCTSCTLR_OFFSET) // M33_TRCTSCTLR |
| // The TRCTSCTLR controls the insertion of global timestamps into the trace stream |
| // 0x00000080 [7] TYPE0 (0) Selects the resource type for event 0 |
| // 0x00000003 [1:0] SEL0 (0x0) Selects the resource number, based on the value of... |
| io_rw_32 trctsctlr; |
| |
| _REG_(M33_TRCSYNCPR_OFFSET) // M33_TRCSYNCPR |
| // The TRCSYNCPR specifies the period of trace synchronization of the trace streams |
| // 0x0000001f [4:0] PERIOD (0x0a) Defines the number of bytes of trace between trace... |
| io_ro_32 trcsyncpr; |
| |
| _REG_(M33_TRCCCCTLR_OFFSET) // M33_TRCCCCTLR |
| // The TRCCCCTLR sets the threshold value for instruction trace cycle counting |
| // 0x00000fff [11:0] THRESHOLD (0x000) Instruction trace cycle count threshold |
| io_rw_32 trcccctlr; |
| |
| uint32_t _pad47[17]; |
| |
| _REG_(M33_TRCVICTLR_OFFSET) // M33_TRCVICTLR |
| // The TRCVICTLR controls instruction trace filtering |
| // 0x00080000 [19] EXLEVEL_S3 (0) In Secure state, each bit controls whether instruction... |
| // 0x00010000 [16] EXLEVEL_S0 (0) In Secure state, each bit controls whether instruction... |
| // 0x00000800 [11] TRCERR (0) Selects whether a system error exception must always be traced |
| // 0x00000400 [10] TRCRESET (0) Selects whether a reset exception must always be traced |
| // 0x00000200 [9] SSSTATUS (0) Indicates the current status of the start/stop logic |
| // 0x00000080 [7] TYPE0 (0) Selects the resource type for event 0 |
| // 0x00000003 [1:0] SEL0 (0x0) Selects the resource number, based on the value of... |
| io_rw_32 trcvictlr; |
| |
| uint32_t _pad48[47]; |
| |
| _REG_(M33_TRCCNTRLDVR0_OFFSET) // M33_TRCCNTRLDVR0 |
| // The TRCCNTRLDVR defines the reload value for the reduced function counter |
| // 0x0000ffff [15:0] VALUE (0x0000) Defines the reload value for the counter |
| io_rw_32 trccntrldvr0; |
| |
| uint32_t _pad49[15]; |
| |
| _REG_(M33_TRCIDR8_OFFSET) // M33_TRCIDR8 |
| // TRCIDR8 |
| // 0xffffffff [31:0] MAXSPEC (0x00000000) reads as `ImpDef |
| io_ro_32 trcidr8; |
| |
| _REG_(M33_TRCIDR9_OFFSET) // M33_TRCIDR9 |
| // TRCIDR9 |
| // 0xffffffff [31:0] NUMP0KEY (0x00000000) reads as `ImpDef |
| io_ro_32 trcidr9; |
| |
| _REG_(M33_TRCIDR10_OFFSET) // M33_TRCIDR10 |
| // TRCIDR10 |
| // 0xffffffff [31:0] NUMP1KEY (0x00000000) reads as `ImpDef |
| io_ro_32 trcidr10; |
| |
| _REG_(M33_TRCIDR11_OFFSET) // M33_TRCIDR11 |
| // TRCIDR11 |
| // 0xffffffff [31:0] NUMP1SPC (0x00000000) reads as `ImpDef |
| io_ro_32 trcidr11; |
| |
| _REG_(M33_TRCIDR12_OFFSET) // M33_TRCIDR12 |
| // TRCIDR12 |
| // 0xffffffff [31:0] NUMCONDKEY (0x00000001) reads as `ImpDef |
| io_ro_32 trcidr12; |
| |
| _REG_(M33_TRCIDR13_OFFSET) // M33_TRCIDR13 |
| // TRCIDR13 |
| // 0xffffffff [31:0] NUMCONDSPC (0x00000000) reads as `ImpDef |
| io_ro_32 trcidr13; |
| |
| uint32_t _pad50[10]; |
| |
| _REG_(M33_TRCIMSPEC_OFFSET) // M33_TRCIMSPEC |
| // The TRCIMSPEC shows the presence of any IMPLEMENTATION SPECIFIC features, and enables any... |
| // 0x0000000f [3:0] SUPPORT (0x0) Reserved, RES0 |
| io_ro_32 trcimspec; |
| |
| uint32_t _pad51[7]; |
| |
| _REG_(M33_TRCIDR0_OFFSET) // M33_TRCIDR0 |
| // TRCIDR0 |
| // 0x20000000 [29] COMMOPT (1) reads as `ImpDef |
| // 0x1f000000 [28:24] TSSIZE (0x08) reads as `ImpDef |
| // 0x00020000 [17] TRCEXDATA (0) reads as `ImpDef |
| // 0x00018000 [16:15] QSUPP (0x0) reads as `ImpDef |
| // 0x00004000 [14] QFILT (0) reads as `ImpDef |
| // 0x00003000 [13:12] CONDTYPE (0x0) reads as `ImpDef |
| // 0x00000c00 [11:10] NUMEVENT (0x1) reads as `ImpDef |
| // 0x00000200 [9] RETSTACK (1) reads as `ImpDef |
| // 0x00000080 [7] TRCCCI (1) reads as `ImpDef |
| // 0x00000040 [6] TRCCOND (1) reads as `ImpDef |
| // 0x00000020 [5] TRCBB (1) reads as `ImpDef |
| // 0x00000018 [4:3] TRCDATA (0x0) reads as `ImpDef |
| // 0x00000006 [2:1] INSTP0 (0x0) reads as `ImpDef |
| // 0x00000001 [0] RES1 (1) Reserved, RES1 |
| io_ro_32 trcidr0; |
| |
| _REG_(M33_TRCIDR1_OFFSET) // M33_TRCIDR1 |
| // TRCIDR1 |
| // 0xff000000 [31:24] DESIGNER (0x41) reads as `ImpDef |
| // 0x0000f000 [15:12] RES1 (0xf) Reserved, RES1 |
| // 0x00000f00 [11:8] TRCARCHMAJ (0x4) reads as 0b0100 |
| // 0x000000f0 [7:4] TRCARCHMIN (0x2) reads as 0b0000 |
| // 0x0000000f [3:0] REVISION (0x1) reads as `ImpDef |
| io_ro_32 trcidr1; |
| |
| _REG_(M33_TRCIDR2_OFFSET) // M33_TRCIDR2 |
| // TRCIDR2 |
| // 0x1e000000 [28:25] CCSIZE (0x0) reads as `ImpDef |
| // 0x01f00000 [24:20] DVSIZE (0x00) reads as `ImpDef |
| // 0x000f8000 [19:15] DASIZE (0x00) reads as `ImpDef |
| // 0x00007c00 [14:10] VMIDSIZE (0x00) reads as `ImpDef |
| // 0x000003e0 [9:5] CIDSIZE (0x00) reads as `ImpDef |
| // 0x0000001f [4:0] IASIZE (0x04) reads as `ImpDef |
| io_ro_32 trcidr2; |
| |
| _REG_(M33_TRCIDR3_OFFSET) // M33_TRCIDR3 |
| // TRCIDR3 |
| // 0x80000000 [31] NOOVERFLOW (0) reads as `ImpDef |
| // 0x70000000 [30:28] NUMPROC (0x0) reads as `ImpDef |
| // 0x08000000 [27] SYSSTALL (1) reads as `ImpDef |
| // 0x04000000 [26] STALLCTL (1) reads as `ImpDef |
| // 0x02000000 [25] SYNCPR (1) reads as `ImpDef |
| // 0x01000000 [24] TRCERR (1) reads as `ImpDef |
| // 0x00f00000 [23:20] EXLEVEL_NS (0x0) reads as `ImpDef |
| // 0x000f0000 [19:16] EXLEVEL_S (0x9) reads as `ImpDef |
| // 0x00000fff [11:0] CCITMIN (0x004) reads as `ImpDef |
| io_ro_32 trcidr3; |
| |
| _REG_(M33_TRCIDR4_OFFSET) // M33_TRCIDR4 |
| // TRCIDR4 |
| // 0xf0000000 [31:28] NUMVMIDC (0x0) reads as `ImpDef |
| // 0x0f000000 [27:24] NUMCIDC (0x0) reads as `ImpDef |
| // 0x00f00000 [23:20] NUMSSCC (0x1) reads as `ImpDef |
| // 0x000f0000 [19:16] NUMRSPAIR (0x1) reads as `ImpDef |
| // 0x0000f000 [15:12] NUMPC (0x4) reads as `ImpDef |
| // 0x00000100 [8] SUPPDAC (0) reads as `ImpDef |
| // 0x000000f0 [7:4] NUMDVC (0x0) reads as `ImpDef |
| // 0x0000000f [3:0] NUMACPAIRS (0x0) reads as `ImpDef |
| io_ro_32 trcidr4; |
| |
| _REG_(M33_TRCIDR5_OFFSET) // M33_TRCIDR5 |
| // TRCIDR5 |
| // 0x80000000 [31] REDFUNCNTR (1) reads as `ImpDef |
| // 0x70000000 [30:28] NUMCNTR (0x1) reads as `ImpDef |
| // 0x0e000000 [27:25] NUMSEQSTATE (0x0) reads as `ImpDef |
| // 0x00800000 [23] LPOVERRIDE (1) reads as `ImpDef |
| // 0x00400000 [22] ATBTRIG (1) reads as `ImpDef |
| // 0x003f0000 [21:16] TRACEIDSIZE (0x07) reads as 0x07 |
| // 0x00000e00 [11:9] NUMEXTINSEL (0x0) reads as `ImpDef |
| // 0x000001ff [8:0] NUMEXTIN (0x004) reads as `ImpDef |
| io_ro_32 trcidr5; |
| |
| _REG_(M33_TRCIDR6_OFFSET) // M33_TRCIDR6 |
| // TRCIDR6 |
| // 0x00000000 [31:0] TRCIDR6 (0x00000000) |
| io_rw_32 trcidr6; |
| |
| _REG_(M33_TRCIDR7_OFFSET) // M33_TRCIDR7 |
| // TRCIDR7 |
| // 0x00000000 [31:0] TRCIDR7 (0x00000000) |
| io_rw_32 trcidr7; |
| |
| uint32_t _pad52[2]; |
| |
| // (Description copied from array index 0 register M33_TRCRSCTLR2 applies similarly to other array indexes) |
| _REG_(M33_TRCRSCTLR2_OFFSET) // M33_TRCRSCTLR2 |
| // The TRCRSCTLR controls the trace resources |
| // 0x00200000 [21] PAIRINV (0) Inverts the result of a combined pair of resources |
| // 0x00100000 [20] INV (0) Inverts the selected resources |
| // 0x00070000 [18:16] GROUP (0x0) Selects a group of resource |
| // 0x000000ff [7:0] SELECT (0x00) Selects one or more resources from the wanted group |
| io_rw_32 trcrsctlr[2]; |
| |
| uint32_t _pad53[36]; |
| |
| _REG_(M33_TRCSSCSR_OFFSET) // M33_TRCSSCSR |
| // Controls the corresponding single-shot comparator resource |
| // 0x80000000 [31] STATUS (0) Single-shot status bit |
| // 0x00000008 [3] PC (0) Reserved, RES1 |
| // 0x00000004 [2] DV (0) Reserved, RES0 |
| // 0x00000002 [1] DA (0) Reserved, RES0 |
| // 0x00000001 [0] INST (0) Reserved, RES0 |
| io_rw_32 trcsscsr; |
| |
| uint32_t _pad54[7]; |
| |
| _REG_(M33_TRCSSPCICR_OFFSET) // M33_TRCSSPCICR |
| // Selects the PE comparator inputs for Single-shot control |
| // 0x0000000f [3:0] PC (0x0) Selects one or more PE comparator inputs for Single-shot control |
| io_rw_32 trcsspcicr; |
| |
| uint32_t _pad55[19]; |
| |
| _REG_(M33_TRCPDCR_OFFSET) // M33_TRCPDCR |
| // Requests the system to provide power to the trace unit |
| // 0x00000008 [3] PU (0) Powerup request bit: |
| io_rw_32 trcpdcr; |
| |
| _REG_(M33_TRCPDSR_OFFSET) // M33_TRCPDSR |
| // Returns the following information about the trace unit: - OS Lock status |
| // 0x00000020 [5] OSLK (0) OS Lock status bit: |
| // 0x00000002 [1] STICKYPD (1) Sticky powerdown status bit |
| // 0x00000001 [0] POWER (1) Power status bit: |
| io_ro_32 trcpdsr; |
| |
| uint32_t _pad56[755]; |
| |
| _REG_(M33_TRCITATBIDR_OFFSET) // M33_TRCITATBIDR |
| // Trace Integration ATB Identification Register |
| // 0x0000007f [6:0] ID (0x00) Trace ID |
| io_rw_32 trcitatbidr; |
| |
| uint32_t _pad57[3]; |
| |
| _REG_(M33_TRCITIATBINR_OFFSET) // M33_TRCITIATBINR |
| // Trace Integration Instruction ATB In Register |
| // 0x00000002 [1] AFVALIDM (0) Integration Mode instruction AFVALIDM in |
| // 0x00000001 [0] ATREADYM (0) Integration Mode instruction ATREADYM in |
| io_rw_32 trcitiatbinr; |
| |
| uint32_t _pad58; |
| |
| _REG_(M33_TRCITIATBOUTR_OFFSET) // M33_TRCITIATBOUTR |
| // Trace Integration Instruction ATB Out Register |
| // 0x00000002 [1] AFREADY (0) Integration Mode instruction AFREADY out |
| // 0x00000001 [0] ATVALID (0) Integration Mode instruction ATVALID out |
| io_rw_32 trcitiatboutr; |
| |
| uint32_t _pad59[40]; |
| |
| _REG_(M33_TRCCLAIMSET_OFFSET) // M33_TRCCLAIMSET |
| // Claim Tag Set Register |
| // 0x00000008 [3] SET3 (1) When a write to one of these bits occurs, with the value: |
| // 0x00000004 [2] SET2 (1) When a write to one of these bits occurs, with the value: |
| // 0x00000002 [1] SET1 (1) When a write to one of these bits occurs, with the value: |
| // 0x00000001 [0] SET0 (1) When a write to one of these bits occurs, with the value: |
| io_rw_32 trcclaimset; |
| |
| _REG_(M33_TRCCLAIMCLR_OFFSET) // M33_TRCCLAIMCLR |
| // Claim Tag Clear Register |
| // 0x00000008 [3] CLR3 (0) When a write to one of these bits occurs, with the value: |
| // 0x00000004 [2] CLR2 (0) When a write to one of these bits occurs, with the value: |
| // 0x00000002 [1] CLR1 (0) When a write to one of these bits occurs, with the value: |
| // 0x00000001 [0] CLR0 (0) When a write to one of these bits occurs, with the value: |
| io_rw_32 trcclaimclr; |
| |
| uint32_t _pad60[4]; |
| |
| _REG_(M33_TRCAUTHSTATUS_OFFSET) // M33_TRCAUTHSTATUS |
| // Returns the level of tracing that the trace unit can support |
| // 0x000000c0 [7:6] SNID (0x0) Indicates whether the system enables the trace unit to... |
| // 0x00000030 [5:4] SID (0x0) Indicates whether the trace unit supports Secure invasive debug: |
| // 0x0000000c [3:2] NSNID (0x0) Indicates whether the system enables the trace unit to... |
| // 0x00000003 [1:0] NSID (0x0) Indicates whether the trace unit supports Non-secure... |
| io_ro_32 trcauthstatus; |
| |
| _REG_(M33_TRCDEVARCH_OFFSET) // M33_TRCDEVARCH |
| // TRCDEVARCH |
| // 0xffe00000 [31:21] ARCHITECT (0x23b) reads as 0b01000111011 |
| // 0x00100000 [20] PRESENT (1) reads as 0b1 |
| // 0x000f0000 [19:16] REVISION (0x2) reads as 0b0000 |
| // 0x0000ffff [15:0] ARCHID (0x4a13) reads as 0b0100101000010011 |
| io_ro_32 trcdevarch; |
| |
| uint32_t _pad61[2]; |
| |
| _REG_(M33_TRCDEVID_OFFSET) // M33_TRCDEVID |
| // TRCDEVID |
| // 0x00000000 [31:0] TRCDEVID (0x00000000) |
| io_rw_32 trcdevid; |
| |
| _REG_(M33_TRCDEVTYPE_OFFSET) // M33_TRCDEVTYPE |
| // TRCDEVTYPE |
| // 0x000000f0 [7:4] SUB (0x1) reads as 0b0001 |
| // 0x0000000f [3:0] MAJOR (0x3) reads as 0b0011 |
| io_ro_32 trcdevtype; |
| |
| _REG_(M33_TRCPIDR4_OFFSET) // M33_TRCPIDR4 |
| // TRCPIDR4 |
| // 0x000000f0 [7:4] SIZE (0x0) reads as `ImpDef |
| // 0x0000000f [3:0] DES_2 (0x4) reads as `ImpDef |
| io_ro_32 trcpidr4; |
| |
| _REG_(M33_TRCPIDR5_OFFSET) // M33_TRCPIDR5 |
| // TRCPIDR5 |
| // 0x00000000 [31:0] TRCPIDR5 (0x00000000) |
| io_rw_32 trcpidr5; |
| |
| _REG_(M33_TRCPIDR6_OFFSET) // M33_TRCPIDR6 |
| // TRCPIDR6 |
| // 0x00000000 [31:0] TRCPIDR6 (0x00000000) |
| io_rw_32 trcpidr6; |
| |
| _REG_(M33_TRCPIDR7_OFFSET) // M33_TRCPIDR7 |
| // TRCPIDR7 |
| // 0x00000000 [31:0] TRCPIDR7 (0x00000000) |
| io_rw_32 trcpidr7; |
| |
| _REG_(M33_TRCPIDR0_OFFSET) // M33_TRCPIDR0 |
| // TRCPIDR0 |
| // 0x000000ff [7:0] PART_0 (0x21) reads as `ImpDef |
| io_ro_32 trcpidr0; |
| |
| _REG_(M33_TRCPIDR1_OFFSET) // M33_TRCPIDR1 |
| // TRCPIDR1 |
| // 0x000000f0 [7:4] DES_0 (0xb) reads as `ImpDef |
| // 0x0000000f [3:0] PART_0 (0xd) reads as `ImpDef |
| io_ro_32 trcpidr1; |
| |
| _REG_(M33_TRCPIDR2_OFFSET) // M33_TRCPIDR2 |
| // TRCPIDR2 |
| // 0x000000f0 [7:4] REVISION (0x2) reads as `ImpDef |
| // 0x00000008 [3] JEDEC (1) reads as 0b1 |
| // 0x00000007 [2:0] DES_0 (0x3) reads as `ImpDef |
| io_ro_32 trcpidr2; |
| |
| _REG_(M33_TRCPIDR3_OFFSET) // M33_TRCPIDR3 |
| // TRCPIDR3 |
| // 0x000000f0 [7:4] REVAND (0x0) reads as `ImpDef |
| // 0x0000000f [3:0] CMOD (0x0) reads as `ImpDef |
| io_ro_32 trcpidr3; |
| |
| // (Description copied from array index 0 register M33_TRCCIDR0 applies similarly to other array indexes) |
| _REG_(M33_TRCCIDR0_OFFSET) // M33_TRCCIDR0 |
| // TRCCIDR0 |
| // 0x000000ff [7:0] PRMBL_0 (0x0d) reads as 0b00001101 |
| io_ro_32 trccidr[4]; |
| |
| _REG_(M33_CTICONTROL_OFFSET) // M33_CTICONTROL |
| // CTI Control Register |
| // 0x00000001 [0] GLBEN (0) Enables or disables the CTI |
| io_rw_32 cticontrol; |
| |
| uint32_t _pad62[3]; |
| |
| _REG_(M33_CTIINTACK_OFFSET) // M33_CTIINTACK |
| // CTI Interrupt Acknowledge Register |
| // 0x000000ff [7:0] INTACK (0x00) Acknowledges the corresponding ctitrigout output |
| io_rw_32 ctiintack; |
| |
| _REG_(M33_CTIAPPSET_OFFSET) // M33_CTIAPPSET |
| // CTI Application Trigger Set Register |
| // 0x0000000f [3:0] APPSET (0x0) Setting a bit HIGH generates a channel event for the... |
| io_rw_32 ctiappset; |
| |
| _REG_(M33_CTIAPPCLEAR_OFFSET) // M33_CTIAPPCLEAR |
| // CTI Application Trigger Clear Register |
| // 0x0000000f [3:0] APPCLEAR (0x0) Sets the corresponding bits in the CTIAPPSET to 0 |
| io_rw_32 ctiappclear; |
| |
| _REG_(M33_CTIAPPPULSE_OFFSET) // M33_CTIAPPPULSE |
| // CTI Application Pulse Register |
| // 0x0000000f [3:0] APPULSE (0x0) Setting a bit HIGH generates a channel event pulse for... |
| io_rw_32 ctiapppulse; |
| |
| // (Description copied from array index 0 register M33_CTIINEN0 applies similarly to other array indexes) |
| _REG_(M33_CTIINEN0_OFFSET) // M33_CTIINEN0 |
| // CTI Trigger to Channel Enable Registers |
| // 0x0000000f [3:0] TRIGINEN (0x0) Enables a cross trigger event to the corresponding... |
| io_rw_32 ctiinen[8]; |
| |
| uint32_t _pad63[24]; |
| |
| // (Description copied from array index 0 register M33_CTIOUTEN0 applies similarly to other array indexes) |
| _REG_(M33_CTIOUTEN0_OFFSET) // M33_CTIOUTEN0 |
| // CTI Trigger to Channel Enable Registers |
| // 0x0000000f [3:0] TRIGOUTEN (0x0) Enables a cross trigger event to ctitrigout when the... |
| io_rw_32 ctiouten[8]; |
| |
| uint32_t _pad64[28]; |
| |
| _REG_(M33_CTITRIGINSTATUS_OFFSET) // M33_CTITRIGINSTATUS |
| // CTI Trigger to Channel Enable Registers |
| // 0x000000ff [7:0] TRIGINSTATUS (0x00) Shows the status of the ctitrigin inputs |
| io_ro_32 ctitriginstatus; |
| |
| _REG_(M33_CTITRIGOUTSTATUS_OFFSET) // M33_CTITRIGOUTSTATUS |
| // CTI Trigger In Status Register |
| // 0x000000ff [7:0] TRIGOUTSTATUS (0x00) Shows the status of the ctitrigout outputs |
| io_ro_32 ctitrigoutstatus; |
| |
| _REG_(M33_CTICHINSTATUS_OFFSET) // M33_CTICHINSTATUS |
| // CTI Channel In Status Register |
| // 0x0000000f [3:0] CTICHOUTSTATUS (0x0) Shows the status of the ctichout outputs |
| io_ro_32 ctichinstatus; |
| |
| uint32_t _pad65; |
| |
| _REG_(M33_CTIGATE_OFFSET) // M33_CTIGATE |
| // Enable CTI Channel Gate register |
| // 0x00000008 [3] CTIGATEEN3 (1) Enable ctichout3 |
| // 0x00000004 [2] CTIGATEEN2 (1) Enable ctichout2 |
| // 0x00000002 [1] CTIGATEEN1 (1) Enable ctichout1 |
| // 0x00000001 [0] CTIGATEEN0 (1) Enable ctichout0 |
| io_rw_32 ctigate; |
| |
| _REG_(M33_ASICCTL_OFFSET) // M33_ASICCTL |
| // External Multiplexer Control register |
| // 0x00000000 [31:0] ASICCTL (0x00000000) |
| io_rw_32 asicctl; |
| |
| uint32_t _pad66[871]; |
| |
| _REG_(M33_ITCHOUT_OFFSET) // M33_ITCHOUT |
| // Integration Test Channel Output register |
| // 0x0000000f [3:0] CTCHOUT (0x0) Sets the value of the ctichout outputs |
| io_rw_32 itchout; |
| |
| _REG_(M33_ITTRIGOUT_OFFSET) // M33_ITTRIGOUT |
| // Integration Test Trigger Output register |
| // 0x000000ff [7:0] CTTRIGOUT (0x00) Sets the value of the ctitrigout outputs |
| io_rw_32 ittrigout; |
| |
| uint32_t _pad67[2]; |
| |
| _REG_(M33_ITCHIN_OFFSET) // M33_ITCHIN |
| // Integration Test Channel Input register |
| // 0x0000000f [3:0] CTCHIN (0x0) Reads the value of the ctichin inputs |
| io_ro_32 itchin; |
| |
| uint32_t _pad68[2]; |
| |
| _REG_(M33_ITCTRL_OFFSET) // M33_ITCTRL |
| // Integration Mode Control register |
| // 0x00000001 [0] IME (0) Integration Mode Enable |
| io_rw_32 itctrl; |
| |
| uint32_t _pad69[46]; |
| |
| _REG_(M33_DEVARCH_OFFSET) // M33_DEVARCH |
| // Device Architecture register |
| // 0xffe00000 [31:21] ARCHITECT (0x23b) Indicates the component architect |
| // 0x00100000 [20] PRESENT (1) Indicates whether the DEVARCH register is present |
| // 0x000f0000 [19:16] REVISION (0x0) Indicates the architecture revision |
| // 0x0000ffff [15:0] ARCHID (0x1a14) Indicates the component |
| io_ro_32 devarch; |
| |
| uint32_t _pad70[2]; |
| |
| _REG_(M33_DEVID_OFFSET) // M33_DEVID |
| // Device Configuration register |
| // 0x000f0000 [19:16] NUMCH (0x4) Number of ECT channels available |
| // 0x0000ff00 [15:8] NUMTRIG (0x08) Number of ECT triggers available |
| // 0x0000001f [4:0] EXTMUXNUM (0x00) Indicates the number of multiplexers available on... |
| io_ro_32 devid; |
| |
| _REG_(M33_DEVTYPE_OFFSET) // M33_DEVTYPE |
| // Device Type Identifier register |
| // 0x000000f0 [7:4] SUB (0x1) Sub-classification of the type of the debug component as... |
| // 0x0000000f [3:0] MAJOR (0x4) Major classification of the type of the debug component... |
| io_ro_32 devtype; |
| |
| _REG_(M33_PIDR4_OFFSET) // M33_PIDR4 |
| // CoreSight Peripheral ID4 |
| // 0x000000f0 [7:4] SIZE (0x0) Always 0b0000 |
| // 0x0000000f [3:0] DES_2 (0x4) Together, PIDR1 |
| io_ro_32 pidr4; |
| |
| _REG_(M33_PIDR5_OFFSET) // M33_PIDR5 |
| // CoreSight Peripheral ID5 |
| // 0x00000000 [31:0] PIDR5 (0x00000000) |
| io_rw_32 pidr5; |
| |
| _REG_(M33_PIDR6_OFFSET) // M33_PIDR6 |
| // CoreSight Peripheral ID6 |
| // 0x00000000 [31:0] PIDR6 (0x00000000) |
| io_rw_32 pidr6; |
| |
| _REG_(M33_PIDR7_OFFSET) // M33_PIDR7 |
| // CoreSight Peripheral ID7 |
| // 0x00000000 [31:0] PIDR7 (0x00000000) |
| io_rw_32 pidr7; |
| |
| _REG_(M33_PIDR0_OFFSET) // M33_PIDR0 |
| // CoreSight Peripheral ID0 |
| // 0x000000ff [7:0] PART_0 (0x21) Bits[7:0] of the 12-bit part number of the component |
| io_ro_32 pidr0; |
| |
| _REG_(M33_PIDR1_OFFSET) // M33_PIDR1 |
| // CoreSight Peripheral ID1 |
| // 0x000000f0 [7:4] DES_0 (0xb) Together, PIDR1 |
| // 0x0000000f [3:0] PART_1 (0xd) Bits[11:8] of the 12-bit part number of the component |
| io_ro_32 pidr1; |
| |
| _REG_(M33_PIDR2_OFFSET) // M33_PIDR2 |
| // CoreSight Peripheral ID2 |
| // 0x000000f0 [7:4] REVISION (0x0) This device is at r1p0 |
| // 0x00000008 [3] JEDEC (1) Always 1 |
| // 0x00000007 [2:0] DES_1 (0x3) Together, PIDR1 |
| io_ro_32 pidr2; |
| |
| _REG_(M33_PIDR3_OFFSET) // M33_PIDR3 |
| // CoreSight Peripheral ID3 |
| // 0x000000f0 [7:4] REVAND (0x0) Indicates minor errata fixes specific to the revision of... |
| // 0x0000000f [3:0] CMOD (0x0) Customer Modified |
| io_ro_32 pidr3; |
| |
| // (Description copied from array index 0 register M33_CIDR0 applies similarly to other array indexes) |
| _REG_(M33_CIDR0_OFFSET) // M33_CIDR0 |
| // CoreSight Component ID0 |
| // 0x000000ff [7:0] PRMBL_0 (0x0d) Preamble[0] |
| io_ro_32 cidr[4]; |
| } m33_hw_t; |
| |
| #define m33_hw ((m33_hw_t *)PPB_BASE) |
| #define m33_ns_hw ((m33_hw_t *)PPB_NONSEC_BASE) |
| static_assert(sizeof (m33_hw_t) == 0x43000, ""); |
| |
| #endif // _HARDWARE_STRUCTS_M33_H |
| |