OLD | NEW |
(Empty) | |
| 1 /* |
| 2 * Copyright (c) 2009 NVIDIA Corporation. |
| 3 * All rights reserved. |
| 4 * |
| 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are met: |
| 7 * |
| 8 * Redistributions of source code must retain the above copyright notice, |
| 9 * this list of conditions and the following disclaimer. |
| 10 * |
| 11 * Redistributions in binary form must reproduce the above copyright notice, |
| 12 * this list of conditions and the following disclaimer in the documentation |
| 13 * and/or other materials provided with the distribution. |
| 14 * |
| 15 * Neither the name of the NVIDIA Corporation nor the names of its contributors |
| 16 * may be used to endorse or promote products derived from this software |
| 17 * without specific prior written permission. |
| 18 * |
| 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| 20 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| 21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| 22 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
| 23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 29 * POSSIBILITY OF SUCH DAMAGE. |
| 30 * |
| 31 */ |
| 32 // |
| 33 // DO NOT EDIT - generated by simspec! |
| 34 // |
| 35 |
| 36 #ifndef ___ARFIC_PROC_IF_H_INC_ |
| 37 #define ___ARFIC_PROC_IF_H_INC_ |
| 38 |
| 39 // Register FIC_PROC_IF_CONTROL_0 |
| 40 #define FIC_PROC_IF_CONTROL_0 _MK_ADDR_CONST(0x100) |
| 41 #define FIC_PROC_IF_CONTROL_0_SECURE 0x0 |
| 42 #define FIC_PROC_IF_CONTROL_0_WORD_COUNT 0x1 |
| 43 #define FIC_PROC_IF_CONTROL_0_RESET_VAL _MK_MASK_CONST(0
x0) |
| 44 #define FIC_PROC_IF_CONTROL_0_RESET_MASK _MK_MASK_CONST(0
x1f) |
| 45 #define FIC_PROC_IF_CONTROL_0_SW_DEFAULT_VAL _MK_MASK_CONST(0
x0) |
| 46 #define FIC_PROC_IF_CONTROL_0_SW_DEFAULT_MASK _MK_MASK_CONST(0
x0) |
| 47 #define FIC_PROC_IF_CONTROL_0_READ_MASK _MK_MASK_CONST(0
x1f) |
| 48 #define FIC_PROC_IF_CONTROL_0_WRITE_MASK _MK_MASK_CONST(0
x1f) |
| 49 // Secure enable for the Cortex-A9 processor interface |
| 50 #define FIC_PROC_IF_CONTROL_0_ENABLE_S_SHIFT _MK_SHIFT_CONST(
0) |
| 51 #define FIC_PROC_IF_CONTROL_0_ENABLE_S_FIELD (_MK_MASK_CONST(
0x1) << FIC_PROC_IF_CONTROL_0_ENABLE_S_SHIFT) |
| 52 #define FIC_PROC_IF_CONTROL_0_ENABLE_S_RANGE 0:0 |
| 53 #define FIC_PROC_IF_CONTROL_0_ENABLE_S_WOFFSET 0x0 |
| 54 #define FIC_PROC_IF_CONTROL_0_ENABLE_S_DEFAULT _MK_MASK_CONST(0
x0) |
| 55 #define FIC_PROC_IF_CONTROL_0_ENABLE_S_DEFAULT_MASK _MK_MASK
_CONST(0x1) |
| 56 #define FIC_PROC_IF_CONTROL_0_ENABLE_S_SW_DEFAULT _MK_MASK
_CONST(0x0) |
| 57 #define FIC_PROC_IF_CONTROL_0_ENABLE_S_SW_DEFAULT_MASK _MK_MASK
_CONST(0x0) |
| 58 |
| 59 // Non-secure enable for the Cortex-A9 processor interface |
| 60 #define FIC_PROC_IF_CONTROL_0_ENABLE_NS_SHIFT _MK_SHIFT_CONST(
1) |
| 61 #define FIC_PROC_IF_CONTROL_0_ENABLE_NS_FIELD (_MK_MASK_CONST(
0x1) << FIC_PROC_IF_CONTROL_0_ENABLE_NS_SHIFT) |
| 62 #define FIC_PROC_IF_CONTROL_0_ENABLE_NS_RANGE 1:1 |
| 63 #define FIC_PROC_IF_CONTROL_0_ENABLE_NS_WOFFSET 0x0 |
| 64 #define FIC_PROC_IF_CONTROL_0_ENABLE_NS_DEFAULT _MK_MASK_CONST(0
x0) |
| 65 #define FIC_PROC_IF_CONTROL_0_ENABLE_NS_DEFAULT_MASK _MK_MASK
_CONST(0x1) |
| 66 #define FIC_PROC_IF_CONTROL_0_ENABLE_NS_SW_DEFAULT _MK_MASK
_CONST(0x0) |
| 67 #define FIC_PROC_IF_CONTROL_0_ENABLE_NS_SW_DEFAULT_MASK _MK_MASK
_CONST(0x0) |
| 68 |
| 69 // When a Cortex-A9 processor performs a secure read of |
| 70 // the int_ack Register and the highest |
| 71 // priority interrupt is non-secure, this bit controls |
| 72 // the acknowledge response as follows: |
| 73 // 0 = The Cortex-A9 processor interface returns an INTID |
| 74 // value of 1022 and the interrupt remains Pending. |
| 75 // 1 = The Cortex-A9 processor interface returns the INTID |
| 76 // value of the non-secure interrupt and |
| 77 // acknowledges the interrupt. The interrupt changes state |
| 78 // to Active, or Active-and-pending. |
| 79 // When a Cortex-A9 processor performs a secure write to |
| 80 // the EOI Register to signal the completion |
| 81 // of a non-secure interrupt, this bit controls if the |
| 82 // Interrupt Controller clears the interrupt as follows: |
| 83 // 0 = the Interrupt Controller ignores the write and the |
| 84 // interrupt remains Active, or |
| 85 // Active-and-pending |
| 86 // 1 = the Interrupt Controller changes the interrupt |
| 87 // status to Inactive, or Pending. |
| 88 #define FIC_PROC_IF_CONTROL_0_ACK_CTL_SHIFT _MK_SHIFT_CONST(
2) |
| 89 #define FIC_PROC_IF_CONTROL_0_ACK_CTL_FIELD (_MK_MASK_CONST(
0x1) << FIC_PROC_IF_CONTROL_0_ACK_CTL_SHIFT) |
| 90 #define FIC_PROC_IF_CONTROL_0_ACK_CTL_RANGE 2:2 |
| 91 #define FIC_PROC_IF_CONTROL_0_ACK_CTL_WOFFSET 0x0 |
| 92 #define FIC_PROC_IF_CONTROL_0_ACK_CTL_DEFAULT _MK_MASK_CONST(0
x0) |
| 93 #define FIC_PROC_IF_CONTROL_0_ACK_CTL_DEFAULT_MASK _MK_MASK
_CONST(0x1) |
| 94 #define FIC_PROC_IF_CONTROL_0_ACK_CTL_SW_DEFAULT _MK_MASK
_CONST(0x0) |
| 95 #define FIC_PROC_IF_CONTROL_0_ACK_CTL_SW_DEFAULT_MASK _MK_MASK
_CONST(0x0) |
| 96 |
| 97 // Enables the Cortex-A9 processor interface to send |
| 98 // secure interrupts using the nFIQ signal. |
| 99 #define FIC_PROC_IF_CONTROL_0_FIQ_ENABLE_SHIFT _MK_SHIFT_CONST(
3) |
| 100 #define FIC_PROC_IF_CONTROL_0_FIQ_ENABLE_FIELD (_MK_MASK_CONST(
0x1) << FIC_PROC_IF_CONTROL_0_FIQ_ENABLE_SHIFT) |
| 101 #define FIC_PROC_IF_CONTROL_0_FIQ_ENABLE_RANGE 3:3 |
| 102 #define FIC_PROC_IF_CONTROL_0_FIQ_ENABLE_WOFFSET 0x0 |
| 103 #define FIC_PROC_IF_CONTROL_0_FIQ_ENABLE_DEFAULT _MK_MASK
_CONST(0x0) |
| 104 #define FIC_PROC_IF_CONTROL_0_FIQ_ENABLE_DEFAULT_MASK _MK_MASK
_CONST(0x1) |
| 105 #define FIC_PROC_IF_CONTROL_0_FIQ_ENABLE_SW_DEFAULT _MK_MASK
_CONST(0x0) |
| 106 #define FIC_PROC_IF_CONTROL_0_FIQ_ENABLE_SW_DEFAULT_MASK
_MK_MASK_CONST(0x0) |
| 107 |
| 108 // Controls which Binary Pointer Register the Cortex-A9 |
| 109 // processor interface uses when it performs |
| 110 // a pre-emptive calculation. The options are: |
| 111 // 0 = secure interrupts use the bin_pt_s Register and |
| 112 // non-secure interrupts use the bin_pt_ns Register |
| 113 // 1 = secure read and writes access the secure binary |
| 114 // point register directly. Non-secure writes are |
| 115 // ignored, and non-secure reads return the value in the |
| 116 // secure binary point register plus 1, with the |
| 117 // addition saturating at a value of 7. |
| 118 #define FIC_PROC_IF_CONTROL_0_SBPR_SHIFT _MK_SHIFT_CONST(
4) |
| 119 #define FIC_PROC_IF_CONTROL_0_SBPR_FIELD (_MK_MASK_CONST(
0x1) << FIC_PROC_IF_CONTROL_0_SBPR_SHIFT) |
| 120 #define FIC_PROC_IF_CONTROL_0_SBPR_RANGE 4:4 |
| 121 #define FIC_PROC_IF_CONTROL_0_SBPR_WOFFSET 0x0 |
| 122 #define FIC_PROC_IF_CONTROL_0_SBPR_DEFAULT _MK_MASK_CONST(0
x0) |
| 123 #define FIC_PROC_IF_CONTROL_0_SBPR_DEFAULT_MASK _MK_MASK_CONST(0
x1) |
| 124 #define FIC_PROC_IF_CONTROL_0_SBPR_SW_DEFAULT _MK_MASK_CONST(0
x0) |
| 125 #define FIC_PROC_IF_CONTROL_0_SBPR_SW_DEFAULT_MASK _MK_MASK
_CONST(0x0) |
| 126 |
| 127 |
| 128 // Register FIC_PROC_IF_PRIORITY_MASK_0 |
| 129 #define FIC_PROC_IF_PRIORITY_MASK_0 _MK_ADDR_CONST(0x104) |
| 130 #define FIC_PROC_IF_PRIORITY_MASK_0_SECURE 0x0 |
| 131 #define FIC_PROC_IF_PRIORITY_MASK_0_WORD_COUNT 0x1 |
| 132 #define FIC_PROC_IF_PRIORITY_MASK_0_RESET_VAL _MK_MASK_CONST(0
x0) |
| 133 #define FIC_PROC_IF_PRIORITY_MASK_0_RESET_MASK _MK_MASK_CONST(0
xf8) |
| 134 #define FIC_PROC_IF_PRIORITY_MASK_0_SW_DEFAULT_VAL _MK_MASK
_CONST(0x0) |
| 135 #define FIC_PROC_IF_PRIORITY_MASK_0_SW_DEFAULT_MASK _MK_MASK
_CONST(0x0) |
| 136 #define FIC_PROC_IF_PRIORITY_MASK_0_READ_MASK _MK_MASK_CONST(0
xf8) |
| 137 #define FIC_PROC_IF_PRIORITY_MASK_0_WRITE_MASK _MK_MASK_CONST(0
xf8) |
| 138 // Configures the priorty mask level for the Cortex-A9 processor. |
| 139 #define FIC_PROC_IF_PRIORITY_MASK_0_PRIORITY_SHIFT _MK_SHIF
T_CONST(3) |
| 140 #define FIC_PROC_IF_PRIORITY_MASK_0_PRIORITY_FIELD (_MK_MAS
K_CONST(0x1f) << FIC_PROC_IF_PRIORITY_MASK_0_PRIORITY_SHIFT) |
| 141 #define FIC_PROC_IF_PRIORITY_MASK_0_PRIORITY_RANGE 7:3 |
| 142 #define FIC_PROC_IF_PRIORITY_MASK_0_PRIORITY_WOFFSET 0x0 |
| 143 #define FIC_PROC_IF_PRIORITY_MASK_0_PRIORITY_DEFAULT _MK_MASK
_CONST(0x0) |
| 144 #define FIC_PROC_IF_PRIORITY_MASK_0_PRIORITY_DEFAULT_MASK
_MK_MASK_CONST(0x1f) |
| 145 #define FIC_PROC_IF_PRIORITY_MASK_0_PRIORITY_SW_DEFAULT _MK_MASK
_CONST(0x0) |
| 146 #define FIC_PROC_IF_PRIORITY_MASK_0_PRIORITY_SW_DEFAULT_MASK
_MK_MASK_CONST(0x0) |
| 147 |
| 148 |
| 149 // Register FIC_PROC_IF_BIN_PT_0 |
| 150 #define FIC_PROC_IF_BIN_PT_0 _MK_ADDR_CONST(0x108) |
| 151 #define FIC_PROC_IF_BIN_PT_0_SECURE 0x0 |
| 152 #define FIC_PROC_IF_BIN_PT_0_WORD_COUNT 0x1 |
| 153 #define FIC_PROC_IF_BIN_PT_0_RESET_VAL _MK_MASK_CONST(0x0) |
| 154 #define FIC_PROC_IF_BIN_PT_0_RESET_MASK _MK_MASK_CONST(0
x7) |
| 155 #define FIC_PROC_IF_BIN_PT_0_SW_DEFAULT_VAL _MK_MASK_CONST(0
x0) |
| 156 #define FIC_PROC_IF_BIN_PT_0_SW_DEFAULT_MASK _MK_MASK_CONST(0
x0) |
| 157 #define FIC_PROC_IF_BIN_PT_0_READ_MASK _MK_MASK_CONST(0x7) |
| 158 #define FIC_PROC_IF_BIN_PT_0_WRITE_MASK _MK_MASK_CONST(0
x7) |
| 159 // Configures the value of the binary point mask. |
| 160 #define FIC_PROC_IF_BIN_PT_0_BINARY_POINT_SHIFT _MK_SHIFT_CONST(
0) |
| 161 #define FIC_PROC_IF_BIN_PT_0_BINARY_POINT_FIELD (_MK_MASK_CONST(
0x7) << FIC_PROC_IF_BIN_PT_0_BINARY_POINT_SHIFT) |
| 162 #define FIC_PROC_IF_BIN_PT_0_BINARY_POINT_RANGE 2:0 |
| 163 #define FIC_PROC_IF_BIN_PT_0_BINARY_POINT_WOFFSET 0x0 |
| 164 #define FIC_PROC_IF_BIN_PT_0_BINARY_POINT_DEFAULT _MK_MASK
_CONST(0x0) |
| 165 #define FIC_PROC_IF_BIN_PT_0_BINARY_POINT_DEFAULT_MASK _MK_MASK
_CONST(0x7) |
| 166 #define FIC_PROC_IF_BIN_PT_0_BINARY_POINT_SW_DEFAULT _MK_MASK
_CONST(0x0) |
| 167 #define FIC_PROC_IF_BIN_PT_0_BINARY_POINT_SW_DEFAULT_MASK
_MK_MASK_CONST(0x0) |
| 168 |
| 169 |
| 170 // Register FIC_PROC_IF_INT_ACK_0 |
| 171 #define FIC_PROC_IF_INT_ACK_0 _MK_ADDR_CONST(0x10c) |
| 172 #define FIC_PROC_IF_INT_ACK_0_SECURE 0x0 |
| 173 #define FIC_PROC_IF_INT_ACK_0_WORD_COUNT 0x1 |
| 174 #define FIC_PROC_IF_INT_ACK_0_RESET_VAL _MK_MASK_CONST(0
x0) |
| 175 #define FIC_PROC_IF_INT_ACK_0_RESET_MASK _MK_MASK_CONST(0
x1fff) |
| 176 #define FIC_PROC_IF_INT_ACK_0_SW_DEFAULT_VAL _MK_MASK_CONST(0
x0) |
| 177 #define FIC_PROC_IF_INT_ACK_0_SW_DEFAULT_MASK _MK_MASK_CONST(0
x0) |
| 178 #define FIC_PROC_IF_INT_ACK_0_READ_MASK _MK_MASK_CONST(0
x1fff) |
| 179 #define FIC_PROC_IF_INT_ACK_0_WRITE_MASK _MK_MASK_CONST(0
x0) |
| 180 // Returns the INTID of the interrupt that requries |
| 181 // servicing by the Cortex-A9 processor : |
| 182 // 15-0 = STI[15:0] |
| 183 // 31-16 = PPI[15:0] |
| 184 // 255-32 = SPI[223:0] |
| 185 // 1020 = reserved |
| 186 // 1021 = reserved |
| 187 // 1022 = the highest priority interrutp that requires |
| 188 // servicing is non-secure |
| 189 // 1023 = no outstanding interrupts |
| 190 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_SHIFT _MK_SHIFT_CONST(
0) |
| 191 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_FIELD (_MK_MASK_CONST(
0x3ff) << FIC_PROC_IF_INT_ACK_0_ACK_INTID_SHIFT) |
| 192 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_RANGE 9:0 |
| 193 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_WOFFSET 0x0 |
| 194 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_DEFAULT _MK_MASK_CONST(0
x0) |
| 195 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_DEFAULT_MASK _MK_MASK
_CONST(0x3ff) |
| 196 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_SW_DEFAULT _MK_MASK
_CONST(0x0) |
| 197 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_SW_DEFAULT_MASK _MK_MASK
_CONST(0x0) |
| 198 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_STI_LOW _MK_ENUM_CONST(0
) |
| 199 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_STI_HIGH _MK_ENUM
_CONST(15) |
| 200 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_PPI_LOW _MK_ENUM_CONST(1
6) |
| 201 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_PPI_HIGH _MK_ENUM
_CONST(31) |
| 202 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_SPI_LOW _MK_ENUM_CONST(3
2) |
| 203 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_SPI_HIGH _MK_ENUM
_CONST(160) |
| 204 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_HIGHEST_PRI_NONSECURE
_MK_ENUM_CONST(1022) |
| 205 #define FIC_PROC_IF_INT_ACK_0_ACK_INTID_NO_OUTSTANDING_INTR
_MK_ENUM_CONST(1023) |
| 206 |
| 207 // Returns the CPUID of the Cortex-A9 processor that |
| 208 // requested the software interrupt |
| 209 #define FIC_PROC_IF_INT_ACK_0_ACK_SOURCE_CPUID_SHIFT _MK_SHIF
T_CONST(10) |
| 210 #define FIC_PROC_IF_INT_ACK_0_ACK_SOURCE_CPUID_FIELD (_MK_MAS
K_CONST(0x7) << FIC_PROC_IF_INT_ACK_0_ACK_SOURCE_CPUID_SHIFT) |
| 211 #define FIC_PROC_IF_INT_ACK_0_ACK_SOURCE_CPUID_RANGE 12:10 |
| 212 #define FIC_PROC_IF_INT_ACK_0_ACK_SOURCE_CPUID_WOFFSET 0x0 |
| 213 #define FIC_PROC_IF_INT_ACK_0_ACK_SOURCE_CPUID_DEFAULT _MK_MASK
_CONST(0x0) |
| 214 #define FIC_PROC_IF_INT_ACK_0_ACK_SOURCE_CPUID_DEFAULT_MASK
_MK_MASK_CONST(0x7) |
| 215 #define FIC_PROC_IF_INT_ACK_0_ACK_SOURCE_CPUID_SW_DEFAULT
_MK_MASK_CONST(0x0) |
| 216 #define FIC_PROC_IF_INT_ACK_0_ACK_SOURCE_CPUID_SW_DEFAULT_MASK
_MK_MASK_CONST(0x0) |
| 217 |
| 218 |
| 219 // Register FIC_PROC_IF_EOI_0 |
| 220 #define FIC_PROC_IF_EOI_0 _MK_ADDR_CONST(0x110) |
| 221 #define FIC_PROC_IF_EOI_0_SECURE 0x0 |
| 222 #define FIC_PROC_IF_EOI_0_WORD_COUNT 0x1 |
| 223 #define FIC_PROC_IF_EOI_0_RESET_VAL _MK_MASK_CONST(0x0) |
| 224 #define FIC_PROC_IF_EOI_0_RESET_MASK _MK_MASK_CONST(0x1fff) |
| 225 #define FIC_PROC_IF_EOI_0_SW_DEFAULT_VAL _MK_MASK_CONST(0
x0) |
| 226 #define FIC_PROC_IF_EOI_0_SW_DEFAULT_MASK _MK_MASK_CONST(0
x0) |
| 227 #define FIC_PROC_IF_EOI_0_READ_MASK _MK_MASK_CONST(0x0) |
| 228 #define FIC_PROC_IF_EOI_0_WRITE_MASK _MK_MASK_CONST(0x1fff) |
| 229 // After the Cortex-A9 processor completes its interrupt |
| 230 // service routine, it sets this field to the |
| 231 // INTID of the interrupt that it serviced: |
| 232 // 15-0 = STI[15:0] |
| 233 // 31-16 = PPI[15:0] |
| 234 // 255-32 = SPI[223:0] |
| 235 // 1023-1020 = reserved |
| 236 #define FIC_PROC_IF_EOI_0_EOI_INTID_SHIFT _MK_SHIFT_CONST(
0) |
| 237 #define FIC_PROC_IF_EOI_0_EOI_INTID_FIELD (_MK_MASK_CONST(
0x3ff) << FIC_PROC_IF_EOI_0_EOI_INTID_SHIFT) |
| 238 #define FIC_PROC_IF_EOI_0_EOI_INTID_RANGE 9:0 |
| 239 #define FIC_PROC_IF_EOI_0_EOI_INTID_WOFFSET 0x0 |
| 240 #define FIC_PROC_IF_EOI_0_EOI_INTID_DEFAULT _MK_MASK_CONST(0
x0) |
| 241 #define FIC_PROC_IF_EOI_0_EOI_INTID_DEFAULT_MASK _MK_MASK
_CONST(0x3ff) |
| 242 #define FIC_PROC_IF_EOI_0_EOI_INTID_SW_DEFAULT _MK_MASK_CONST(0
x0) |
| 243 #define FIC_PROC_IF_EOI_0_EOI_INTID_SW_DEFAULT_MASK _MK_MASK
_CONST(0x0) |
| 244 |
| 245 // After the Cortex-A9 processor completes the interrupt |
| 246 // service routine for an STI, it sets this to the source |
| 247 // CPUID of the STI that it serviced |
| 248 #define FIC_PROC_IF_EOI_0_EOI_SOURCE_CPUID_SHIFT _MK_SHIF
T_CONST(10) |
| 249 #define FIC_PROC_IF_EOI_0_EOI_SOURCE_CPUID_FIELD (_MK_MAS
K_CONST(0x7) << FIC_PROC_IF_EOI_0_EOI_SOURCE_CPUID_SHIFT) |
| 250 #define FIC_PROC_IF_EOI_0_EOI_SOURCE_CPUID_RANGE 12:10 |
| 251 #define FIC_PROC_IF_EOI_0_EOI_SOURCE_CPUID_WOFFSET 0x0 |
| 252 #define FIC_PROC_IF_EOI_0_EOI_SOURCE_CPUID_DEFAULT _MK_MASK
_CONST(0x0) |
| 253 #define FIC_PROC_IF_EOI_0_EOI_SOURCE_CPUID_DEFAULT_MASK _MK_MASK
_CONST(0x7) |
| 254 #define FIC_PROC_IF_EOI_0_EOI_SOURCE_CPUID_SW_DEFAULT _MK_MASK
_CONST(0x0) |
| 255 #define FIC_PROC_IF_EOI_0_EOI_SOURCE_CPUID_SW_DEFAULT_MASK
_MK_MASK_CONST(0x0) |
| 256 |
| 257 |
| 258 // Register FIC_PROC_IF_RUN_PRIORITY_0 |
| 259 #define FIC_PROC_IF_RUN_PRIORITY_0 _MK_ADDR_CONST(0x114) |
| 260 #define FIC_PROC_IF_RUN_PRIORITY_0_SECURE 0x0 |
| 261 #define FIC_PROC_IF_RUN_PRIORITY_0_WORD_COUNT 0x1 |
| 262 #define FIC_PROC_IF_RUN_PRIORITY_0_RESET_VAL _MK_MASK_CONST(0
x0) |
| 263 #define FIC_PROC_IF_RUN_PRIORITY_0_RESET_MASK _MK_MASK_CONST(0
xf0) |
| 264 #define FIC_PROC_IF_RUN_PRIORITY_0_SW_DEFAULT_VAL _MK_MASK
_CONST(0x0) |
| 265 #define FIC_PROC_IF_RUN_PRIORITY_0_SW_DEFAULT_MASK _MK_MASK
_CONST(0x0) |
| 266 #define FIC_PROC_IF_RUN_PRIORITY_0_READ_MASK _MK_MASK_CONST(0
xf0) |
| 267 #define FIC_PROC_IF_RUN_PRIORITY_0_WRITE_MASK _MK_MASK_CONST(0
x0) |
| 268 // Returns the priority level of the highest priority |
| 269 // interrupt that is running on the Cortex-A9 processor |
| 270 #define FIC_PROC_IF_RUN_PRIORITY_0_RUN_PRIORITY_SHIFT _MK_SHIF
T_CONST(4) |
| 271 #define FIC_PROC_IF_RUN_PRIORITY_0_RUN_PRIORITY_FIELD (_MK_MAS
K_CONST(0xf) << FIC_PROC_IF_RUN_PRIORITY_0_RUN_PRIORITY_SHIFT) |
| 272 #define FIC_PROC_IF_RUN_PRIORITY_0_RUN_PRIORITY_RANGE 7:4 |
| 273 #define FIC_PROC_IF_RUN_PRIORITY_0_RUN_PRIORITY_WOFFSET 0x0 |
| 274 #define FIC_PROC_IF_RUN_PRIORITY_0_RUN_PRIORITY_DEFAULT _MK_MASK
_CONST(0x0) |
| 275 #define FIC_PROC_IF_RUN_PRIORITY_0_RUN_PRIORITY_DEFAULT_MASK
_MK_MASK_CONST(0xf) |
| 276 #define FIC_PROC_IF_RUN_PRIORITY_0_RUN_PRIORITY_SW_DEFAULT
_MK_MASK_CONST(0x0) |
| 277 #define FIC_PROC_IF_RUN_PRIORITY_0_RUN_PRIORITY_SW_DEFAULT_MASK
_MK_MASK_CONST(0x0) |
| 278 |
| 279 |
| 280 // Register FIC_PROC_IF_HI_PEND_0 |
| 281 #define FIC_PROC_IF_HI_PEND_0 _MK_ADDR_CONST(0x118) |
| 282 #define FIC_PROC_IF_HI_PEND_0_SECURE 0x0 |
| 283 #define FIC_PROC_IF_HI_PEND_0_WORD_COUNT 0x1 |
| 284 #define FIC_PROC_IF_HI_PEND_0_RESET_VAL _MK_MASK_CONST(0
x0) |
| 285 #define FIC_PROC_IF_HI_PEND_0_RESET_MASK _MK_MASK_CONST(0
x1fff) |
| 286 #define FIC_PROC_IF_HI_PEND_0_SW_DEFAULT_VAL _MK_MASK_CONST(0
x0) |
| 287 #define FIC_PROC_IF_HI_PEND_0_SW_DEFAULT_MASK _MK_MASK_CONST(0
x0) |
| 288 #define FIC_PROC_IF_HI_PEND_0_READ_MASK _MK_MASK_CONST(0
x1fff) |
| 289 #define FIC_PROC_IF_HI_PEND_0_WRITE_MASK _MK_MASK_CONST(0
x0) |
| 290 // Returns the INTID of the highest priority pending interrupt |
| 291 // 15-0 = STI[15:0] |
| 292 // 31-16 = PPI[15:0] |
| 293 // 255-32 = SPI[223:0] |
| 294 // 1020 = reserved |
| 295 // 1021 = reserved |
| 296 // 1022 = the highest priority interrupT that requires |
| 297 // servicing is non-secure |
| 298 // 1023 = no outstanding interrupts |
| 299 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_SHIFT _MK_SHIFT_CONST(
0) |
| 300 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_FIELD (_MK_MASK_CONST(
0x3ff) << FIC_PROC_IF_HI_PEND_0_PEND_INTID_SHIFT) |
| 301 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_RANGE 9:0 |
| 302 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_WOFFSET 0x0 |
| 303 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_DEFAULT _MK_MASK
_CONST(0x0) |
| 304 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_DEFAULT_MASK _MK_MASK
_CONST(0x3ff) |
| 305 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_SW_DEFAULT _MK_MASK
_CONST(0x0) |
| 306 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_SW_DEFAULT_MASK
_MK_MASK_CONST(0x0) |
| 307 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_STI_LOW _MK_ENUM
_CONST(0) |
| 308 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_STI_HIGH _MK_ENUM
_CONST(15) |
| 309 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_PPI_LOW _MK_ENUM
_CONST(16) |
| 310 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_PPI_HIGH _MK_ENUM
_CONST(31) |
| 311 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_SPI_LOW _MK_ENUM
_CONST(32) |
| 312 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_SPI_HIGH _MK_ENUM
_CONST(160) |
| 313 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_HIGHEST_PRI_NONSECURE
_MK_ENUM_CONST(1022) |
| 314 #define FIC_PROC_IF_HI_PEND_0_PEND_INTID_NO_OUTSTANDING_INTR
_MK_ENUM_CONST(1023) |
| 315 |
| 316 // Returns the CPUID of the Cortex-A9 processor that is |
| 317 // requesting the software interrupt |
| 318 #define FIC_PROC_IF_HI_PEND_0_PEND_SOURCE_CPUID_SHIFT _MK_SHIF
T_CONST(10) |
| 319 #define FIC_PROC_IF_HI_PEND_0_PEND_SOURCE_CPUID_FIELD (_MK_MAS
K_CONST(0x7) << FIC_PROC_IF_HI_PEND_0_PEND_SOURCE_CPUID_SHIFT) |
| 320 #define FIC_PROC_IF_HI_PEND_0_PEND_SOURCE_CPUID_RANGE 12:10 |
| 321 #define FIC_PROC_IF_HI_PEND_0_PEND_SOURCE_CPUID_WOFFSET 0x0 |
| 322 #define FIC_PROC_IF_HI_PEND_0_PEND_SOURCE_CPUID_DEFAULT _MK_MASK
_CONST(0x0) |
| 323 #define FIC_PROC_IF_HI_PEND_0_PEND_SOURCE_CPUID_DEFAULT_MASK
_MK_MASK_CONST(0x7) |
| 324 #define FIC_PROC_IF_HI_PEND_0_PEND_SOURCE_CPUID_SW_DEFAULT
_MK_MASK_CONST(0x0) |
| 325 #define FIC_PROC_IF_HI_PEND_0_PEND_SOURCE_CPUID_SW_DEFAULT_MASK
_MK_MASK_CONST(0x0) |
| 326 |
| 327 |
| 328 // Register FIC_PROC_IF_ALIAS_BIN_PT_NS_0 |
| 329 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0 _MK_ADDR_CONST(0x11c) |
| 330 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_SECURE 0x0 |
| 331 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_WORD_COUNT 0x1 |
| 332 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_RESET_VAL _MK_MASK
_CONST(0x0) |
| 333 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_RESET_MASK _MK_MASK
_CONST(0x7) |
| 334 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_SW_DEFAULT_VAL _MK_MASK
_CONST(0x0) |
| 335 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_SW_DEFAULT_MASK _MK_MASK
_CONST(0x0) |
| 336 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_READ_MASK _MK_MASK
_CONST(0x7) |
| 337 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_WRITE_MASK _MK_MASK
_CONST(0x7) |
| 338 // Alias of the BIN_PT_NS regiter. Only accessible in secure mode |
| 339 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_BINARY_POINT_NS_SHIFT
_MK_SHIFT_CONST(0) |
| 340 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_BINARY_POINT_NS_FIELD
(_MK_MASK_CONST(0x7) << FIC_PROC_IF_ALIAS_BIN_PT_NS_0_BINARY_POINT_NS_SHIFT) |
| 341 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_BINARY_POINT_NS_RANGE
2:0 |
| 342 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_BINARY_POINT_NS_WOFFSET
0x0 |
| 343 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_BINARY_POINT_NS_DEFAULT
_MK_MASK_CONST(0x0) |
| 344 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_BINARY_POINT_NS_DEFAULT_MASK
_MK_MASK_CONST(0x7) |
| 345 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_BINARY_POINT_NS_SW_DEFAULT
_MK_MASK_CONST(0x0) |
| 346 #define FIC_PROC_IF_ALIAS_BIN_PT_NS_0_BINARY_POINT_NS_SW_DEFAULT_MASK
_MK_MASK_CONST(0x0) |
| 347 |
| 348 |
| 349 // Register FIC_PROC_IF_CPU_IF_IDENT_0 |
| 350 #define FIC_PROC_IF_CPU_IF_IDENT_0 _MK_ADDR_CONST(0x120) |
| 351 #define FIC_PROC_IF_CPU_IF_IDENT_0_SECURE 0x0 |
| 352 #define FIC_PROC_IF_CPU_IF_IDENT_0_WORD_COUNT 0x1 |
| 353 #define FIC_PROC_IF_CPU_IF_IDENT_0_RESET_VAL _MK_MASK_CONST(0
x3901043b) |
| 354 #define FIC_PROC_IF_CPU_IF_IDENT_0_RESET_MASK _MK_MASK_CONST(0
xffffffff) |
| 355 #define FIC_PROC_IF_CPU_IF_IDENT_0_SW_DEFAULT_VAL _MK_MASK
_CONST(0x0) |
| 356 #define FIC_PROC_IF_CPU_IF_IDENT_0_SW_DEFAULT_MASK _MK_MASK
_CONST(0x0) |
| 357 #define FIC_PROC_IF_CPU_IF_IDENT_0_READ_MASK _MK_MASK_CONST(0
xffffffff) |
| 358 #define FIC_PROC_IF_CPU_IF_IDENT_0_WRITE_MASK _MK_MASK_CONST(0
x0) |
| 359 // Returns the JEP106 code of the company that implemented |
| 360 // the Cortex-A9 processor interface RTL. |
| 361 #define FIC_PROC_IF_CPU_IF_IDENT_0_IMPLEMENTOR_SHIFT _MK_SHIF
T_CONST(0) |
| 362 #define FIC_PROC_IF_CPU_IF_IDENT_0_IMPLEMENTOR_FIELD (_MK_MAS
K_CONST(0xfff) << FIC_PROC_IF_CPU_IF_IDENT_0_IMPLEMENTOR_SHIFT) |
| 363 #define FIC_PROC_IF_CPU_IF_IDENT_0_IMPLEMENTOR_RANGE 11:0 |
| 364 #define FIC_PROC_IF_CPU_IF_IDENT_0_IMPLEMENTOR_WOFFSET 0x0 |
| 365 #define FIC_PROC_IF_CPU_IF_IDENT_0_IMPLEMENTOR_DEFAULT _MK_MASK
_CONST(0x43b) |
| 366 #define FIC_PROC_IF_CPU_IF_IDENT_0_IMPLEMENTOR_DEFAULT_MASK
_MK_MASK_CONST(0xfff) |
| 367 #define FIC_PROC_IF_CPU_IF_IDENT_0_IMPLEMENTOR_SW_DEFAULT
_MK_MASK_CONST(0x0) |
| 368 #define FIC_PROC_IF_CPU_IF_IDENT_0_IMPLEMENTOR_SW_DEFAULT_MASK
_MK_MASK_CONST(0x0) |
| 369 |
| 370 // Returns the revision number of the Interrupt Controller |
| 371 #define FIC_PROC_IF_CPU_IF_IDENT_0_REVISION_NUMBER_SHIFT
_MK_SHIFT_CONST(12) |
| 372 #define FIC_PROC_IF_CPU_IF_IDENT_0_REVISION_NUMBER_FIELD
(_MK_MASK_CONST(0xf) << FIC_PROC_IF_CPU_IF_IDENT_0_REVISION_NUMBER_SHIFT) |
| 373 #define FIC_PROC_IF_CPU_IF_IDENT_0_REVISION_NUMBER_RANGE
15:12 |
| 374 #define FIC_PROC_IF_CPU_IF_IDENT_0_REVISION_NUMBER_WOFFSET
0x0 |
| 375 #define FIC_PROC_IF_CPU_IF_IDENT_0_REVISION_NUMBER_DEFAULT
_MK_MASK_CONST(0x0) |
| 376 #define FIC_PROC_IF_CPU_IF_IDENT_0_REVISION_NUMBER_DEFAULT_MASK
_MK_MASK_CONST(0xf) |
| 377 #define FIC_PROC_IF_CPU_IF_IDENT_0_REVISION_NUMBER_SW_DEFAULT
_MK_MASK_CONST(0x0) |
| 378 #define FIC_PROC_IF_CPU_IF_IDENT_0_REVISION_NUMBER_SW_DEFAULT_MASK
_MK_MASK_CONST(0x0) |
| 379 |
| 380 // Identifies the architecture version |
| 381 #define FIC_PROC_IF_CPU_IF_IDENT_0_ARCHITECTURE_VERSION_SHIFT
_MK_SHIFT_CONST(16) |
| 382 #define FIC_PROC_IF_CPU_IF_IDENT_0_ARCHITECTURE_VERSION_FIELD
(_MK_MASK_CONST(0xf) << FIC_PROC_IF_CPU_IF_IDENT_0_ARCHITECTURE_VERSION_SHIFT) |
| 383 #define FIC_PROC_IF_CPU_IF_IDENT_0_ARCHITECTURE_VERSION_RANGE
19:16 |
| 384 #define FIC_PROC_IF_CPU_IF_IDENT_0_ARCHITECTURE_VERSION_WOFFSET
0x0 |
| 385 #define FIC_PROC_IF_CPU_IF_IDENT_0_ARCHITECTURE_VERSION_DEFAULT
_MK_MASK_CONST(0x1) |
| 386 #define FIC_PROC_IF_CPU_IF_IDENT_0_ARCHITECTURE_VERSION_DEFAULT_MASK
_MK_MASK_CONST(0xf) |
| 387 #define FIC_PROC_IF_CPU_IF_IDENT_0_ARCHITECTURE_VERSION_SW_DEFAULT
_MK_MASK_CONST(0x0) |
| 388 #define FIC_PROC_IF_CPU_IF_IDENT_0_ARCHITECTURE_VERSION_SW_DEFAULT_MASK
_MK_MASK_CONST(0x0) |
| 389 |
| 390 // Identifies the peripheral |
| 391 #define FIC_PROC_IF_CPU_IF_IDENT_0_PART_NUMBER_SHIFT _MK_SHIF
T_CONST(20) |
| 392 #define FIC_PROC_IF_CPU_IF_IDENT_0_PART_NUMBER_FIELD (_MK_MAS
K_CONST(0xfff) << FIC_PROC_IF_CPU_IF_IDENT_0_PART_NUMBER_SHIFT) |
| 393 #define FIC_PROC_IF_CPU_IF_IDENT_0_PART_NUMBER_RANGE 31:20 |
| 394 #define FIC_PROC_IF_CPU_IF_IDENT_0_PART_NUMBER_WOFFSET 0x0 |
| 395 #define FIC_PROC_IF_CPU_IF_IDENT_0_PART_NUMBER_DEFAULT _MK_MASK
_CONST(0x390) |
| 396 #define FIC_PROC_IF_CPU_IF_IDENT_0_PART_NUMBER_DEFAULT_MASK
_MK_MASK_CONST(0xfff) |
| 397 #define FIC_PROC_IF_CPU_IF_IDENT_0_PART_NUMBER_SW_DEFAULT
_MK_MASK_CONST(0x0) |
| 398 #define FIC_PROC_IF_CPU_IF_IDENT_0_PART_NUMBER_SW_DEFAULT_MASK
_MK_MASK_CONST(0x0) |
| 399 |
| 400 |
| 401 // |
| 402 // REGISTER LIST |
| 403 // |
| 404 #define LIST_ARFIC_PROC_IF_REGS(_op_) \ |
| 405 _op_(FIC_PROC_IF_CONTROL_0) \ |
| 406 _op_(FIC_PROC_IF_PRIORITY_MASK_0) \ |
| 407 _op_(FIC_PROC_IF_BIN_PT_0) \ |
| 408 _op_(FIC_PROC_IF_INT_ACK_0) \ |
| 409 _op_(FIC_PROC_IF_EOI_0) \ |
| 410 _op_(FIC_PROC_IF_RUN_PRIORITY_0) \ |
| 411 _op_(FIC_PROC_IF_HI_PEND_0) \ |
| 412 _op_(FIC_PROC_IF_ALIAS_BIN_PT_NS_0) \ |
| 413 _op_(FIC_PROC_IF_CPU_IF_IDENT_0) |
| 414 |
| 415 |
| 416 // |
| 417 // ADDRESS SPACES |
| 418 // |
| 419 |
| 420 #define BASE_ADDRESS_FIC_PROC_IF 0x00000100 |
| 421 |
| 422 // |
| 423 // ARFIC_PROC_IF REGISTER BANKS |
| 424 // |
| 425 |
| 426 #define FIC_PROC_IF0_FIRST_REG 0x0100 // FIC_PROC_IF_CONTROL_0 |
| 427 #define FIC_PROC_IF0_LAST_REG 0x0120 // FIC_PROC_IF_CPU_IF_IDENT_0 |
| 428 |
| 429 #ifndef _MK_SHIFT_CONST |
| 430 #define _MK_SHIFT_CONST(_constant_) _constant_ |
| 431 #endif |
| 432 #ifndef _MK_MASK_CONST |
| 433 #define _MK_MASK_CONST(_constant_) _constant_ |
| 434 #endif |
| 435 #ifndef _MK_ENUM_CONST |
| 436 #define _MK_ENUM_CONST(_constant_) (_constant_ ## UL) |
| 437 #endif |
| 438 #ifndef _MK_ADDR_CONST |
| 439 #define _MK_ADDR_CONST(_constant_) _constant_ |
| 440 #endif |
| 441 |
| 442 #endif // ifndef ___ARFIC_PROC_IF_H_INC_ |
OLD | NEW |