blob: 6366e4c3e1cbcfe058b9210bab1fe86f8fafb009 [file] [log] [blame] [edit]
/******************************************************************************
* Filename: hw_cpu_itm_h
* Revised: 2016-03-14 09:20:59 +0100 (Mon, 14 Mar 2016)
* Revision: 45924
*
* Copyright (c) 2015 - 2016, Texas Instruments Incorporated
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1) Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2) Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3) Neither the name of the ORGANIZATION nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
******************************************************************************/
#ifndef __HW_CPU_ITM_H__
#define __HW_CPU_ITM_H__
//*****************************************************************************
//
// This section defines the register offsets of
// CPU_ITM component
//
//*****************************************************************************
// Stimulus Port 0
#define CPU_ITM_O_STIM0 0x00000000
// Stimulus Port 1
#define CPU_ITM_O_STIM1 0x00000004
// Stimulus Port 2
#define CPU_ITM_O_STIM2 0x00000008
// Stimulus Port 3
#define CPU_ITM_O_STIM3 0x0000000C
// Stimulus Port 4
#define CPU_ITM_O_STIM4 0x00000010
// Stimulus Port 5
#define CPU_ITM_O_STIM5 0x00000014
// Stimulus Port 6
#define CPU_ITM_O_STIM6 0x00000018
// Stimulus Port 7
#define CPU_ITM_O_STIM7 0x0000001C
// Stimulus Port 8
#define CPU_ITM_O_STIM8 0x00000020
// Stimulus Port 9
#define CPU_ITM_O_STIM9 0x00000024
// Stimulus Port 10
#define CPU_ITM_O_STIM10 0x00000028
// Stimulus Port 11
#define CPU_ITM_O_STIM11 0x0000002C
// Stimulus Port 12
#define CPU_ITM_O_STIM12 0x00000030
// Stimulus Port 13
#define CPU_ITM_O_STIM13 0x00000034
// Stimulus Port 14
#define CPU_ITM_O_STIM14 0x00000038
// Stimulus Port 15
#define CPU_ITM_O_STIM15 0x0000003C
// Stimulus Port 16
#define CPU_ITM_O_STIM16 0x00000040
// Stimulus Port 17
#define CPU_ITM_O_STIM17 0x00000044
// Stimulus Port 18
#define CPU_ITM_O_STIM18 0x00000048
// Stimulus Port 19
#define CPU_ITM_O_STIM19 0x0000004C
// Stimulus Port 20
#define CPU_ITM_O_STIM20 0x00000050
// Stimulus Port 21
#define CPU_ITM_O_STIM21 0x00000054
// Stimulus Port 22
#define CPU_ITM_O_STIM22 0x00000058
// Stimulus Port 23
#define CPU_ITM_O_STIM23 0x0000005C
// Stimulus Port 24
#define CPU_ITM_O_STIM24 0x00000060
// Stimulus Port 25
#define CPU_ITM_O_STIM25 0x00000064
// Stimulus Port 26
#define CPU_ITM_O_STIM26 0x00000068
// Stimulus Port 27
#define CPU_ITM_O_STIM27 0x0000006C
// Stimulus Port 28
#define CPU_ITM_O_STIM28 0x00000070
// Stimulus Port 29
#define CPU_ITM_O_STIM29 0x00000074
// Stimulus Port 30
#define CPU_ITM_O_STIM30 0x00000078
// Stimulus Port 31
#define CPU_ITM_O_STIM31 0x0000007C
// Trace Enable
#define CPU_ITM_O_TER 0x00000E00
// Trace Privilege
#define CPU_ITM_O_TPR 0x00000E40
// Trace Control
#define CPU_ITM_O_TCR 0x00000E80
// Lock Access
#define CPU_ITM_O_LAR 0x00000FB0
// Lock Status
#define CPU_ITM_O_LSR 0x00000FB4
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM0
//
//*****************************************************************************
// Field: [31:0] STIM0
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA0 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM0_STIM0_W 32
#define CPU_ITM_STIM0_STIM0_M 0xFFFFFFFF
#define CPU_ITM_STIM0_STIM0_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM1
//
//*****************************************************************************
// Field: [31:0] STIM1
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA1 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM1_STIM1_W 32
#define CPU_ITM_STIM1_STIM1_M 0xFFFFFFFF
#define CPU_ITM_STIM1_STIM1_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM2
//
//*****************************************************************************
// Field: [31:0] STIM2
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA2 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM2_STIM2_W 32
#define CPU_ITM_STIM2_STIM2_M 0xFFFFFFFF
#define CPU_ITM_STIM2_STIM2_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM3
//
//*****************************************************************************
// Field: [31:0] STIM3
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA3 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM3_STIM3_W 32
#define CPU_ITM_STIM3_STIM3_M 0xFFFFFFFF
#define CPU_ITM_STIM3_STIM3_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM4
//
//*****************************************************************************
// Field: [31:0] STIM4
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA4 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM4_STIM4_W 32
#define CPU_ITM_STIM4_STIM4_M 0xFFFFFFFF
#define CPU_ITM_STIM4_STIM4_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM5
//
//*****************************************************************************
// Field: [31:0] STIM5
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA5 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM5_STIM5_W 32
#define CPU_ITM_STIM5_STIM5_M 0xFFFFFFFF
#define CPU_ITM_STIM5_STIM5_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM6
//
//*****************************************************************************
// Field: [31:0] STIM6
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA6 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM6_STIM6_W 32
#define CPU_ITM_STIM6_STIM6_M 0xFFFFFFFF
#define CPU_ITM_STIM6_STIM6_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM7
//
//*****************************************************************************
// Field: [31:0] STIM7
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA7 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM7_STIM7_W 32
#define CPU_ITM_STIM7_STIM7_M 0xFFFFFFFF
#define CPU_ITM_STIM7_STIM7_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM8
//
//*****************************************************************************
// Field: [31:0] STIM8
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA8 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM8_STIM8_W 32
#define CPU_ITM_STIM8_STIM8_M 0xFFFFFFFF
#define CPU_ITM_STIM8_STIM8_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM9
//
//*****************************************************************************
// Field: [31:0] STIM9
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA9 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM9_STIM9_W 32
#define CPU_ITM_STIM9_STIM9_M 0xFFFFFFFF
#define CPU_ITM_STIM9_STIM9_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM10
//
//*****************************************************************************
// Field: [31:0] STIM10
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA10 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM10_STIM10_W 32
#define CPU_ITM_STIM10_STIM10_M 0xFFFFFFFF
#define CPU_ITM_STIM10_STIM10_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM11
//
//*****************************************************************************
// Field: [31:0] STIM11
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA11 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM11_STIM11_W 32
#define CPU_ITM_STIM11_STIM11_M 0xFFFFFFFF
#define CPU_ITM_STIM11_STIM11_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM12
//
//*****************************************************************************
// Field: [31:0] STIM12
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA12 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM12_STIM12_W 32
#define CPU_ITM_STIM12_STIM12_M 0xFFFFFFFF
#define CPU_ITM_STIM12_STIM12_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM13
//
//*****************************************************************************
// Field: [31:0] STIM13
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA13 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM13_STIM13_W 32
#define CPU_ITM_STIM13_STIM13_M 0xFFFFFFFF
#define CPU_ITM_STIM13_STIM13_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM14
//
//*****************************************************************************
// Field: [31:0] STIM14
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA14 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM14_STIM14_W 32
#define CPU_ITM_STIM14_STIM14_M 0xFFFFFFFF
#define CPU_ITM_STIM14_STIM14_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM15
//
//*****************************************************************************
// Field: [31:0] STIM15
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA15 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM15_STIM15_W 32
#define CPU_ITM_STIM15_STIM15_M 0xFFFFFFFF
#define CPU_ITM_STIM15_STIM15_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM16
//
//*****************************************************************************
// Field: [31:0] STIM16
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA16 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM16_STIM16_W 32
#define CPU_ITM_STIM16_STIM16_M 0xFFFFFFFF
#define CPU_ITM_STIM16_STIM16_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM17
//
//*****************************************************************************
// Field: [31:0] STIM17
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA17 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM17_STIM17_W 32
#define CPU_ITM_STIM17_STIM17_M 0xFFFFFFFF
#define CPU_ITM_STIM17_STIM17_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM18
//
//*****************************************************************************
// Field: [31:0] STIM18
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA18 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM18_STIM18_W 32
#define CPU_ITM_STIM18_STIM18_M 0xFFFFFFFF
#define CPU_ITM_STIM18_STIM18_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM19
//
//*****************************************************************************
// Field: [31:0] STIM19
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA19 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM19_STIM19_W 32
#define CPU_ITM_STIM19_STIM19_M 0xFFFFFFFF
#define CPU_ITM_STIM19_STIM19_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM20
//
//*****************************************************************************
// Field: [31:0] STIM20
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA20 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM20_STIM20_W 32
#define CPU_ITM_STIM20_STIM20_M 0xFFFFFFFF
#define CPU_ITM_STIM20_STIM20_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM21
//
//*****************************************************************************
// Field: [31:0] STIM21
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA21 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM21_STIM21_W 32
#define CPU_ITM_STIM21_STIM21_M 0xFFFFFFFF
#define CPU_ITM_STIM21_STIM21_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM22
//
//*****************************************************************************
// Field: [31:0] STIM22
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA22 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM22_STIM22_W 32
#define CPU_ITM_STIM22_STIM22_M 0xFFFFFFFF
#define CPU_ITM_STIM22_STIM22_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM23
//
//*****************************************************************************
// Field: [31:0] STIM23
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA23 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM23_STIM23_W 32
#define CPU_ITM_STIM23_STIM23_M 0xFFFFFFFF
#define CPU_ITM_STIM23_STIM23_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM24
//
//*****************************************************************************
// Field: [31:0] STIM24
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA24 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM24_STIM24_W 32
#define CPU_ITM_STIM24_STIM24_M 0xFFFFFFFF
#define CPU_ITM_STIM24_STIM24_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM25
//
//*****************************************************************************
// Field: [31:0] STIM25
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA25 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM25_STIM25_W 32
#define CPU_ITM_STIM25_STIM25_M 0xFFFFFFFF
#define CPU_ITM_STIM25_STIM25_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM26
//
//*****************************************************************************
// Field: [31:0] STIM26
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA26 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM26_STIM26_W 32
#define CPU_ITM_STIM26_STIM26_M 0xFFFFFFFF
#define CPU_ITM_STIM26_STIM26_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM27
//
//*****************************************************************************
// Field: [31:0] STIM27
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA27 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM27_STIM27_W 32
#define CPU_ITM_STIM27_STIM27_M 0xFFFFFFFF
#define CPU_ITM_STIM27_STIM27_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM28
//
//*****************************************************************************
// Field: [31:0] STIM28
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA28 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM28_STIM28_W 32
#define CPU_ITM_STIM28_STIM28_M 0xFFFFFFFF
#define CPU_ITM_STIM28_STIM28_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM29
//
//*****************************************************************************
// Field: [31:0] STIM29
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA29 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM29_STIM29_W 32
#define CPU_ITM_STIM29_STIM29_M 0xFFFFFFFF
#define CPU_ITM_STIM29_STIM29_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM30
//
//*****************************************************************************
// Field: [31:0] STIM30
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA30 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM30_STIM30_W 32
#define CPU_ITM_STIM30_STIM30_M 0xFFFFFFFF
#define CPU_ITM_STIM30_STIM30_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_STIM31
//
//*****************************************************************************
// Field: [31:0] STIM31
//
// A write to this location causes data to be written into the FIFO if
// TER.STIMENA31 is set. Reading from the stimulus port returns the FIFO status
// in bit [0]: 0 = full, 1 = not full. The polled FIFO interface does not
// provide an atomic read-modify-write, so it's users responsibility to ensure
// exclusive read-modify-write if this ITM port is used concurrently by
// interrupts or other threads.
#define CPU_ITM_STIM31_STIM31_W 32
#define CPU_ITM_STIM31_STIM31_M 0xFFFFFFFF
#define CPU_ITM_STIM31_STIM31_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_TER
//
//*****************************************************************************
// Field: [31] STIMENA31
//
// Bit mask to enable tracing on ITM stimulus port 31.
#define CPU_ITM_TER_STIMENA31 0x80000000
#define CPU_ITM_TER_STIMENA31_BITN 31
#define CPU_ITM_TER_STIMENA31_M 0x80000000
#define CPU_ITM_TER_STIMENA31_S 31
// Field: [30] STIMENA30
//
// Bit mask to enable tracing on ITM stimulus port 30.
#define CPU_ITM_TER_STIMENA30 0x40000000
#define CPU_ITM_TER_STIMENA30_BITN 30
#define CPU_ITM_TER_STIMENA30_M 0x40000000
#define CPU_ITM_TER_STIMENA30_S 30
// Field: [29] STIMENA29
//
// Bit mask to enable tracing on ITM stimulus port 29.
#define CPU_ITM_TER_STIMENA29 0x20000000
#define CPU_ITM_TER_STIMENA29_BITN 29
#define CPU_ITM_TER_STIMENA29_M 0x20000000
#define CPU_ITM_TER_STIMENA29_S 29
// Field: [28] STIMENA28
//
// Bit mask to enable tracing on ITM stimulus port 28.
#define CPU_ITM_TER_STIMENA28 0x10000000
#define CPU_ITM_TER_STIMENA28_BITN 28
#define CPU_ITM_TER_STIMENA28_M 0x10000000
#define CPU_ITM_TER_STIMENA28_S 28
// Field: [27] STIMENA27
//
// Bit mask to enable tracing on ITM stimulus port 27.
#define CPU_ITM_TER_STIMENA27 0x08000000
#define CPU_ITM_TER_STIMENA27_BITN 27
#define CPU_ITM_TER_STIMENA27_M 0x08000000
#define CPU_ITM_TER_STIMENA27_S 27
// Field: [26] STIMENA26
//
// Bit mask to enable tracing on ITM stimulus port 26.
#define CPU_ITM_TER_STIMENA26 0x04000000
#define CPU_ITM_TER_STIMENA26_BITN 26
#define CPU_ITM_TER_STIMENA26_M 0x04000000
#define CPU_ITM_TER_STIMENA26_S 26
// Field: [25] STIMENA25
//
// Bit mask to enable tracing on ITM stimulus port 25.
#define CPU_ITM_TER_STIMENA25 0x02000000
#define CPU_ITM_TER_STIMENA25_BITN 25
#define CPU_ITM_TER_STIMENA25_M 0x02000000
#define CPU_ITM_TER_STIMENA25_S 25
// Field: [24] STIMENA24
//
// Bit mask to enable tracing on ITM stimulus port 24.
#define CPU_ITM_TER_STIMENA24 0x01000000
#define CPU_ITM_TER_STIMENA24_BITN 24
#define CPU_ITM_TER_STIMENA24_M 0x01000000
#define CPU_ITM_TER_STIMENA24_S 24
// Field: [23] STIMENA23
//
// Bit mask to enable tracing on ITM stimulus port 23.
#define CPU_ITM_TER_STIMENA23 0x00800000
#define CPU_ITM_TER_STIMENA23_BITN 23
#define CPU_ITM_TER_STIMENA23_M 0x00800000
#define CPU_ITM_TER_STIMENA23_S 23
// Field: [22] STIMENA22
//
// Bit mask to enable tracing on ITM stimulus port 22.
#define CPU_ITM_TER_STIMENA22 0x00400000
#define CPU_ITM_TER_STIMENA22_BITN 22
#define CPU_ITM_TER_STIMENA22_M 0x00400000
#define CPU_ITM_TER_STIMENA22_S 22
// Field: [21] STIMENA21
//
// Bit mask to enable tracing on ITM stimulus port 21.
#define CPU_ITM_TER_STIMENA21 0x00200000
#define CPU_ITM_TER_STIMENA21_BITN 21
#define CPU_ITM_TER_STIMENA21_M 0x00200000
#define CPU_ITM_TER_STIMENA21_S 21
// Field: [20] STIMENA20
//
// Bit mask to enable tracing on ITM stimulus port 20.
#define CPU_ITM_TER_STIMENA20 0x00100000
#define CPU_ITM_TER_STIMENA20_BITN 20
#define CPU_ITM_TER_STIMENA20_M 0x00100000
#define CPU_ITM_TER_STIMENA20_S 20
// Field: [19] STIMENA19
//
// Bit mask to enable tracing on ITM stimulus port 19.
#define CPU_ITM_TER_STIMENA19 0x00080000
#define CPU_ITM_TER_STIMENA19_BITN 19
#define CPU_ITM_TER_STIMENA19_M 0x00080000
#define CPU_ITM_TER_STIMENA19_S 19
// Field: [18] STIMENA18
//
// Bit mask to enable tracing on ITM stimulus port 18.
#define CPU_ITM_TER_STIMENA18 0x00040000
#define CPU_ITM_TER_STIMENA18_BITN 18
#define CPU_ITM_TER_STIMENA18_M 0x00040000
#define CPU_ITM_TER_STIMENA18_S 18
// Field: [17] STIMENA17
//
// Bit mask to enable tracing on ITM stimulus port 17.
#define CPU_ITM_TER_STIMENA17 0x00020000
#define CPU_ITM_TER_STIMENA17_BITN 17
#define CPU_ITM_TER_STIMENA17_M 0x00020000
#define CPU_ITM_TER_STIMENA17_S 17
// Field: [16] STIMENA16
//
// Bit mask to enable tracing on ITM stimulus port 16.
#define CPU_ITM_TER_STIMENA16 0x00010000
#define CPU_ITM_TER_STIMENA16_BITN 16
#define CPU_ITM_TER_STIMENA16_M 0x00010000
#define CPU_ITM_TER_STIMENA16_S 16
// Field: [15] STIMENA15
//
// Bit mask to enable tracing on ITM stimulus port 15.
#define CPU_ITM_TER_STIMENA15 0x00008000
#define CPU_ITM_TER_STIMENA15_BITN 15
#define CPU_ITM_TER_STIMENA15_M 0x00008000
#define CPU_ITM_TER_STIMENA15_S 15
// Field: [14] STIMENA14
//
// Bit mask to enable tracing on ITM stimulus port 14.
#define CPU_ITM_TER_STIMENA14 0x00004000
#define CPU_ITM_TER_STIMENA14_BITN 14
#define CPU_ITM_TER_STIMENA14_M 0x00004000
#define CPU_ITM_TER_STIMENA14_S 14
// Field: [13] STIMENA13
//
// Bit mask to enable tracing on ITM stimulus port 13.
#define CPU_ITM_TER_STIMENA13 0x00002000
#define CPU_ITM_TER_STIMENA13_BITN 13
#define CPU_ITM_TER_STIMENA13_M 0x00002000
#define CPU_ITM_TER_STIMENA13_S 13
// Field: [12] STIMENA12
//
// Bit mask to enable tracing on ITM stimulus port 12.
#define CPU_ITM_TER_STIMENA12 0x00001000
#define CPU_ITM_TER_STIMENA12_BITN 12
#define CPU_ITM_TER_STIMENA12_M 0x00001000
#define CPU_ITM_TER_STIMENA12_S 12
// Field: [11] STIMENA11
//
// Bit mask to enable tracing on ITM stimulus port 11.
#define CPU_ITM_TER_STIMENA11 0x00000800
#define CPU_ITM_TER_STIMENA11_BITN 11
#define CPU_ITM_TER_STIMENA11_M 0x00000800
#define CPU_ITM_TER_STIMENA11_S 11
// Field: [10] STIMENA10
//
// Bit mask to enable tracing on ITM stimulus port 10.
#define CPU_ITM_TER_STIMENA10 0x00000400
#define CPU_ITM_TER_STIMENA10_BITN 10
#define CPU_ITM_TER_STIMENA10_M 0x00000400
#define CPU_ITM_TER_STIMENA10_S 10
// Field: [9] STIMENA9
//
// Bit mask to enable tracing on ITM stimulus port 9.
#define CPU_ITM_TER_STIMENA9 0x00000200
#define CPU_ITM_TER_STIMENA9_BITN 9
#define CPU_ITM_TER_STIMENA9_M 0x00000200
#define CPU_ITM_TER_STIMENA9_S 9
// Field: [8] STIMENA8
//
// Bit mask to enable tracing on ITM stimulus port 8.
#define CPU_ITM_TER_STIMENA8 0x00000100
#define CPU_ITM_TER_STIMENA8_BITN 8
#define CPU_ITM_TER_STIMENA8_M 0x00000100
#define CPU_ITM_TER_STIMENA8_S 8
// Field: [7] STIMENA7
//
// Bit mask to enable tracing on ITM stimulus port 7.
#define CPU_ITM_TER_STIMENA7 0x00000080
#define CPU_ITM_TER_STIMENA7_BITN 7
#define CPU_ITM_TER_STIMENA7_M 0x00000080
#define CPU_ITM_TER_STIMENA7_S 7
// Field: [6] STIMENA6
//
// Bit mask to enable tracing on ITM stimulus port 6.
#define CPU_ITM_TER_STIMENA6 0x00000040
#define CPU_ITM_TER_STIMENA6_BITN 6
#define CPU_ITM_TER_STIMENA6_M 0x00000040
#define CPU_ITM_TER_STIMENA6_S 6
// Field: [5] STIMENA5
//
// Bit mask to enable tracing on ITM stimulus port 5.
#define CPU_ITM_TER_STIMENA5 0x00000020
#define CPU_ITM_TER_STIMENA5_BITN 5
#define CPU_ITM_TER_STIMENA5_M 0x00000020
#define CPU_ITM_TER_STIMENA5_S 5
// Field: [4] STIMENA4
//
// Bit mask to enable tracing on ITM stimulus port 4.
#define CPU_ITM_TER_STIMENA4 0x00000010
#define CPU_ITM_TER_STIMENA4_BITN 4
#define CPU_ITM_TER_STIMENA4_M 0x00000010
#define CPU_ITM_TER_STIMENA4_S 4
// Field: [3] STIMENA3
//
// Bit mask to enable tracing on ITM stimulus port 3.
#define CPU_ITM_TER_STIMENA3 0x00000008
#define CPU_ITM_TER_STIMENA3_BITN 3
#define CPU_ITM_TER_STIMENA3_M 0x00000008
#define CPU_ITM_TER_STIMENA3_S 3
// Field: [2] STIMENA2
//
// Bit mask to enable tracing on ITM stimulus port 2.
#define CPU_ITM_TER_STIMENA2 0x00000004
#define CPU_ITM_TER_STIMENA2_BITN 2
#define CPU_ITM_TER_STIMENA2_M 0x00000004
#define CPU_ITM_TER_STIMENA2_S 2
// Field: [1] STIMENA1
//
// Bit mask to enable tracing on ITM stimulus port 1.
#define CPU_ITM_TER_STIMENA1 0x00000002
#define CPU_ITM_TER_STIMENA1_BITN 1
#define CPU_ITM_TER_STIMENA1_M 0x00000002
#define CPU_ITM_TER_STIMENA1_S 1
// Field: [0] STIMENA0
//
// Bit mask to enable tracing on ITM stimulus port 0.
#define CPU_ITM_TER_STIMENA0 0x00000001
#define CPU_ITM_TER_STIMENA0_BITN 0
#define CPU_ITM_TER_STIMENA0_M 0x00000001
#define CPU_ITM_TER_STIMENA0_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_TPR
//
//*****************************************************************************
// Field: [3:0] PRIVMASK
//
// Bit mask to enable unprivileged (User) access to ITM stimulus ports:
//
// Bit [0] enables stimulus ports 0, 1, ..., and 7.
// Bit [1] enables stimulus ports 8, 9, ..., and 15.
// Bit [2] enables stimulus ports 16, 17, ..., and 23.
// Bit [3] enables stimulus ports 24, 25, ..., and 31.
//
// 0: User access allowed to stimulus ports
// 1: Privileged access only to stimulus ports
#define CPU_ITM_TPR_PRIVMASK_W 4
#define CPU_ITM_TPR_PRIVMASK_M 0x0000000F
#define CPU_ITM_TPR_PRIVMASK_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_TCR
//
//*****************************************************************************
// Field: [23] BUSY
//
// Set when ITM events present and being drained.
#define CPU_ITM_TCR_BUSY 0x00800000
#define CPU_ITM_TCR_BUSY_BITN 23
#define CPU_ITM_TCR_BUSY_M 0x00800000
#define CPU_ITM_TCR_BUSY_S 23
// Field: [22:16] ATBID
//
// Trace Bus ID for CoreSight system. Optional identifier for multi-source
// trace stream formatting. If multi-source trace is in use, this field must be
// written with a non-zero value.
#define CPU_ITM_TCR_ATBID_W 7
#define CPU_ITM_TCR_ATBID_M 0x007F0000
#define CPU_ITM_TCR_ATBID_S 16
// Field: [9:8] TSPRESCALE
//
// Timestamp prescaler
// ENUMs:
// DIV64 Divide by 64
// DIV16 Divide by 16
// DIV4 Divide by 4
// NOPRESCALING No prescaling
#define CPU_ITM_TCR_TSPRESCALE_W 2
#define CPU_ITM_TCR_TSPRESCALE_M 0x00000300
#define CPU_ITM_TCR_TSPRESCALE_S 8
#define CPU_ITM_TCR_TSPRESCALE_DIV64 0x00000300
#define CPU_ITM_TCR_TSPRESCALE_DIV16 0x00000200
#define CPU_ITM_TCR_TSPRESCALE_DIV4 0x00000100
#define CPU_ITM_TCR_TSPRESCALE_NOPRESCALING 0x00000000
// Field: [4] SWOENA
//
// Enables asynchronous clocking of the timestamp counter (when TSENA = 1). If
// TSENA = 0, writing this bit to 1 does not enable asynchronous clocking of
// the timestamp counter.
//
// 0x0: Mode disabled. Timestamp counter uses system clock from the core and
// counts continuously.
// 0x1: Timestamp counter uses lineout (data related) clock from TPIU
// interface. The timestamp counter is held in reset while the output line is
// idle.
#define CPU_ITM_TCR_SWOENA 0x00000010
#define CPU_ITM_TCR_SWOENA_BITN 4
#define CPU_ITM_TCR_SWOENA_M 0x00000010
#define CPU_ITM_TCR_SWOENA_S 4
// Field: [3] DWTENA
//
// Enables the DWT stimulus (hardware event packet emission to the TPIU from
// the DWT)
#define CPU_ITM_TCR_DWTENA 0x00000008
#define CPU_ITM_TCR_DWTENA_BITN 3
#define CPU_ITM_TCR_DWTENA_M 0x00000008
#define CPU_ITM_TCR_DWTENA_S 3
// Field: [2] SYNCENA
//
// Enables synchronization packet transmission for a synchronous TPIU.
// CPU_DWT:CTRL.SYNCTAP must be configured for the correct synchronization
// speed.
#define CPU_ITM_TCR_SYNCENA 0x00000004
#define CPU_ITM_TCR_SYNCENA_BITN 2
#define CPU_ITM_TCR_SYNCENA_M 0x00000004
#define CPU_ITM_TCR_SYNCENA_S 2
// Field: [1] TSENA
//
// Enables differential timestamps. Differential timestamps are emitted when a
// packet is written to the FIFO with a non-zero timestamp counter, and when
// the timestamp counter overflows. Timestamps are emitted during idle times
// after a fixed number of two million cycles. This provides a time reference
// for packets and inter-packet gaps. If SWOENA (bit [4]) is set, timestamps
// are triggered by activity on the internal trace bus only. In this case there
// is no regular timestamp output when the ITM is idle.
#define CPU_ITM_TCR_TSENA 0x00000002
#define CPU_ITM_TCR_TSENA_BITN 1
#define CPU_ITM_TCR_TSENA_M 0x00000002
#define CPU_ITM_TCR_TSENA_S 1
// Field: [0] ITMENA
//
// Enables ITM. This is the master enable, and must be set before ITM Stimulus
// and Trace Enable registers can be written.
#define CPU_ITM_TCR_ITMENA 0x00000001
#define CPU_ITM_TCR_ITMENA_BITN 0
#define CPU_ITM_TCR_ITMENA_M 0x00000001
#define CPU_ITM_TCR_ITMENA_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_LAR
//
//*****************************************************************************
// Field: [31:0] LOCK_ACCESS
//
// A privileged write of 0xC5ACCE55 enables more write access to Control
// Registers TER, TPR and TCR. An invalid write removes write access.
#define CPU_ITM_LAR_LOCK_ACCESS_W 32
#define CPU_ITM_LAR_LOCK_ACCESS_M 0xFFFFFFFF
#define CPU_ITM_LAR_LOCK_ACCESS_S 0
//*****************************************************************************
//
// Register: CPU_ITM_O_LSR
//
//*****************************************************************************
// Field: [2] BYTEACC
//
// Reads 0 which means 8-bit lock access is not be implemented.
#define CPU_ITM_LSR_BYTEACC 0x00000004
#define CPU_ITM_LSR_BYTEACC_BITN 2
#define CPU_ITM_LSR_BYTEACC_M 0x00000004
#define CPU_ITM_LSR_BYTEACC_S 2
// Field: [1] ACCESS
//
// Write access to component is blocked. All writes are ignored, reads are
// permitted.
#define CPU_ITM_LSR_ACCESS 0x00000002
#define CPU_ITM_LSR_ACCESS_BITN 1
#define CPU_ITM_LSR_ACCESS_M 0x00000002
#define CPU_ITM_LSR_ACCESS_S 1
// Field: [0] PRESENT
//
// Indicates that a lock mechanism exists for this component.
#define CPU_ITM_LSR_PRESENT 0x00000001
#define CPU_ITM_LSR_PRESENT_BITN 0
#define CPU_ITM_LSR_PRESENT_M 0x00000001
#define CPU_ITM_LSR_PRESENT_S 0
#endif // __CPU_ITM__