| /****************************************************************************** |
| * Filename: hw_cpu_tpiu_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_TPIU_H__ |
| #define __HW_CPU_TPIU_H__ |
| |
| //***************************************************************************** |
| // |
| // This section defines the register offsets of |
| // CPU_TPIU component |
| // |
| //***************************************************************************** |
| // Supported Sync Port Sizes |
| #define CPU_TPIU_O_SSPSR 0x00000000 |
| |
| // Current Sync Port Size |
| #define CPU_TPIU_O_CSPSR 0x00000004 |
| |
| // Async Clock Prescaler |
| #define CPU_TPIU_O_ACPR 0x00000010 |
| |
| // Selected Pin Protocol |
| #define CPU_TPIU_O_SPPR 0x000000F0 |
| |
| // Formatter and Flush Status |
| #define CPU_TPIU_O_FFSR 0x00000300 |
| |
| // Formatter and Flush Control |
| #define CPU_TPIU_O_FFCR 0x00000304 |
| |
| // Formatter Synchronization Counter |
| #define CPU_TPIU_O_FSCR 0x00000308 |
| |
| // Claim Tag Mask |
| #define CPU_TPIU_O_CLAIMMASK 0x00000FA0 |
| |
| // Claim Tag Set |
| #define CPU_TPIU_O_CLAIMSET 0x00000FA0 |
| |
| // Current Claim Tag |
| #define CPU_TPIU_O_CLAIMTAG 0x00000FA4 |
| |
| // Claim Tag Clear |
| #define CPU_TPIU_O_CLAIMCLR 0x00000FA4 |
| |
| // Device ID |
| #define CPU_TPIU_O_DEVID 0x00000FC8 |
| |
| //***************************************************************************** |
| // |
| // Register: CPU_TPIU_O_SSPSR |
| // |
| //***************************************************************************** |
| // Field: [3] FOUR |
| // |
| // 4-bit port size support |
| // |
| // 0x0: Not supported |
| // 0x1: Supported |
| #define CPU_TPIU_SSPSR_FOUR 0x00000008 |
| #define CPU_TPIU_SSPSR_FOUR_BITN 3 |
| #define CPU_TPIU_SSPSR_FOUR_M 0x00000008 |
| #define CPU_TPIU_SSPSR_FOUR_S 3 |
| |
| // Field: [2] THREE |
| // |
| // 3-bit port size support |
| // |
| // 0x0: Not supported |
| // 0x1: Supported |
| #define CPU_TPIU_SSPSR_THREE 0x00000004 |
| #define CPU_TPIU_SSPSR_THREE_BITN 2 |
| #define CPU_TPIU_SSPSR_THREE_M 0x00000004 |
| #define CPU_TPIU_SSPSR_THREE_S 2 |
| |
| // Field: [1] TWO |
| // |
| // 2-bit port size support |
| // |
| // 0x0: Not supported |
| // 0x1: Supported |
| #define CPU_TPIU_SSPSR_TWO 0x00000002 |
| #define CPU_TPIU_SSPSR_TWO_BITN 1 |
| #define CPU_TPIU_SSPSR_TWO_M 0x00000002 |
| #define CPU_TPIU_SSPSR_TWO_S 1 |
| |
| // Field: [0] ONE |
| // |
| // 1-bit port size support |
| // |
| // 0x0: Not supported |
| // 0x1: Supported |
| #define CPU_TPIU_SSPSR_ONE 0x00000001 |
| #define CPU_TPIU_SSPSR_ONE_BITN 0 |
| #define CPU_TPIU_SSPSR_ONE_M 0x00000001 |
| #define CPU_TPIU_SSPSR_ONE_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: CPU_TPIU_O_CSPSR |
| // |
| //***************************************************************************** |
| // Field: [3] FOUR |
| // |
| // 4-bit port enable |
| // Writing values with more than one bit set in CSPSR, or setting a bit that is |
| // not indicated as supported in SSPSR can cause Unpredictable behavior. |
| #define CPU_TPIU_CSPSR_FOUR 0x00000008 |
| #define CPU_TPIU_CSPSR_FOUR_BITN 3 |
| #define CPU_TPIU_CSPSR_FOUR_M 0x00000008 |
| #define CPU_TPIU_CSPSR_FOUR_S 3 |
| |
| // Field: [2] THREE |
| // |
| // 3-bit port enable |
| // Writing values with more than one bit set in CSPSR, or setting a bit that is |
| // not indicated as supported in SSPSR can cause Unpredictable behavior. |
| #define CPU_TPIU_CSPSR_THREE 0x00000004 |
| #define CPU_TPIU_CSPSR_THREE_BITN 2 |
| #define CPU_TPIU_CSPSR_THREE_M 0x00000004 |
| #define CPU_TPIU_CSPSR_THREE_S 2 |
| |
| // Field: [1] TWO |
| // |
| // 2-bit port enable |
| // Writing values with more than one bit set in CSPSR, or setting a bit that is |
| // not indicated as supported in SSPSR can cause Unpredictable behavior. |
| #define CPU_TPIU_CSPSR_TWO 0x00000002 |
| #define CPU_TPIU_CSPSR_TWO_BITN 1 |
| #define CPU_TPIU_CSPSR_TWO_M 0x00000002 |
| #define CPU_TPIU_CSPSR_TWO_S 1 |
| |
| // Field: [0] ONE |
| // |
| // 1-bit port enable |
| // Writing values with more than one bit set in CSPSR, or setting a bit that is |
| // not indicated as supported in SSPSR can cause Unpredictable behavior. |
| #define CPU_TPIU_CSPSR_ONE 0x00000001 |
| #define CPU_TPIU_CSPSR_ONE_BITN 0 |
| #define CPU_TPIU_CSPSR_ONE_M 0x00000001 |
| #define CPU_TPIU_CSPSR_ONE_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: CPU_TPIU_O_ACPR |
| // |
| //***************************************************************************** |
| // Field: [12:0] PRESCALER |
| // |
| // Divisor for input trace clock is (PRESCALER + 1). |
| #define CPU_TPIU_ACPR_PRESCALER_W 13 |
| #define CPU_TPIU_ACPR_PRESCALER_M 0x00001FFF |
| #define CPU_TPIU_ACPR_PRESCALER_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: CPU_TPIU_O_SPPR |
| // |
| //***************************************************************************** |
| // Field: [1:0] PROTOCOL |
| // |
| // Trace output protocol |
| // ENUMs: |
| // SWO_NRZ SerialWire Output (NRZ) |
| // SWO_MANCHESTER SerialWire Output (Manchester). This is the reset |
| // value. |
| // TRACEPORT TracePort mode |
| #define CPU_TPIU_SPPR_PROTOCOL_W 2 |
| #define CPU_TPIU_SPPR_PROTOCOL_M 0x00000003 |
| #define CPU_TPIU_SPPR_PROTOCOL_S 0 |
| #define CPU_TPIU_SPPR_PROTOCOL_SWO_NRZ 0x00000002 |
| #define CPU_TPIU_SPPR_PROTOCOL_SWO_MANCHESTER 0x00000001 |
| #define CPU_TPIU_SPPR_PROTOCOL_TRACEPORT 0x00000000 |
| |
| //***************************************************************************** |
| // |
| // Register: CPU_TPIU_O_FFSR |
| // |
| //***************************************************************************** |
| // Field: [3] FTNONSTOP |
| // |
| // 0: Formatter can be stopped |
| // 1: Formatter cannot be stopped |
| #define CPU_TPIU_FFSR_FTNONSTOP 0x00000008 |
| #define CPU_TPIU_FFSR_FTNONSTOP_BITN 3 |
| #define CPU_TPIU_FFSR_FTNONSTOP_M 0x00000008 |
| #define CPU_TPIU_FFSR_FTNONSTOP_S 3 |
| |
| //***************************************************************************** |
| // |
| // Register: CPU_TPIU_O_FFCR |
| // |
| //***************************************************************************** |
| // Field: [8] TRIGIN |
| // |
| // Indicates that triggers are inserted when a trigger pin is asserted. |
| #define CPU_TPIU_FFCR_TRIGIN 0x00000100 |
| #define CPU_TPIU_FFCR_TRIGIN_BITN 8 |
| #define CPU_TPIU_FFCR_TRIGIN_M 0x00000100 |
| #define CPU_TPIU_FFCR_TRIGIN_S 8 |
| |
| // Field: [1] ENFCONT |
| // |
| // Enable continuous formatting: |
| // |
| // 0: Continuous formatting disabled |
| // 1: Continuous formatting enabled |
| #define CPU_TPIU_FFCR_ENFCONT 0x00000002 |
| #define CPU_TPIU_FFCR_ENFCONT_BITN 1 |
| #define CPU_TPIU_FFCR_ENFCONT_M 0x00000002 |
| #define CPU_TPIU_FFCR_ENFCONT_S 1 |
| |
| //***************************************************************************** |
| // |
| // Register: CPU_TPIU_O_FSCR |
| // |
| //***************************************************************************** |
| // Field: [31:0] FSCR |
| // |
| // The global synchronization trigger is generated by the Program Counter (PC) |
| // Sampler block. This means that there is no synchronization counter in the |
| // TPIU. |
| #define CPU_TPIU_FSCR_FSCR_W 32 |
| #define CPU_TPIU_FSCR_FSCR_M 0xFFFFFFFF |
| #define CPU_TPIU_FSCR_FSCR_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: CPU_TPIU_O_CLAIMMASK |
| // |
| //***************************************************************************** |
| // Field: [31:0] CLAIMMASK |
| // |
| // This register forms one half of the Claim Tag value. When reading this |
| // register returns the number of bits that can be set (each bit is considered |
| // separately): |
| // |
| // 0: This claim tag bit is not implemented |
| // 1: This claim tag bit is not implemented |
| // |
| // The behavior when writing to this register is described in CLAIMSET. |
| #define CPU_TPIU_CLAIMMASK_CLAIMMASK_W 32 |
| #define CPU_TPIU_CLAIMMASK_CLAIMMASK_M 0xFFFFFFFF |
| #define CPU_TPIU_CLAIMMASK_CLAIMMASK_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: CPU_TPIU_O_CLAIMSET |
| // |
| //***************************************************************************** |
| // Field: [31:0] CLAIMSET |
| // |
| // This register forms one half of the Claim Tag value. Writing to this |
| // location allows individual bits to be set (each bit is considered |
| // separately): |
| // |
| // 0: No effect |
| // 1: Set this bit in the claim tag |
| // |
| // The behavior when reading from this location is described in CLAIMMASK. |
| #define CPU_TPIU_CLAIMSET_CLAIMSET_W 32 |
| #define CPU_TPIU_CLAIMSET_CLAIMSET_M 0xFFFFFFFF |
| #define CPU_TPIU_CLAIMSET_CLAIMSET_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: CPU_TPIU_O_CLAIMTAG |
| // |
| //***************************************************************************** |
| // Field: [31:0] CLAIMTAG |
| // |
| // This register forms one half of the Claim Tag value. Reading this register |
| // returns the current Claim Tag value. |
| // Reading CLAIMMASK determines how many bits from this register must be used. |
| // |
| // The behavior when writing to this register is described in CLAIMCLR. |
| #define CPU_TPIU_CLAIMTAG_CLAIMTAG_W 32 |
| #define CPU_TPIU_CLAIMTAG_CLAIMTAG_M 0xFFFFFFFF |
| #define CPU_TPIU_CLAIMTAG_CLAIMTAG_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: CPU_TPIU_O_CLAIMCLR |
| // |
| //***************************************************************************** |
| // Field: [31:0] CLAIMCLR |
| // |
| // This register forms one half of the Claim Tag value. Writing to this |
| // location enables individual bits to be cleared (each bit is considered |
| // separately): |
| // |
| // 0: No effect |
| // 1: Clear this bit in the claim tag. |
| // |
| // The behavior when reading from this location is described in CLAIMTAG. |
| #define CPU_TPIU_CLAIMCLR_CLAIMCLR_W 32 |
| #define CPU_TPIU_CLAIMCLR_CLAIMCLR_M 0xFFFFFFFF |
| #define CPU_TPIU_CLAIMCLR_CLAIMCLR_S 0 |
| |
| //***************************************************************************** |
| // |
| // Register: CPU_TPIU_O_DEVID |
| // |
| //***************************************************************************** |
| // Field: [31:0] DEVID |
| // |
| // This field returns: 0xCA1 if there is an ETM present. 0xCA0 if there is no |
| // ETM present. |
| #define CPU_TPIU_DEVID_DEVID_W 32 |
| #define CPU_TPIU_DEVID_DEVID_M 0xFFFFFFFF |
| #define CPU_TPIU_DEVID_DEVID_S 0 |
| |
| |
| #endif // __CPU_TPIU__ |