blob: b98def8f8a7c2de84a70f2e68040cae0f769ca8d [file] [log] [blame]
/******************************************************************************
* Filename: hw_cpu_fpb_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_FPB_H__
#define __HW_CPU_FPB_H__
//*****************************************************************************
//
// This section defines the register offsets of
// CPU_FPB component
//
//*****************************************************************************
// Control
#define CPU_FPB_O_CTRL 0x00000000
// Remap
#define CPU_FPB_O_REMAP 0x00000004
// Comparator 0
#define CPU_FPB_O_COMP0 0x00000008
// Comparator 1
#define CPU_FPB_O_COMP1 0x0000000C
// Comparator 2
#define CPU_FPB_O_COMP2 0x00000010
// Comparator 3
#define CPU_FPB_O_COMP3 0x00000014
// Comparator 4
#define CPU_FPB_O_COMP4 0x00000018
// Comparator 5
#define CPU_FPB_O_COMP5 0x0000001C
// Comparator 6
#define CPU_FPB_O_COMP6 0x00000020
// Comparator 7
#define CPU_FPB_O_COMP7 0x00000024
//*****************************************************************************
//
// Register: CPU_FPB_O_CTRL
//
//*****************************************************************************
// Field: [13:12] NUM_CODE2
//
// Number of full banks of code comparators, sixteen comparators per bank.
// Where less than sixteen code comparators are provided, the bank count is
// zero, and the number present indicated by NUM_CODE1. This read only field
// contains 3'b000 to indicate 0 banks for Cortex-M processor.
#define CPU_FPB_CTRL_NUM_CODE2_W 2
#define CPU_FPB_CTRL_NUM_CODE2_M 0x00003000
#define CPU_FPB_CTRL_NUM_CODE2_S 12
// Field: [11:8] NUM_LIT
//
// Number of literal slots field.
//
// 0x0: No literal slots
// 0x2: Two literal slots
#define CPU_FPB_CTRL_NUM_LIT_W 4
#define CPU_FPB_CTRL_NUM_LIT_M 0x00000F00
#define CPU_FPB_CTRL_NUM_LIT_S 8
// Field: [7:4] NUM_CODE1
//
// Number of code slots field.
//
// 0x0: No code slots
// 0x2: Two code slots
// 0x6: Six code slots
#define CPU_FPB_CTRL_NUM_CODE1_W 4
#define CPU_FPB_CTRL_NUM_CODE1_M 0x000000F0
#define CPU_FPB_CTRL_NUM_CODE1_S 4
// Field: [1] KEY
//
// Key field. In order to write to this register, this bit-field must be
// written to '1'. This bit always reads 0.
#define CPU_FPB_CTRL_KEY 0x00000002
#define CPU_FPB_CTRL_KEY_BITN 1
#define CPU_FPB_CTRL_KEY_M 0x00000002
#define CPU_FPB_CTRL_KEY_S 1
// Field: [0] ENABLE
//
// Flash patch unit enable bit
//
// 0x0: Flash patch unit disabled
// 0x1: Flash patch unit enabled
#define CPU_FPB_CTRL_ENABLE 0x00000001
#define CPU_FPB_CTRL_ENABLE_BITN 0
#define CPU_FPB_CTRL_ENABLE_M 0x00000001
#define CPU_FPB_CTRL_ENABLE_S 0
//*****************************************************************************
//
// Register: CPU_FPB_O_REMAP
//
//*****************************************************************************
// Field: [28:5] REMAP
//
// Remap base address field.
#define CPU_FPB_REMAP_REMAP_W 24
#define CPU_FPB_REMAP_REMAP_M 0x1FFFFFE0
#define CPU_FPB_REMAP_REMAP_S 5
//*****************************************************************************
//
// Register: CPU_FPB_O_COMP0
//
//*****************************************************************************
// Field: [31:30] REPLACE
//
// This selects what happens when the COMP address is matched. Address
// remapping only takes place for the 0x0 setting.
//
// 0x0: Remap to remap address. See REMAP.REMAP
// 0x1: Set BKPT on lower halfword, upper is unaffected
// 0x2: Set BKPT on upper halfword, lower is unaffected
// 0x3: Set BKPT on both lower and upper halfwords.
#define CPU_FPB_COMP0_REPLACE_W 2
#define CPU_FPB_COMP0_REPLACE_M 0xC0000000
#define CPU_FPB_COMP0_REPLACE_S 30
// Field: [28:2] COMP
//
// Comparison address.
#define CPU_FPB_COMP0_COMP_W 27
#define CPU_FPB_COMP0_COMP_M 0x1FFFFFFC
#define CPU_FPB_COMP0_COMP_S 2
// Field: [0] ENABLE
//
// Compare and remap enable comparator 0. CTRL.ENABLE must also be set to
// enable comparisons.
//
// 0x0: Compare and remap for comparator 0 disabled
// 0x1: Compare and remap for comparator 0 enabled
#define CPU_FPB_COMP0_ENABLE 0x00000001
#define CPU_FPB_COMP0_ENABLE_BITN 0
#define CPU_FPB_COMP0_ENABLE_M 0x00000001
#define CPU_FPB_COMP0_ENABLE_S 0
//*****************************************************************************
//
// Register: CPU_FPB_O_COMP1
//
//*****************************************************************************
// Field: [31:30] REPLACE
//
// This selects what happens when the COMP address is matched. Address
// remapping only takes place for the 0x0 setting.
//
// 0x0: Remap to remap address. See REMAP.REMAP
// 0x1: Set BKPT on lower halfword, upper is unaffected
// 0x2: Set BKPT on upper halfword, lower is unaffected
// 0x3: Set BKPT on both lower and upper halfwords.
#define CPU_FPB_COMP1_REPLACE_W 2
#define CPU_FPB_COMP1_REPLACE_M 0xC0000000
#define CPU_FPB_COMP1_REPLACE_S 30
// Field: [28:2] COMP
//
// Comparison address.
#define CPU_FPB_COMP1_COMP_W 27
#define CPU_FPB_COMP1_COMP_M 0x1FFFFFFC
#define CPU_FPB_COMP1_COMP_S 2
// Field: [0] ENABLE
//
// Compare and remap enable comparator 1. CTRL.ENABLE must also be set to
// enable comparisons.
//
// 0x0: Compare and remap for comparator 1 disabled
// 0x1: Compare and remap for comparator 1 enabled
#define CPU_FPB_COMP1_ENABLE 0x00000001
#define CPU_FPB_COMP1_ENABLE_BITN 0
#define CPU_FPB_COMP1_ENABLE_M 0x00000001
#define CPU_FPB_COMP1_ENABLE_S 0
//*****************************************************************************
//
// Register: CPU_FPB_O_COMP2
//
//*****************************************************************************
// Field: [31:30] REPLACE
//
// This selects what happens when the COMP address is matched. Address
// remapping only takes place for the 0x0 setting.
//
// 0x0: Remap to remap address. See REMAP.REMAP
// 0x1: Set BKPT on lower halfword, upper is unaffected
// 0x2: Set BKPT on upper halfword, lower is unaffected
// 0x3: Set BKPT on both lower and upper halfwords.
#define CPU_FPB_COMP2_REPLACE_W 2
#define CPU_FPB_COMP2_REPLACE_M 0xC0000000
#define CPU_FPB_COMP2_REPLACE_S 30
// Field: [28:2] COMP
//
// Comparison address.
#define CPU_FPB_COMP2_COMP_W 27
#define CPU_FPB_COMP2_COMP_M 0x1FFFFFFC
#define CPU_FPB_COMP2_COMP_S 2
// Field: [0] ENABLE
//
// Compare and remap enable comparator 2. CTRL.ENABLE must also be set to
// enable comparisons.
//
// 0x0: Compare and remap for comparator 2 disabled
// 0x1: Compare and remap for comparator 2 enabled
#define CPU_FPB_COMP2_ENABLE 0x00000001
#define CPU_FPB_COMP2_ENABLE_BITN 0
#define CPU_FPB_COMP2_ENABLE_M 0x00000001
#define CPU_FPB_COMP2_ENABLE_S 0
//*****************************************************************************
//
// Register: CPU_FPB_O_COMP3
//
//*****************************************************************************
// Field: [31:30] REPLACE
//
// This selects what happens when the COMP address is matched. Address
// remapping only takes place for the 0x0 setting.
//
// 0x0: Remap to remap address. See REMAP.REMAP
// 0x1: Set BKPT on lower halfword, upper is unaffected
// 0x2: Set BKPT on upper halfword, lower is unaffected
// 0x3: Set BKPT on both lower and upper halfwords.
#define CPU_FPB_COMP3_REPLACE_W 2
#define CPU_FPB_COMP3_REPLACE_M 0xC0000000
#define CPU_FPB_COMP3_REPLACE_S 30
// Field: [28:2] COMP
//
// Comparison address.
#define CPU_FPB_COMP3_COMP_W 27
#define CPU_FPB_COMP3_COMP_M 0x1FFFFFFC
#define CPU_FPB_COMP3_COMP_S 2
// Field: [0] ENABLE
//
// Compare and remap enable comparator 3. CTRL.ENABLE must also be set to
// enable comparisons.
//
// 0x0: Compare and remap for comparator 3 disabled
// 0x1: Compare and remap for comparator 3 enabled
#define CPU_FPB_COMP3_ENABLE 0x00000001
#define CPU_FPB_COMP3_ENABLE_BITN 0
#define CPU_FPB_COMP3_ENABLE_M 0x00000001
#define CPU_FPB_COMP3_ENABLE_S 0
//*****************************************************************************
//
// Register: CPU_FPB_O_COMP4
//
//*****************************************************************************
// Field: [31:30] REPLACE
//
// This selects what happens when the COMP address is matched. Address
// remapping only takes place for the 0x0 setting.
//
// 0x0: Remap to remap address. See REMAP.REMAP
// 0x1: Set BKPT on lower halfword, upper is unaffected
// 0x2: Set BKPT on upper halfword, lower is unaffected
// 0x3: Set BKPT on both lower and upper halfwords.
#define CPU_FPB_COMP4_REPLACE_W 2
#define CPU_FPB_COMP4_REPLACE_M 0xC0000000
#define CPU_FPB_COMP4_REPLACE_S 30
// Field: [28:2] COMP
//
// Comparison address.
#define CPU_FPB_COMP4_COMP_W 27
#define CPU_FPB_COMP4_COMP_M 0x1FFFFFFC
#define CPU_FPB_COMP4_COMP_S 2
// Field: [0] ENABLE
//
// Compare and remap enable comparator 4. CTRL.ENABLE must also be set to
// enable comparisons.
//
// 0x0: Compare and remap for comparator 4 disabled
// 0x1: Compare and remap for comparator 4 enabled
#define CPU_FPB_COMP4_ENABLE 0x00000001
#define CPU_FPB_COMP4_ENABLE_BITN 0
#define CPU_FPB_COMP4_ENABLE_M 0x00000001
#define CPU_FPB_COMP4_ENABLE_S 0
//*****************************************************************************
//
// Register: CPU_FPB_O_COMP5
//
//*****************************************************************************
// Field: [31:30] REPLACE
//
// This selects what happens when the COMP address is matched. Address
// remapping only takes place for the 0x0 setting.
//
// 0x0: Remap to remap address. See REMAP.REMAP
// 0x1: Set BKPT on lower halfword, upper is unaffected
// 0x2: Set BKPT on upper halfword, lower is unaffected
// 0x3: Set BKPT on both lower and upper halfwords.
#define CPU_FPB_COMP5_REPLACE_W 2
#define CPU_FPB_COMP5_REPLACE_M 0xC0000000
#define CPU_FPB_COMP5_REPLACE_S 30
// Field: [28:2] COMP
//
// Comparison address.
#define CPU_FPB_COMP5_COMP_W 27
#define CPU_FPB_COMP5_COMP_M 0x1FFFFFFC
#define CPU_FPB_COMP5_COMP_S 2
// Field: [0] ENABLE
//
// Compare and remap enable comparator 5. CTRL.ENABLE must also be set to
// enable comparisons.
//
// 0x0: Compare and remap for comparator 5 disabled
// 0x1: Compare and remap for comparator 5 enabled
#define CPU_FPB_COMP5_ENABLE 0x00000001
#define CPU_FPB_COMP5_ENABLE_BITN 0
#define CPU_FPB_COMP5_ENABLE_M 0x00000001
#define CPU_FPB_COMP5_ENABLE_S 0
//*****************************************************************************
//
// Register: CPU_FPB_O_COMP6
//
//*****************************************************************************
// Field: [31:30] REPLACE
//
// This selects what happens when the COMP address is matched. Comparator 6 is
// a literal comparator and the only supported setting is 0x0. Other settings
// will be ignored.
//
// 0x0: Remap to remap address. See REMAP.REMAP
// 0x1: Set BKPT on lower halfword, upper is unaffected
// 0x2: Set BKPT on upper halfword, lower is unaffected
// 0x3: Set BKPT on both lower and upper halfwords.
#define CPU_FPB_COMP6_REPLACE_W 2
#define CPU_FPB_COMP6_REPLACE_M 0xC0000000
#define CPU_FPB_COMP6_REPLACE_S 30
// Field: [28:2] COMP
//
// Comparison address.
#define CPU_FPB_COMP6_COMP_W 27
#define CPU_FPB_COMP6_COMP_M 0x1FFFFFFC
#define CPU_FPB_COMP6_COMP_S 2
// Field: [0] ENABLE
//
// Compare and remap enable comparator 6. CTRL.ENABLE must also be set to
// enable comparisons.
//
// 0x0: Compare and remap for comparator 6 disabled
// 0x1: Compare and remap for comparator 6 enabled
#define CPU_FPB_COMP6_ENABLE 0x00000001
#define CPU_FPB_COMP6_ENABLE_BITN 0
#define CPU_FPB_COMP6_ENABLE_M 0x00000001
#define CPU_FPB_COMP6_ENABLE_S 0
//*****************************************************************************
//
// Register: CPU_FPB_O_COMP7
//
//*****************************************************************************
// Field: [31:30] REPLACE
//
// This selects what happens when the COMP address is matched. Comparator 7 is
// a literal comparator and the only supported setting is 0x0. Other settings
// will be ignored.
//
// 0x0: Remap to remap address. See REMAP.REMAP
// 0x1: Set BKPT on lower halfword, upper is unaffected
// 0x2: Set BKPT on upper halfword, lower is unaffected
// 0x3: Set BKPT on both lower and upper halfwords.
#define CPU_FPB_COMP7_REPLACE_W 2
#define CPU_FPB_COMP7_REPLACE_M 0xC0000000
#define CPU_FPB_COMP7_REPLACE_S 30
// Field: [28:2] COMP
//
// Comparison address.
#define CPU_FPB_COMP7_COMP_W 27
#define CPU_FPB_COMP7_COMP_M 0x1FFFFFFC
#define CPU_FPB_COMP7_COMP_S 2
// Field: [0] ENABLE
//
// Compare and remap enable comparator 7. CTRL.ENABLE must also be set to
// enable comparisons.
//
// 0x0: Compare and remap for comparator 7 disabled
// 0x1: Compare and remap for comparator 7 enabled
#define CPU_FPB_COMP7_ENABLE 0x00000001
#define CPU_FPB_COMP7_ENABLE_BITN 0
#define CPU_FPB_COMP7_ENABLE_M 0x00000001
#define CPU_FPB_COMP7_ENABLE_S 0
#endif // __CPU_FPB__