| /****************************************************************************** |
| * 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__ |