Home | History | Annotate | Line # | Download | only in booke
openpicreg.h revision 1.6.2.1
      1  1.6.2.1  jdolecek /*	$NetBSD: openpicreg.h,v 1.6.2.1 2017/12/03 11:36:37 jdolecek 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.6.2.1  jdolecek #define	P1023_EXTERNALSOURCES	12
    279  1.6.2.1  jdolecek #define	P1023_ONCHIPSOURCES	64
    280  1.6.2.1  jdolecek #define	P1023_ONCHIPBITMAP	{ 0xbc07f5f9, 0xf0000e00 }
    281  1.6.2.1  jdolecek #define	P1023_IPISOURCES	4
    282  1.6.2.1  jdolecek #define	P1023_TIMERSOURCES	4/*8?*/
    283  1.6.2.1  jdolecek #define	P1023_MISOURCES		4/*8?*/
    284  1.6.2.1  jdolecek #define	P1023_MSIGROUPSOURCES	8
    285  1.6.2.1  jdolecek #define	P1023_NCPUS		2
    286  1.6.2.1  jdolecek #define	P1023_SOURCES		/* 116 */		\
    287  1.6.2.1  jdolecek 	(P1023_EXTERNALSOURCES				\
    288  1.6.2.1  jdolecek 	 + P1023_ONCHIPSOURCES				\
    289  1.6.2.1  jdolecek 	 + P1023_MSIGROUPSOURCES			\
    290  1.6.2.1  jdolecek 	 + P1023_NCPUS*(P1023_IPISOURCES		\
    291  1.6.2.1  jdolecek 			  + P1023_TIMERSOURCES		\
    292  1.6.2.1  jdolecek 			  + P1023_MISOURCES))
    293  1.6.2.1  jdolecek #define	P1017_NCPUS		1
    294  1.6.2.1  jdolecek #define	P1017_SOURCES					\
    295  1.6.2.1  jdolecek 	(P1023_EXTERNALSOURCES				\
    296  1.6.2.1  jdolecek 	 + P1023_ONCHIPSOURCES				\
    297  1.6.2.1  jdolecek 	 + P1023_MSIGROUPSOURCES			\
    298  1.6.2.1  jdolecek 	 + P1017_NCPUS*(P1023_IPISOURCES		\
    299  1.6.2.1  jdolecek 			  + P1023_TIMERSOURCES		\
    300  1.6.2.1  jdolecek 			  + P1023_MISOURCES))
    301  1.6.2.1  jdolecek 
    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.6.2.1  jdolecek #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.6.2.1  jdolecek #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.6.2.1  jdolecek #define	ISOURCE_USB1		12	/* MPC8536/P20x0/P1025/P1023 */
    385      1.1      matt #define	ISOURCE_ETSEC1_TX	13
    386  1.6.2.1  jdolecek #define	ISOURCE_QMAN0		13	/* P1023 */
    387      1.1      matt #define	ISOURCE_ETSEC1_RX	14
    388  1.6.2.1  jdolecek #define	ISOURCE_BMAN0		14	/* P1023 */
    389      1.1      matt #define	ISOURCE_ETSEC3_TX	15
    390  1.6.2.1  jdolecek #define	ISOURCE_QMAN1		15	/* P1023 */
    391      1.1      matt #define	ISOURCE_ETSEC3_RX	16
    392  1.6.2.1  jdolecek #define	ISOURCE_BMAN1		16	/* P1023 */
    393      1.1      matt #define	ISOURCE_ETSEC3_ERR	17
    394  1.6.2.1  jdolecek #define	ISOURCE_QMAN2		17	/* P1023 */
    395      1.1      matt #define	ISOURCE_ETSEC1_ERR	18
    396  1.6.2.1  jdolecek #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.6.2.1  jdolecek #define	ISOURCE_SECURITY2_P1023	41	/* P1023 */
    425      1.6      matt #define	ISOURCE_SECURITY2	42	/* MPC8572|MPC8536|P20x0|P1025 */
    426  1.6.2.1  jdolecek #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.6.2.1  jdolecek #define	ISOURCE_DMA2_CHAN1	60	/* MPC8572|P20x0|P1023 */
    448  1.6.2.1  jdolecek #define	ISOURCE_DMA2_CHAN2	61	/* MPC8572|P20x0|P1023 */
    449  1.6.2.1  jdolecek #define	ISOURCE_DMA2_CHAN3	62	/* MPC8572|P20x0|P1023 */
    450  1.6.2.1  jdolecek #define	ISOURCE_DMA2_CHAN4	63	/* MPC8572|P20x0|P1023 */
    451      1.1      matt 
    452      1.1      matt #endif /* _POWERPC_BOOKE_OPENPICREG_H_ */
    453