mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
7db791476e
Signed-off-by: Jean Pierre Dudey <me@jeandudey.tech>
444 lines
19 KiB
C
444 lines
19 KiB
C
/******************************************************************************
|
|
* Filename: hw_cpu_fpb_h
|
|
* Revised: 2017-01-31 09:37:48 +0100 (Tue, 31 Jan 2017)
|
|
* Revision: 48345
|
|
*
|
|
* Copyright (c) 2015 - 2017, 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__
|