1 1.7 nonaka /* $NetBSD: openpicreg.h,v 1.7 2014/12/27 16:19:33 nonaka Exp $ */ 2 1.1 matt /*- 3 1.2 matt * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc. 4 1.1 matt * All rights reserved. 5 1.1 matt * 6 1.1 matt * This code is derived from software contributed to The NetBSD Foundation 7 1.2 matt * by Raytheon BBN Technologies Corp and Defense Advanced Research Projects 8 1.2 matt * Agency and which was developed by Matt Thomas of 3am Software Foundry. 9 1.2 matt * 10 1.2 matt * This material is based upon work supported by the Defense Advanced Research 11 1.2 matt * Projects Agency and Space and Naval Warfare Systems Center, Pacific, under 12 1.2 matt * Contract No. N66001-09-C-2073. 13 1.2 matt * Approved for Public Release, Distribution Unlimited 14 1.1 matt * 15 1.1 matt * Redistribution and use in source and binary forms, with or without 16 1.1 matt * modification, are permitted provided that the following conditions 17 1.1 matt * are met: 18 1.1 matt * 1. Redistributions of source code must retain the above copyright 19 1.1 matt * notice, this list of conditions and the following disclaimer. 20 1.1 matt * 2. Redistributions in binary form must reproduce the above copyright 21 1.1 matt * notice, this list of conditions and the following disclaimer in the 22 1.1 matt * documentation and/or other materials provided with the distribution. 23 1.1 matt * 24 1.1 matt * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 25 1.1 matt * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 26 1.1 matt * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 27 1.1 matt * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 28 1.1 matt * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 29 1.1 matt * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 30 1.1 matt * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 31 1.1 matt * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 32 1.1 matt * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 33 1.1 matt * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 34 1.1 matt * POSSIBILITY OF SUCH DAMAGE. 35 1.1 matt */ 36 1.1 matt 37 1.1 matt #ifndef _POWERPC_BOOKE_OPENPICREG_H_ 38 1.1 matt #define _POWERPC_BOOKE_OPENPICREG_H_ 39 1.1 matt 40 1.1 matt /* 41 1.1 matt * Common definition of VPR registers (IPIVPR, GTVPR, ...) 42 1.1 matt */ 43 1.1 matt #define VPR_MSK 0x80000000 /* Mask */ 44 1.1 matt #define VPR_A 0x40000000 /* Activity */ 45 1.1 matt #define VPR_P 0x00800000 /* Polatity */ 46 1.1 matt #define VPR_P_HIGH 0x00800000 /* Active High */ 47 1.1 matt #define VPR_S 0x00400000 /* Sense */ 48 1.1 matt #define VPR_S_LEVEL 0x00400000 /* Level Sensitive */ 49 1.1 matt #define VPR_PRIORITY 0x000f0000 /* Priority */ 50 1.1 matt #define VPR_PRIORITY_GET(n) (((n) >> 16) & 0x000f) 51 1.1 matt #define VPR_PRIORITY_MAKE(n) (((n) & 0x000f) << 16) 52 1.1 matt #define VPR_VECTOR 0x0000ffff /* Vector */ 53 1.1 matt #define VPR_VECTOR_GET(n) (((n) >> 0) & 0xffff) 54 1.1 matt #define VPR_VECTOR_MAKE(n) (((n) & 0xffff) << 0) 55 1.1 matt 56 1.1 matt #define VPR_LEVEL_LOW (VPR_S_LEVEL) 57 1.1 matt #define VPR_LEVEL_HIGH (VPR_S_LEVEL | VPR_P_HIGH) 58 1.1 matt 59 1.1 matt /* 60 1.1 matt * Common definition of DR registers (IPIVPR, GTVPR, ...) 61 1.1 matt */ 62 1.1 matt #define DR_EP 0x80000000 /* external signal */ 63 1.1 matt #define DR_CI(n) (1 << (30 - (n))) /* critical intr cpu n */ 64 1.1 matt #define DR_P(n) (1 << (n)) /* intr cpu n */ 65 1.1 matt 66 1.1 matt 67 1.1 matt #define OPENPIC_BRR1 0x0000 /* Block Revision 1 */ 68 1.1 matt #define BRR1_IPID(n) (((n) >> 16) & 0xffff) 69 1.1 matt #define BRR1_IPMJ(n) (((n) >> 8) & 0x00ff) 70 1.1 matt #define BRR1_IPMN(n) (((n) >> 0) & 0x00ff) 71 1.1 matt #define OPENPIC_BRR2 0x0010 /* Block Revision 2 */ 72 1.1 matt #define BRR2_IPINT0(n) (((n) >> 16) & 0xff) 73 1.1 matt #define BRR2_IPCFG0(n) (((n) >> 0) & 0xff) 74 1.1 matt 75 1.1 matt #define OPENPIC_IPIDR(n) (0x0040 + 0x10 * (n)) 76 1.1 matt 77 1.1 matt #define OPENPIC_CTPR 0x0080 78 1.1 matt #define OPENPIC_WHOAMI 0x0090 79 1.1 matt #define OPENPIC_IACK 0x00a0 80 1.1 matt #define OPENPIC_EOI 0x00b0 81 1.1 matt 82 1.1 matt #define OPENPIC_FRR 0x1000 /* Feature Reporting */ 83 1.2 matt #define FRR_NIRQ_GET(n) (((n) >> 16) & 0x7ff) /* intr sources - 1 */ 84 1.2 matt #define FRR_NCPU_GET(n) (((n) >> 8) & 0x01f) /* cpus - 1 */ 85 1.2 matt #define FRR_VID_GET(n) (((n) >> 0) & 0x0ff) /* version id */ 86 1.1 matt #define OPENPIC_GCR 0x1020 /* Global Configuration */ 87 1.1 matt #define GCR_RST 0x80000000 /* Reset */ 88 1.1 matt #define GCR_M 0x20000000 /* Mixed Mode */ 89 1.1 matt #define OPENPIC_VIR 0x1080 /* Vendor Identification */ 90 1.1 matt #define OPENPIC_PIR 0x1090 /* Processor Initialization */ 91 1.1 matt 92 1.1 matt #define OPENPIC_IPIVPR(n) (0x10a0 + 0x10 * (n)) 93 1.1 matt #define OPENPIC_SVR 0x10e0 94 1.1 matt #define SVR_VECTOR 0x0000ffff /* Vector */ 95 1.1 matt #define SVR_VECTOR_GET(n) (((n) >> 0) & 0xffff) 96 1.1 matt #define SVR_VECTOR_MAKE(n) (((n) & 0xffff) << 0) 97 1.1 matt 98 1.1 matt #define OPENPIC_TFRR 0x10f0 99 1.2 matt #define OPENPIC_GTCCR(cpu, n) (0x1100 + 0x40 * (n) + 0x1000 * (cpu)) 100 1.1 matt #define GTCCR_TOG 0x80000000 101 1.1 matt #define GTCCR_COUNT 0x7fffffff 102 1.2 matt #define OPENPIC_GTBCR(cpu, n) (0x1110 + 0x40 * (n) + 0x1000 * (cpu)) 103 1.1 matt #define GTBCR_CI 0x80000000 /* Count Inhibit */ 104 1.1 matt #define GTBCR_BASECNT 0x7fffffff /* Base Count */ 105 1.2 matt #define OPENPIC_GTVPR(cpu, n) (0x1120 + 0x40 * (n) + 0x1000 * (cpu)) 106 1.2 matt #define OPENPIC_GTDR(cpu, n) (0x1130 + 0x40 * (n) + 0x1000 * (cpu)) 107 1.1 matt #define OPENPIC_TCR 0x1300 108 1.1 matt #define TCR_ROVR(n) (1 << (24 + (n))) /* timer n rollover */ 109 1.1 matt #define TCR_RTM 0x00010000 /* real time source */ 110 1.1 matt #define TCR_CLKR 0x00000300 /* clock ratio */ 111 1.1 matt #define TCR_CLKR_64 0x00000300 /* divide by .. */ 112 1.1 matt #define TCR_CLKR_32 0x00000200 /* divide by .. */ 113 1.1 matt #define TCR_CLKR_16 0x00000100 /* divide by .. */ 114 1.1 matt #define TCR_CLKR_8 0x00000000 /* divide by .. */ 115 1.1 matt #define TCR_CASC 0x00000007 /* cascase timers */ 116 1.1 matt #define TCR_CASC_0123 0x00000007 117 1.1 matt #define TCR_CASC_123 0x00000006 118 1.1 matt #define TCR_CASC_01_23 0x00000005 119 1.1 matt #define TCR_CASC_23 0x00000004 120 1.1 matt #define TCR_CASC_012 0x00000003 121 1.1 matt #define TCR_CASC_12 0x00000002 122 1.1 matt #define TCR_CASC_01 0x00000001 123 1.1 matt #define TCR_CASC_OFF 0x00000000 124 1.1 matt 125 1.1 matt #define OPENPIC_ERQSR 0x1308 /* ext. intr summary */ 126 1.1 matt #define ERQSR_A(n) (1 << (31 - (n))) /* intr <n> active */ 127 1.1 matt #define OPENPIC_IRQSR0 0x1310 /* irq out summary 0 */ 128 1.1 matt #define IRSR0_MSI_A(n) (1 << (31 - (n))) /* msg sig intr <n> */ 129 1.1 matt #define IRSR0_MSG_A(n) (1 << (20 - ((n) ^ 4))) /* shared msg intr */ 130 1.1 matt #define IRSR0_EXT_A(n) (1 << (11 - (n))) /* ext int <n> active */ 131 1.1 matt #define OPENPIC_IRQSR1 0x1320 /* irq out summary 1 */ 132 1.1 matt #define IRQSR1_A(n) (1 << (31 - ((n) - 0))) /* intr <n> active */ 133 1.1 matt #define OPENPIC_IRQSR2 0x1324 /* irq out summary 2 */ 134 1.1 matt #define IRQSR2_A(n) (1 << (31 - ((n) - 32))) /* intr <n> active */ 135 1.1 matt #define OPENPIC_CISR0 0x1330 136 1.1 matt #define OPENPIC_CISR1 0x1340 137 1.1 matt #define CISR1_A(n) (1 << (31 - ((n) - 0))) /* intr <n> active */ 138 1.1 matt #define OPENPIC_CISR2 0x1344 139 1.1 matt #define CISR2_A(n) (1 << (31 - ((n) - 32))) /* intr <n> active */ 140 1.1 matt 141 1.1 matt /* 142 1.1 matt * Performance Monitor Mask Registers 143 1.1 matt */ 144 1.1 matt #define OPENPIC_PMMR0(n) (0x1350 + 0x20 * (n)) 145 1.1 matt #define PMMR0_MShl(n) (1 << (31 - (n))) 146 1.1 matt #define PMMR0_IPI(n) (1 << (24 - (n))) 147 1.1 matt #define PMMR0_TIMER(n) (1 << (20 - (n))) 148 1.1 matt #define PMMR0_MSG(n) (1 << (16 - ((n) & 7))) 149 1.1 matt #define PMMR0_EXT(n) (1 << (12 - (n))) 150 1.1 matt #define OPENPIC_PMMR1(n) (0x1360 + 0x20 * (n)) 151 1.1 matt #define PMMR1_INT(n) (1 << (31 - ((n) - 0))) /* intr <n> active */ 152 1.1 matt #define OPENPIC_PMMR2(n) (0x1364 + 0x20 * (n)) 153 1.1 matt #define PMMR2_INT(n) (1 << (31 - ((n) - 32))) /* intr <n> active */ 154 1.1 matt 155 1.1 matt /* 156 1.1 matt * Message Registers 157 1.1 matt */ 158 1.1 matt #define OPENPIC_MSGR(cpu, n) (0x1400 + 0x1000 * (cpu) + 0x10 * (n)) 159 1.2 matt #define OPENPIC_MER(cpu) (0x1500 + 0x1000 * (cpu)) 160 1.2 matt #define MER_MSG(n) (1 << (n)) 161 1.1 matt #define OPENPIC_MSR(cpu) (0x1510 + 0x1000 * (cpu)) 162 1.2 matt #define MSR_MSG(n) (1 << (n)) 163 1.1 matt 164 1.1 matt #define OPENPIC_MSIR(n) (0x1600 + 0x10 * (n)) 165 1.1 matt #define OPENPIC_MSISR 0x1720 166 1.2 matt #define MSIR_SR(n) (1 << (n)) 167 1.1 matt #define OPENPIC_MSIIR 0x1740 168 1.1 matt #define MSIIR_BIT(srs, ibs) (((srs) << 29) | ((ibs) << 24)) 169 1.1 matt 170 1.1 matt /* 171 1.1 matt * Interrupt Source Configuration Registers 172 1.1 matt */ 173 1.1 matt #define OPENPIC_EIVPR(n) (0x10000 + 0x20 * (n)) 174 1.1 matt #define OPENPIC_EIDR(n) (0x10010 + 0x20 * (n)) 175 1.1 matt #define OPENPIC_IIVPR(n) (0x10200 + 0x20 * (n)) 176 1.1 matt #define OPENPIC_IIDR(n) (0x10210 + 0x20 * (n)) 177 1.1 matt #define OPENPIC_MIVPR(n) (0x11600 + 0x20 * (n)) 178 1.1 matt #define OPENPIC_MIDR(n) (0x11610 + 0x20 * (n)) 179 1.1 matt #define OPENPIC_MSIVPR(n) (0x11c00 + 0x20 * (n)) 180 1.1 matt #define OPENPIC_MSIDR(n) (0x11c10 + 0x20 * (n)) 181 1.1 matt 182 1.3 matt #define MPC8536_EXTERNALSOURCES 12 183 1.3 matt #define MPC8536_ONCHIPSOURCES 64 184 1.3 matt #define MPC8536_ONCHIPBITMAP { 0xfe07ffff, 0x05501c00 } 185 1.3 matt #define MPC8536_IPISOURCES 8 186 1.3 matt #define MPC8536_TIMERSOURCES 8 187 1.3 matt #define MPC8536_MISOURCES 4 188 1.3 matt #define MPC8536_MSIGROUPSOURCES 8 189 1.3 matt #define MPC8536_NCPUS 1 190 1.3 matt #define MPC8536_SOURCES /* 104 */ \ 191 1.3 matt (MPC8536_EXTERNALSOURCES \ 192 1.3 matt + MPC8536_ONCHIPSOURCES \ 193 1.3 matt + MPC8536_MSIGROUPSOURCES \ 194 1.3 matt + MPC8536_NCPUS*(MPC8536_IPISOURCES \ 195 1.3 matt + MPC8536_TIMERSOURCES \ 196 1.3 matt + MPC8536_MISOURCES)) 197 1.3 matt 198 1.2 matt #define MPC8544_EXTERNALSOURCES 12 199 1.2 matt #define MPC8544_ONCHIPSOURCES 48 200 1.5 matt #define MPC8544_ONCHIPBITMAP { 0x3c07efff, 0x00000000 } 201 1.2 matt #define MPC8544_IPISOURCES 4 202 1.2 matt #define MPC8544_TIMERSOURCES 4 203 1.2 matt #define MPC8544_MISOURCES 4 204 1.2 matt #define MPC8544_MSIGROUPSOURCES 8 205 1.2 matt #define MPC8544_NCPUS 1 206 1.3 matt #define MPC8544_SOURCES /* 80 */ \ 207 1.2 matt (MPC8544_EXTERNALSOURCES \ 208 1.2 matt + MPC8544_ONCHIPSOURCES \ 209 1.2 matt + MPC8544_MSIGROUPSOURCES \ 210 1.2 matt + MPC8544_NCPUS*(MPC8544_IPISOURCES \ 211 1.2 matt + MPC8544_TIMERSOURCES \ 212 1.2 matt + MPC8544_MISOURCES)) 213 1.2 matt 214 1.1 matt #define MPC8548_EXTERNALSOURCES 12 215 1.2 matt #define MPC8548_ONCHIPSOURCES 48 216 1.2 matt #define MPC8548_ONCHIPBITMAP { 0x3dffffff, 0x000000f3 } 217 1.1 matt #define MPC8548_IPISOURCES 4 218 1.1 matt #define MPC8548_TIMERSOURCES 4 219 1.1 matt #define MPC8548_MISOURCES 4 220 1.2 matt #define MPC8548_MSIGROUPSOURCES 8 221 1.1 matt #define MPC8548_NCPUS 1 222 1.3 matt #define MPC8548_SOURCES /* 80 */ \ 223 1.1 matt (MPC8548_EXTERNALSOURCES \ 224 1.2 matt + MPC8548_ONCHIPSOURCES \ 225 1.2 matt + MPC8548_MSIGROUPSOURCES \ 226 1.1 matt + MPC8548_NCPUS*(MPC8548_IPISOURCES \ 227 1.1 matt + MPC8548_TIMERSOURCES \ 228 1.1 matt + MPC8548_MISOURCES)) 229 1.1 matt 230 1.3 matt #define MPC8555_EXTERNALSOURCES 12 231 1.3 matt #define MPC8555_ONCHIPSOURCES 32 232 1.3 matt #define MPC8555_ONCHIPBITMAP { 0x7d1c63ff, 0 } 233 1.3 matt #define MPC8555_IPISOURCES 4 234 1.3 matt #define MPC8555_TIMERSOURCES 4 235 1.3 matt #define MPC8555_MISOURCES 4 236 1.3 matt #define MPC8555_MSIGROUPSOURCES 0 237 1.3 matt #define MPC8555_NCPUS 1 238 1.3 matt #define MPC8555_SOURCES /* 56 */ \ 239 1.3 matt (MPC8555_EXTERNALSOURCES \ 240 1.3 matt + MPC8555_ONCHIPSOURCES \ 241 1.3 matt + MPC8555_MSIGROUPSOURCES \ 242 1.3 matt + MPC8555_NCPUS*(MPC8555_IPISOURCES \ 243 1.3 matt + MPC8555_TIMERSOURCES \ 244 1.3 matt + MPC8555_MISOURCES)) 245 1.3 matt 246 1.3 matt #define MPC8568_EXTERNALSOURCES 12 247 1.3 matt #define MPC8568_ONCHIPSOURCES 48 248 1.3 matt #define MPC8568_ONCHIPBITMAP { 0xfd1c65ff, 0x000b9e7 } 249 1.3 matt #define MPC8568_IPISOURCES 4 250 1.3 matt #define MPC8568_TIMERSOURCES 4 251 1.3 matt #define MPC8568_MISOURCES 4 252 1.3 matt #define MPC8568_MSIGROUPSOURCES 8 253 1.3 matt #define MPC8568_NCPUS 1 254 1.3 matt #define MPC8568_SOURCES /* 80 */ \ 255 1.3 matt (MPC8568_EXTERNALSOURCES \ 256 1.3 matt + MPC8568_ONCHIPSOURCES \ 257 1.3 matt + MPC8568_MSIGROUPSOURCES \ 258 1.3 matt + MPC8568_NCPUS*(MPC8568_IPISOURCES \ 259 1.3 matt + MPC8568_TIMERSOURCES \ 260 1.3 matt + MPC8568_MISOURCES)) 261 1.2 matt 262 1.1 matt #define MPC8572_EXTERNALSOURCES 12 263 1.2 matt #define MPC8572_ONCHIPSOURCES 64 264 1.2 matt #define MPC8572_ONCHIPBITMAP { 0xdeffffff, 0xf8ff93f3 } 265 1.1 matt #define MPC8572_IPISOURCES 4 266 1.1 matt #define MPC8572_TIMERSOURCES 4 267 1.1 matt #define MPC8572_MISOURCES 4 268 1.2 matt #define MPC8572_MSIGROUPSOURCES 8 269 1.2 matt #define MPC8572_NCPUS 2 270 1.3 matt #define MPC8572_SOURCES /* 108 */ \ 271 1.1 matt (MPC8572_EXTERNALSOURCES \ 272 1.2 matt + MPC8572_ONCHIPSOURCES \ 273 1.2 matt + MPC8572_MSIGROUPSOURCES \ 274 1.1 matt + MPC8572_NCPUS*(MPC8572_IPISOURCES \ 275 1.1 matt + MPC8572_TIMERSOURCES \ 276 1.1 matt + MPC8572_MISOURCES)) 277 1.1 matt 278 1.7 nonaka #define P1023_EXTERNALSOURCES 12 279 1.7 nonaka #define P1023_ONCHIPSOURCES 64 280 1.7 nonaka #define P1023_ONCHIPBITMAP { 0xbc07f5f9, 0xf0000e00 } 281 1.7 nonaka #define P1023_IPISOURCES 4 282 1.7 nonaka #define P1023_TIMERSOURCES 4/*8?*/ 283 1.7 nonaka #define P1023_MISOURCES 4/*8?*/ 284 1.7 nonaka #define P1023_MSIGROUPSOURCES 8 285 1.7 nonaka #define P1023_NCPUS 2 286 1.7 nonaka #define P1023_SOURCES /* 116 */ \ 287 1.7 nonaka (P1023_EXTERNALSOURCES \ 288 1.7 nonaka + P1023_ONCHIPSOURCES \ 289 1.7 nonaka + P1023_MSIGROUPSOURCES \ 290 1.7 nonaka + P1023_NCPUS*(P1023_IPISOURCES \ 291 1.7 nonaka + P1023_TIMERSOURCES \ 292 1.7 nonaka + P1023_MISOURCES)) 293 1.7 nonaka #define P1017_NCPUS 1 294 1.7 nonaka #define P1017_SOURCES \ 295 1.7 nonaka (P1023_EXTERNALSOURCES \ 296 1.7 nonaka + P1023_ONCHIPSOURCES \ 297 1.7 nonaka + P1023_MSIGROUPSOURCES \ 298 1.7 nonaka + P1017_NCPUS*(P1023_IPISOURCES \ 299 1.7 nonaka + P1023_TIMERSOURCES \ 300 1.7 nonaka + P1023_MISOURCES)) 301 1.7 nonaka 302 1.6 matt #define P1025_EXTERNALSOURCES 6 303 1.6 matt #define P1025_ONCHIPSOURCES 64 304 1.6 matt #define P1025_ONCHIPBITMAP { 0xbd1fffff, 0x01789c18 } 305 1.6 matt #define P1025_IPISOURCES 4 306 1.6 matt #define P1025_TIMERSOURCES 4 307 1.6 matt #define P1025_MISOURCES 4 308 1.6 matt #define P1025_MSIGROUPSOURCES 8 309 1.6 matt #define P1025_NCPUS 2 310 1.6 matt #define P1025_SOURCES /* 102 */ \ 311 1.6 matt (P1025_EXTERNALSOURCES \ 312 1.6 matt + P1025_ONCHIPSOURCES \ 313 1.6 matt + P1025_MSIGROUPSOURCES \ 314 1.6 matt + P1025_NCPUS*(P1025_IPISOURCES \ 315 1.6 matt + P1025_TIMERSOURCES \ 316 1.6 matt + P1025_MISOURCES)) 317 1.6 matt #define P1016_NCPUS 1 318 1.6 matt #define P1016_SOURCES \ 319 1.6 matt (P1025_EXTERNALSOURCES \ 320 1.6 matt + P1025_ONCHIPSOURCES \ 321 1.6 matt + P1025_MSIGROUPSOURCES \ 322 1.6 matt + P1016_NCPUS*(P1025_IPISOURCES \ 323 1.6 matt + P1025_TIMERSOURCES \ 324 1.6 matt + P1025_MISOURCES)) 325 1.6 matt 326 1.3 matt #define P20x0_EXTERNALSOURCES 12 327 1.3 matt #define P20x0_ONCHIPSOURCES 64 328 1.4 matt #define P20x0_ONCHIPBITMAP { 0xbd1ff7ff, 0xf17005e7 } 329 1.3 matt #define P20x0_IPISOURCES 4 330 1.3 matt #define P20x0_TIMERSOURCES 4 331 1.3 matt #define P20x0_MISOURCES 4 332 1.3 matt #define P20x0_MSIGROUPSOURCES 8 333 1.3 matt #define P2020_NCPUS 2 334 1.3 matt #define P2020_SOURCES /* 108 */ \ 335 1.3 matt (P20x0_EXTERNALSOURCES \ 336 1.3 matt + P20x0_ONCHIPSOURCES \ 337 1.3 matt + P20x0_MSIGROUPSOURCES \ 338 1.3 matt + P2020_NCPUS*(P20x0_IPISOURCES \ 339 1.3 matt + P20x0_TIMERSOURCES \ 340 1.3 matt + P20x0_MISOURCES)) 341 1.3 matt #define P2010_NCPUS 1 342 1.3 matt #define P2010_SOURCES \ 343 1.3 matt (P20x0_EXTERNALSOURCES \ 344 1.3 matt + P20x0_ONCHIPSOURCES \ 345 1.3 matt + P20x0_MSIGROUPSOURCES \ 346 1.3 matt + P2010_NCPUS*(P20x0_IPISOURCES \ 347 1.3 matt + P20x0_TIMERSOURCES \ 348 1.3 matt + P20x0_MISOURCES)) 349 1.3 matt 350 1.1 matt /* 351 1.1 matt * Per-CPU Registers 352 1.1 matt */ 353 1.1 matt #define OPENPIC_IPIDRn(cpu, n) (0x20040 + 0x1000 * (cpu) + 0x10 * (n)) 354 1.1 matt #define OPENPIC_CTPRn(cpu) (0x20080 + 0x1000 * (cpu)) 355 1.1 matt #define OPENPIC_WHOAMIn(cpu) (0x20090 + 0x1000 * (cpu)) 356 1.1 matt #define OPENPIC_IACKn(cpu) (0x200a0 + 0x1000 * (cpu)) 357 1.1 matt #define OPENPIC_EOIn(cpu) (0x200b0 + 0x1000 * (cpu)) 358 1.1 matt 359 1.2 matt #define IRQ_SPURIOUS 0xffff 360 1.2 matt 361 1.1 matt #define ISOURCE_L2 0 362 1.6 matt #define ISOURCE_ERROR 0 363 1.1 matt #define ISOURCE_ECM 1 364 1.6 matt #define ISOURCE_ETSEC1_G1_TX 1 /* P1025 */ 365 1.2 matt #define ISOURCE_DDR 2 366 1.6 matt #define ISOURCE_ETSEC1_G1_RX 2 /* P1025 */ 367 1.1 matt #define ISOURCE_LBC 3 368 1.1 matt #define ISOURCE_DMA_CHAN1 4 369 1.1 matt #define ISOURCE_DMA_CHAN2 5 370 1.1 matt #define ISOURCE_DMA_CHAN3 6 371 1.1 matt #define ISOURCE_DMA_CHAN4 7 372 1.6 matt #define ISOURCE_PCIEX3_MPC8572 8 /* MPC8572/P20x0/P1025 */ 373 1.3 matt #define ISOURCE_PCI1 8 /* MPC8548/MPC8544/MPC8536/MPC8555 */ 374 1.6 matt #define ISOURCE_ETSEC1_G1_ERR 8 /* P1025 */ 375 1.7 nonaka #define ISOURCE_FMAN 8 /* P1023 */ 376 1.1 matt #define ISOURCE_PCI2 9 /* MPC8548 */ 377 1.3 matt #define ISOURCE_PCIEX2 9 /* MPC8544/MPC8572/MPC8536/P20x0 */ 378 1.6 matt #define ISOURCE_ETSEC3_G1_TX 9 /* P1025 */ 379 1.1 matt #define ISOURCE_PCIEX 10 380 1.6 matt #define ISOURCE_ETSEC3_G1_RX 10 /* P1025 */ 381 1.7 nonaka #define ISOURCE_MDIO 10 /* P1023 */ 382 1.2 matt #define ISOURCE_PCIEX3 11 /* MPC8544/MPC8536 */ 383 1.6 matt #define ISOURCE_ETSEC3_G1_ERR 11 /* P1025 */ 384 1.7 nonaka #define ISOURCE_USB1 12 /* MPC8536/P20x0/P1025/P1023 */ 385 1.1 matt #define ISOURCE_ETSEC1_TX 13 386 1.7 nonaka #define ISOURCE_QMAN0 13 /* P1023 */ 387 1.1 matt #define ISOURCE_ETSEC1_RX 14 388 1.7 nonaka #define ISOURCE_BMAN0 14 /* P1023 */ 389 1.1 matt #define ISOURCE_ETSEC3_TX 15 390 1.7 nonaka #define ISOURCE_QMAN1 15 /* P1023 */ 391 1.1 matt #define ISOURCE_ETSEC3_RX 16 392 1.7 nonaka #define ISOURCE_BMAN1 16 /* P1023 */ 393 1.1 matt #define ISOURCE_ETSEC3_ERR 17 394 1.7 nonaka #define ISOURCE_QMAN2 17 /* P1023 */ 395 1.1 matt #define ISOURCE_ETSEC1_ERR 18 396 1.7 nonaka #define ISOURCE_BMAN2 18 /* P1023 */ 397 1.6 matt #define ISOURCE_ETSEC2_TX 19 /* !MPC8544/!MPC8536/!P1025 */ 398 1.6 matt #define ISOURCE_ETSEC2_RX 20 /* !MPC8544/!MPC8536/!P1025 */ 399 1.6 matt #define ISOURCE_ETSEC4_TX 21 /* !MPC8544/!MPC8536/!P20x0/!P1025 */ 400 1.6 matt #define ISOURCE_ETSEC4_RX 22 /* !MPC8544/!MPC8536/!P20x0/!P1025 */ 401 1.6 matt #define ISOURCE_ETSEC4_ERR 23 /* !MPC8544/!MPC8536/!P20x0/!P1025 */ 402 1.2 matt #define ISOURCE_ETSEC2_ERR 24 /* !MPC8544/!MPC8536 */ 403 1.1 matt #define ISOURCE_FEC 25 /* MPC8572 */ 404 1.2 matt #define ISOURCE_SATA2 25 /* MPC8536 */ 405 1.1 matt #define ISOURCE_DUART 26 406 1.1 matt #define ISOURCE_I2C 27 407 1.1 matt #define ISOURCE_PERFMON 28 408 1.1 matt #define ISOURCE_SECURITY1 29 409 1.3 matt #define ISOURCE_CPM 30 /* MPC8555 */ 410 1.3 matt #define ISOURCE_QEB_LOW 30 /* MPC8568 */ 411 1.2 matt #define ISOURCE_USB2 30 /* MPC8536 */ 412 1.2 matt #define ISOURCE_GPIO 31 /* MPC8572/!MPC8548 */ 413 1.6 matt #define ISOURCE_QEB_PORT 31 /* MPC8568/P1025 */ 414 1.6 matt #define ISOURCE_SRIO_EWPU 32 /* !MPC8548&!P20x0&!P1025 */ 415 1.6 matt #define ISOURCE_SRIO_ODBELL 33 /* !MPC8548&!P20x0&!P1025 */ 416 1.6 matt #define ISOURCE_SRIO_IDBELL 34 /* !MPC8548&!P20x0&!P1025 */ 417 1.6 matt #define ISOURCE_ETSEC2_G1_TX 35 /* P1025 */ 418 1.6 matt #define ISOURCE_ETSEC2_G1_RX 36 /* P1025 */ 419 1.6 matt #define ISOURCE_SRIO_OMU1 37 /* !MPC8548&!P20x0&!P1025 */ 420 1.6 matt #define ISOURCE_SRIO_IMU1 38 /* !MPC8548&!P20x0&!P1025 */ 421 1.6 matt #define ISOURCE_SRIO_OMU2 39 /* !MPC8548&!P20x0&!P1025 */ 422 1.6 matt #define ISOURCE_SRIO_IMU2 40 /* !MPC8548&!P20x0&!P1025 */ 423 1.1 matt #define ISOURCE_PME_GENERAL 41 /* MPC8572 */ 424 1.7 nonaka #define ISOURCE_SECURITY2_P1023 41 /* P1023 */ 425 1.6 matt #define ISOURCE_SECURITY2 42 /* MPC8572|MPC8536|P20x0|P1025 */ 426 1.7 nonaka #define ISOURCE_SEC_GENERAL 42 /* P1023 */ 427 1.6 matt #define ISOURCE_SPI 43 /* MPC8536|P20x0|P1025 */ 428 1.3 matt #define ISOURCE_QEB_IECC 43 /* MPC8568 */ 429 1.2 matt #define ISOURCE_USB3 44 /* MPC8536 */ 430 1.6 matt #define ISOURCE_QEB_MUECC 44 /* MPC8568|P1025 */ 431 1.3 matt #define ISOURCE_TLU1 45 /* MPC8568/MPC8572 */ 432 1.1 matt #define ISOURCE_46 46 433 1.6 matt #define ISOURCE_QEB_HIGH 47 /* MPC8548|P1025 */ 434 1.1 matt #define ISOURCE_PME_CHAN1 48 /* MPC8572 */ 435 1.1 matt #define ISOURCE_PME_CHAN2 49 /* MPC8572 */ 436 1.1 matt #define ISOURCE_PME_CHAN3 50 /* MPC8572 */ 437 1.1 matt #define ISOURCE_PME_CHAN4 51 /* MPC8572 */ 438 1.6 matt #define ISOURCE_ETSEC2_G1_ERR 51 /* P1025 */ 439 1.6 matt #define ISOURCE_ETSEC1_PTP 52 /* MPC8572|MPC8536|P20x0|P1025 */ 440 1.6 matt #define ISOURCE_ETSEC2_PTP 53 /* MPC8572|P20x0|P1025 */ 441 1.6 matt #define ISOURCE_ETSEC3_PTP 54 /* MPC8572|MPC8536|P20x0|P1025 */ 442 1.1 matt #define ISOURCE_ETSEC4_PTP 55 /* MPC8572 */ 443 1.6 matt #define ISOURCE_ESDHC 56 /* MPC8536|P20x0|P1025 */ 444 1.1 matt #define ISOURCE_57 57 445 1.2 matt #define ISOURCE_SATA1 58 /* MPC8536 */ 446 1.1 matt #define ISOURCE_TLU2 59 /* MPC8572 */ 447 1.7 nonaka #define ISOURCE_DMA2_CHAN1 60 /* MPC8572|P20x0|P1023 */ 448 1.7 nonaka #define ISOURCE_DMA2_CHAN2 61 /* MPC8572|P20x0|P1023 */ 449 1.7 nonaka #define ISOURCE_DMA2_CHAN3 62 /* MPC8572|P20x0|P1023 */ 450 1.7 nonaka #define ISOURCE_DMA2_CHAN4 63 /* MPC8572|P20x0|P1023 */ 451 1.1 matt 452 1.1 matt #endif /* _POWERPC_BOOKE_OPENPICREG_H_ */ 453