Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
/*	$NetBSD: openpicreg.h,v 1.7 2014/12/27 16:19:33 nonaka Exp $	*/
/*-
 * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
 * All rights reserved.
 *
 * This code is derived from software contributed to The NetBSD Foundation
 * by Raytheon BBN Technologies Corp and Defense Advanced Research Projects
 * Agency and which was developed by Matt Thomas of 3am Software Foundry.
 *
 * This material is based upon work supported by the Defense Advanced Research
 * Projects Agency and Space and Naval Warfare Systems Center, Pacific, under
 * Contract No. N66001-09-C-2073.
 * Approved for Public Release, Distribution Unlimited
 *
 * 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.
 *
 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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 _POWERPC_BOOKE_OPENPICREG_H_
#define _POWERPC_BOOKE_OPENPICREG_H_

/*
 * Common definition of VPR registers (IPIVPR, GTVPR, ...)
 */
#define VPR_MSK			0x80000000		/* Mask */
#define VPR_A			0x40000000		/* Activity */
#define VPR_P			0x00800000		/* Polatity */
#define VPR_P_HIGH		0x00800000		/* Active High */
#define VPR_S			0x00400000		/* Sense */
#define VPR_S_LEVEL		0x00400000		/* Level Sensitive */
#define VPR_PRIORITY		0x000f0000		/* Priority */
#define VPR_PRIORITY_GET(n)	(((n) >> 16) & 0x000f)
#define VPR_PRIORITY_MAKE(n)	(((n) & 0x000f) << 16)
#define VPR_VECTOR		0x0000ffff		/* Vector */
#define VPR_VECTOR_GET(n)	(((n) >>  0) & 0xffff)
#define VPR_VECTOR_MAKE(n)	(((n) & 0xffff) <<  0)

#define VPR_LEVEL_LOW		(VPR_S_LEVEL)
#define VPR_LEVEL_HIGH		(VPR_S_LEVEL | VPR_P_HIGH)

/*
 * Common definition of DR registers (IPIVPR, GTVPR, ...)
 */
#define	 DR_EP			0x80000000		/* external signal */
#define	 DR_CI(n)		(1 << (30 - (n)))	/* critical intr cpu n */
#define	 DR_P(n)		(1 << (n))		/* intr cpu n */


#define	OPENPIC_BRR1		0x0000			/* Block Revision 1 */
#define   BRR1_IPID(n)		(((n) >> 16) & 0xffff)
#define   BRR1_IPMJ(n)		(((n) >>  8) & 0x00ff)
#define   BRR1_IPMN(n)		(((n) >>  0) & 0x00ff)
#define	OPENPIC_BRR2		0x0010			/* Block Revision 2 */
#define   BRR2_IPINT0(n)	(((n) >> 16) & 0xff)
#define   BRR2_IPCFG0(n)	(((n) >>  0) & 0xff)

#define	OPENPIC_IPIDR(n)	(0x0040 + 0x10 * (n))

#define	OPENPIC_CTPR		0x0080
#define	OPENPIC_WHOAMI		0x0090
#define	OPENPIC_IACK		0x00a0
#define	OPENPIC_EOI		0x00b0

#define	OPENPIC_FRR		0x1000			/* Feature Reporting */
#define	 FRR_NIRQ_GET(n)	(((n) >> 16) & 0x7ff)	/*  intr sources - 1 */
#define	 FRR_NCPU_GET(n)	(((n) >>  8) & 0x01f)	/*  cpus - 1 */
#define	 FRR_VID_GET(n)		(((n) >>  0) & 0x0ff)	/*  version id */
#define	OPENPIC_GCR		0x1020			/* Global Configuration */
#define	 GCR_RST		0x80000000		/* Reset */
#define  GCR_M			0x20000000		/* Mixed Mode */
#define	OPENPIC_VIR		0x1080			/* Vendor Identification */
#define	OPENPIC_PIR		0x1090			/* Processor Initialization */

#define	OPENPIC_IPIVPR(n)	(0x10a0 + 0x10 * (n))
#define	OPENPIC_SVR		0x10e0
#define  SVR_VECTOR		0x0000ffff		/* Vector */
#define  SVR_VECTOR_GET(n)	(((n) >>  0) & 0xffff)
#define  SVR_VECTOR_MAKE(n)	(((n) & 0xffff) <<  0)

#define	OPENPIC_TFRR		0x10f0
#define	OPENPIC_GTCCR(cpu, n)	(0x1100 + 0x40 * (n) + 0x1000 * (cpu))
#define	 GTCCR_TOG		0x80000000
#define	 GTCCR_COUNT		0x7fffffff
#define	OPENPIC_GTBCR(cpu, n)	(0x1110 + 0x40 * (n) + 0x1000 * (cpu))
#define	 GTBCR_CI		0x80000000		/* Count Inhibit */
#define	 GTBCR_BASECNT		0x7fffffff		/* Base Count */
#define	OPENPIC_GTVPR(cpu, n)	(0x1120 + 0x40 * (n) + 0x1000 * (cpu))
#define	OPENPIC_GTDR(cpu, n)	(0x1130 + 0x40 * (n) + 0x1000 * (cpu))
#define	OPENPIC_TCR		0x1300
#define	 TCR_ROVR(n)		(1 << (24 + (n)))	/* timer n rollover */
#define	 TCR_RTM		0x00010000		/* real time source */
#define	 TCR_CLKR		0x00000300		/* clock ratio */
#define	 TCR_CLKR_64		0x00000300		/* divide by .. */
#define	 TCR_CLKR_32		0x00000200		/* divide by .. */
#define	 TCR_CLKR_16		0x00000100		/* divide by .. */
#define	 TCR_CLKR_8		0x00000000		/* divide by .. */
#define	 TCR_CASC		0x00000007		/* cascase timers */
#define	 TCR_CASC_0123		0x00000007
#define	 TCR_CASC_123		0x00000006
#define	 TCR_CASC_01_23		0x00000005
#define	 TCR_CASC_23		0x00000004
#define	 TCR_CASC_012		0x00000003
#define	 TCR_CASC_12		0x00000002
#define	 TCR_CASC_01		0x00000001
#define	 TCR_CASC_OFF		0x00000000

#define	OPENPIC_ERQSR		0x1308			/* ext. intr summary */
#define	  ERQSR_A(n)		(1 << (31 - (n)))	/* intr <n> active */
#define	OPENPIC_IRQSR0		0x1310			/* irq out summary 0 */
#define	  IRSR0_MSI_A(n)	(1 << (31 - (n)))	/* msg sig intr <n> */
#define	  IRSR0_MSG_A(n)	(1 << (20 - ((n) ^ 4))) /* shared msg intr */ 
#define	  IRSR0_EXT_A(n)	(1 << (11 - (n)))	/* ext int <n> active */
#define	OPENPIC_IRQSR1		0x1320			/* irq out summary 1 */
#define	  IRQSR1_A(n)		(1 << (31 - ((n) -  0))) /* intr <n> active */
#define	OPENPIC_IRQSR2		0x1324			/* irq out summary 2 */
#define	  IRQSR2_A(n)		(1 << (31 - ((n) - 32))) /* intr <n> active */
#define	OPENPIC_CISR0		0x1330
#define	OPENPIC_CISR1		0x1340
#define	  CISR1_A(n)		(1 << (31 - ((n) -  0))) /* intr <n> active */
#define	OPENPIC_CISR2		0x1344
#define	  CISR2_A(n)		(1 << (31 - ((n) - 32))) /* intr <n> active */

/*
 * Performance Monitor Mask Registers
 */
#define	OPENPIC_PMMR0(n)	(0x1350 + 0x20 * (n))
#define  PMMR0_MShl(n)		(1 << (31 - (n)))
#define  PMMR0_IPI(n)		(1 << (24 - (n)))
#define  PMMR0_TIMER(n)		(1 << (20 - (n)))
#define  PMMR0_MSG(n)		(1 << (16 - ((n) & 7)))
#define  PMMR0_EXT(n)		(1 << (12 - (n)))
#define	OPENPIC_PMMR1(n)	(0x1360 + 0x20 * (n))
#define	  PMMR1_INT(n)		(1 << (31 - ((n) -  0))) /* intr <n> active */
#define	OPENPIC_PMMR2(n)	(0x1364 + 0x20 * (n))
#define	  PMMR2_INT(n)		(1 << (31 - ((n) - 32))) /* intr <n> active */

/*
 * Message Registers
 */
#define	OPENPIC_MSGR(cpu, n)	(0x1400 + 0x1000 * (cpu) + 0x10 * (n))
#define	OPENPIC_MER(cpu)	(0x1500 + 0x1000 * (cpu))
#define	 MER_MSG(n)		(1 << (n))
#define	OPENPIC_MSR(cpu)	(0x1510 + 0x1000 * (cpu))
#define	 MSR_MSG(n)		(1 << (n))

#define	OPENPIC_MSIR(n)		(0x1600 + 0x10 * (n))
#define	OPENPIC_MSISR		0x1720
#define	 MSIR_SR(n)		(1 << (n))
#define	OPENPIC_MSIIR		0x1740
#define	 MSIIR_BIT(srs, ibs)	(((srs) << 29) | ((ibs) << 24))

/*
 * Interrupt Source Configuration Registers
 */
#define	OPENPIC_EIVPR(n)	(0x10000 + 0x20 * (n))
#define	OPENPIC_EIDR(n)		(0x10010 + 0x20 * (n))
#define	OPENPIC_IIVPR(n)	(0x10200 + 0x20 * (n))
#define	OPENPIC_IIDR(n)		(0x10210 + 0x20 * (n))
#define	OPENPIC_MIVPR(n)	(0x11600 + 0x20 * (n))
#define	OPENPIC_MIDR(n)		(0x11610 + 0x20 * (n))
#define	OPENPIC_MSIVPR(n)	(0x11c00 + 0x20 * (n))
#define	OPENPIC_MSIDR(n)	(0x11c10 + 0x20 * (n))

#define	MPC8536_EXTERNALSOURCES	12
#define	MPC8536_ONCHIPSOURCES	64
#define	MPC8536_ONCHIPBITMAP	{ 0xfe07ffff, 0x05501c00 }
#define	MPC8536_IPISOURCES	8
#define	MPC8536_TIMERSOURCES	8
#define	MPC8536_MISOURCES	4
#define	MPC8536_MSIGROUPSOURCES	8
#define	MPC8536_NCPUS		1
#define	MPC8536_SOURCES		/* 104 */		\
	(MPC8536_EXTERNALSOURCES			\
	 + MPC8536_ONCHIPSOURCES			\
	 + MPC8536_MSIGROUPSOURCES			\
	 + MPC8536_NCPUS*(MPC8536_IPISOURCES		\
			  + MPC8536_TIMERSOURCES	\
			  + MPC8536_MISOURCES))

#define	MPC8544_EXTERNALSOURCES	12
#define	MPC8544_ONCHIPSOURCES	48
#define	MPC8544_ONCHIPBITMAP	{ 0x3c07efff, 0x00000000 }
#define	MPC8544_IPISOURCES	4
#define	MPC8544_TIMERSOURCES	4
#define	MPC8544_MISOURCES	4
#define	MPC8544_MSIGROUPSOURCES	8
#define	MPC8544_NCPUS		1
#define	MPC8544_SOURCES		/* 80 */		\
	(MPC8544_EXTERNALSOURCES			\
	 + MPC8544_ONCHIPSOURCES			\
	 + MPC8544_MSIGROUPSOURCES			\
	 + MPC8544_NCPUS*(MPC8544_IPISOURCES		\
			  + MPC8544_TIMERSOURCES	\
			  + MPC8544_MISOURCES))

#define	MPC8548_EXTERNALSOURCES	12
#define	MPC8548_ONCHIPSOURCES	48
#define	MPC8548_ONCHIPBITMAP	{ 0x3dffffff, 0x000000f3 }
#define	MPC8548_IPISOURCES	4
#define	MPC8548_TIMERSOURCES	4
#define	MPC8548_MISOURCES	4
#define	MPC8548_MSIGROUPSOURCES	8
#define	MPC8548_NCPUS		1
#define	MPC8548_SOURCES		/* 80 */		\
	(MPC8548_EXTERNALSOURCES			\
	 + MPC8548_ONCHIPSOURCES			\
	 + MPC8548_MSIGROUPSOURCES			\
	 + MPC8548_NCPUS*(MPC8548_IPISOURCES		\
			  + MPC8548_TIMERSOURCES	\
			  + MPC8548_MISOURCES))

#define	MPC8555_EXTERNALSOURCES	12
#define	MPC8555_ONCHIPSOURCES	32
#define	MPC8555_ONCHIPBITMAP	{ 0x7d1c63ff, 0 }
#define	MPC8555_IPISOURCES	4
#define	MPC8555_TIMERSOURCES	4
#define	MPC8555_MISOURCES	4
#define	MPC8555_MSIGROUPSOURCES	0
#define	MPC8555_NCPUS		1
#define	MPC8555_SOURCES		/* 56 */		\
	(MPC8555_EXTERNALSOURCES			\
	 + MPC8555_ONCHIPSOURCES			\
	 + MPC8555_MSIGROUPSOURCES			\
	 + MPC8555_NCPUS*(MPC8555_IPISOURCES		\
			  + MPC8555_TIMERSOURCES	\
			  + MPC8555_MISOURCES))

#define	MPC8568_EXTERNALSOURCES	12
#define	MPC8568_ONCHIPSOURCES	48
#define	MPC8568_ONCHIPBITMAP	{ 0xfd1c65ff, 0x000b9e7 }
#define	MPC8568_IPISOURCES	4
#define	MPC8568_TIMERSOURCES	4
#define	MPC8568_MISOURCES	4
#define	MPC8568_MSIGROUPSOURCES	8
#define	MPC8568_NCPUS		1
#define	MPC8568_SOURCES		/* 80 */		\
	(MPC8568_EXTERNALSOURCES			\
	 + MPC8568_ONCHIPSOURCES			\
	 + MPC8568_MSIGROUPSOURCES			\
	 + MPC8568_NCPUS*(MPC8568_IPISOURCES		\
			  + MPC8568_TIMERSOURCES	\
			  + MPC8568_MISOURCES))

#define	MPC8572_EXTERNALSOURCES	12
#define	MPC8572_ONCHIPSOURCES	64
#define	MPC8572_ONCHIPBITMAP	{ 0xdeffffff, 0xf8ff93f3 }
#define	MPC8572_IPISOURCES	4
#define	MPC8572_TIMERSOURCES	4
#define	MPC8572_MISOURCES	4
#define	MPC8572_MSIGROUPSOURCES	8
#define	MPC8572_NCPUS		2
#define	MPC8572_SOURCES		/* 108 */		\
	(MPC8572_EXTERNALSOURCES			\
	 + MPC8572_ONCHIPSOURCES			\
	 + MPC8572_MSIGROUPSOURCES			\
	 + MPC8572_NCPUS*(MPC8572_IPISOURCES		\
			  + MPC8572_TIMERSOURCES	\
			  + MPC8572_MISOURCES))

#define	P1023_EXTERNALSOURCES	12
#define	P1023_ONCHIPSOURCES	64
#define	P1023_ONCHIPBITMAP	{ 0xbc07f5f9, 0xf0000e00 }
#define	P1023_IPISOURCES	4
#define	P1023_TIMERSOURCES	4/*8?*/
#define	P1023_MISOURCES		4/*8?*/
#define	P1023_MSIGROUPSOURCES	8
#define	P1023_NCPUS		2
#define	P1023_SOURCES		/* 116 */		\
	(P1023_EXTERNALSOURCES				\
	 + P1023_ONCHIPSOURCES				\
	 + P1023_MSIGROUPSOURCES			\
	 + P1023_NCPUS*(P1023_IPISOURCES		\
			  + P1023_TIMERSOURCES		\
			  + P1023_MISOURCES))
#define	P1017_NCPUS		1
#define	P1017_SOURCES					\
	(P1023_EXTERNALSOURCES				\
	 + P1023_ONCHIPSOURCES				\
	 + P1023_MSIGROUPSOURCES			\
	 + P1017_NCPUS*(P1023_IPISOURCES		\
			  + P1023_TIMERSOURCES		\
			  + P1023_MISOURCES))

#define	P1025_EXTERNALSOURCES	6
#define	P1025_ONCHIPSOURCES	64
#define	P1025_ONCHIPBITMAP	{ 0xbd1fffff, 0x01789c18 }
#define	P1025_IPISOURCES	4
#define	P1025_TIMERSOURCES	4
#define	P1025_MISOURCES		4
#define	P1025_MSIGROUPSOURCES	8
#define	P1025_NCPUS		2
#define	P1025_SOURCES		/* 102 */		\
	(P1025_EXTERNALSOURCES				\
	 + P1025_ONCHIPSOURCES				\
	 + P1025_MSIGROUPSOURCES			\
	 + P1025_NCPUS*(P1025_IPISOURCES		\
			  + P1025_TIMERSOURCES		\
			  + P1025_MISOURCES))
#define	P1016_NCPUS		1
#define	P1016_SOURCES					\
	(P1025_EXTERNALSOURCES				\
	 + P1025_ONCHIPSOURCES				\
	 + P1025_MSIGROUPSOURCES			\
	 + P1016_NCPUS*(P1025_IPISOURCES		\
			  + P1025_TIMERSOURCES		\
			  + P1025_MISOURCES))

#define	P20x0_EXTERNALSOURCES	12
#define	P20x0_ONCHIPSOURCES	64
#define	P20x0_ONCHIPBITMAP	{ 0xbd1ff7ff, 0xf17005e7 }
#define	P20x0_IPISOURCES	4
#define	P20x0_TIMERSOURCES	4
#define	P20x0_MISOURCES		4
#define	P20x0_MSIGROUPSOURCES	8
#define	P2020_NCPUS		2
#define	P2020_SOURCES		/* 108 */		\
	(P20x0_EXTERNALSOURCES				\
	 + P20x0_ONCHIPSOURCES				\
	 + P20x0_MSIGROUPSOURCES			\
	 + P2020_NCPUS*(P20x0_IPISOURCES		\
			  + P20x0_TIMERSOURCES		\
			  + P20x0_MISOURCES))
#define	P2010_NCPUS		1
#define	P2010_SOURCES					\
	(P20x0_EXTERNALSOURCES				\
	 + P20x0_ONCHIPSOURCES				\
	 + P20x0_MSIGROUPSOURCES			\
	 + P2010_NCPUS*(P20x0_IPISOURCES		\
			  + P20x0_TIMERSOURCES		\
			  + P20x0_MISOURCES))

/*
 * Per-CPU Registers
 */
#define	OPENPIC_IPIDRn(cpu, n)	(0x20040 + 0x1000 * (cpu) + 0x10 * (n))
#define	OPENPIC_CTPRn(cpu)	(0x20080 + 0x1000 * (cpu))
#define	OPENPIC_WHOAMIn(cpu)	(0x20090 + 0x1000 * (cpu))
#define	OPENPIC_IACKn(cpu)	(0x200a0 + 0x1000 * (cpu))
#define	OPENPIC_EOIn(cpu)	(0x200b0 + 0x1000 * (cpu))

#define	IRQ_SPURIOUS		0xffff

#define	ISOURCE_L2		0
#define	ISOURCE_ERROR		0
#define	ISOURCE_ECM		1
#define	ISOURCE_ETSEC1_G1_TX	1	/* P1025 */
#define	ISOURCE_DDR		2
#define	ISOURCE_ETSEC1_G1_RX	2	/* P1025 */
#define	ISOURCE_LBC		3
#define	ISOURCE_DMA_CHAN1	4
#define	ISOURCE_DMA_CHAN2	5
#define	ISOURCE_DMA_CHAN3	6
#define	ISOURCE_DMA_CHAN4	7
#define	ISOURCE_PCIEX3_MPC8572	8	/* MPC8572/P20x0/P1025 */
#define	ISOURCE_PCI1		8	/* MPC8548/MPC8544/MPC8536/MPC8555 */
#define	ISOURCE_ETSEC1_G1_ERR	8	/* P1025 */
#define	ISOURCE_FMAN		8	/* P1023 */
#define	ISOURCE_PCI2		9	/* MPC8548 */
#define	ISOURCE_PCIEX2		9	/* MPC8544/MPC8572/MPC8536/P20x0 */
#define	ISOURCE_ETSEC3_G1_TX	9	/* P1025 */
#define	ISOURCE_PCIEX		10
#define	ISOURCE_ETSEC3_G1_RX	10	/* P1025 */
#define	ISOURCE_MDIO		10	/* P1023 */
#define	ISOURCE_PCIEX3		11	/* MPC8544/MPC8536 */
#define	ISOURCE_ETSEC3_G1_ERR	11	/* P1025 */
#define	ISOURCE_USB1		12	/* MPC8536/P20x0/P1025/P1023 */
#define	ISOURCE_ETSEC1_TX	13
#define	ISOURCE_QMAN0		13	/* P1023 */
#define	ISOURCE_ETSEC1_RX	14
#define	ISOURCE_BMAN0		14	/* P1023 */
#define	ISOURCE_ETSEC3_TX	15
#define	ISOURCE_QMAN1		15	/* P1023 */
#define	ISOURCE_ETSEC3_RX	16
#define	ISOURCE_BMAN1		16	/* P1023 */
#define	ISOURCE_ETSEC3_ERR	17
#define	ISOURCE_QMAN2		17	/* P1023 */
#define	ISOURCE_ETSEC1_ERR	18
#define	ISOURCE_BMAN2		18	/* P1023 */
#define	ISOURCE_ETSEC2_TX	19	/* !MPC8544/!MPC8536/!P1025 */
#define	ISOURCE_ETSEC2_RX	20	/* !MPC8544/!MPC8536/!P1025 */
#define	ISOURCE_ETSEC4_TX	21	/* !MPC8544/!MPC8536/!P20x0/!P1025 */
#define	ISOURCE_ETSEC4_RX	22	/* !MPC8544/!MPC8536/!P20x0/!P1025 */
#define	ISOURCE_ETSEC4_ERR	23	/* !MPC8544/!MPC8536/!P20x0/!P1025 */
#define	ISOURCE_ETSEC2_ERR	24	/* !MPC8544/!MPC8536 */
#define	ISOURCE_FEC		25	/* MPC8572 */
#define	ISOURCE_SATA2		25	/* MPC8536 */
#define	ISOURCE_DUART		26
#define	ISOURCE_I2C		27
#define	ISOURCE_PERFMON		28
#define	ISOURCE_SECURITY1	29
#define	ISOURCE_CPM		30	/* MPC8555 */
#define	ISOURCE_QEB_LOW		30	/* MPC8568 */
#define	ISOURCE_USB2		30	/* MPC8536 */
#define	ISOURCE_GPIO		31	/* MPC8572/!MPC8548 */
#define	ISOURCE_QEB_PORT	31	/* MPC8568/P1025 */
#define	ISOURCE_SRIO_EWPU	32	/* !MPC8548&!P20x0&!P1025 */
#define	ISOURCE_SRIO_ODBELL	33	/* !MPC8548&!P20x0&!P1025 */
#define	ISOURCE_SRIO_IDBELL	34	/* !MPC8548&!P20x0&!P1025 */
#define	ISOURCE_ETSEC2_G1_TX	35	/* P1025 */
#define	ISOURCE_ETSEC2_G1_RX	36	/* P1025 */
#define	ISOURCE_SRIO_OMU1	37	/* !MPC8548&!P20x0&!P1025 */
#define	ISOURCE_SRIO_IMU1	38	/* !MPC8548&!P20x0&!P1025 */
#define	ISOURCE_SRIO_OMU2	39	/* !MPC8548&!P20x0&!P1025 */
#define	ISOURCE_SRIO_IMU2	40	/* !MPC8548&!P20x0&!P1025 */
#define	ISOURCE_PME_GENERAL	41	/* MPC8572 */
#define	ISOURCE_SECURITY2_P1023	41	/* P1023 */
#define	ISOURCE_SECURITY2	42	/* MPC8572|MPC8536|P20x0|P1025 */
#define	ISOURCE_SEC_GENERAL	42	/* P1023 */
#define	ISOURCE_SPI		43	/* MPC8536|P20x0|P1025 */
#define	ISOURCE_QEB_IECC	43	/* MPC8568 */
#define	ISOURCE_USB3		44	/* MPC8536 */
#define	ISOURCE_QEB_MUECC	44	/* MPC8568|P1025 */
#define	ISOURCE_TLU1		45	/* MPC8568/MPC8572 */
#define	ISOURCE_46		46
#define	ISOURCE_QEB_HIGH	47	/* MPC8548|P1025 */
#define	ISOURCE_PME_CHAN1	48	/* MPC8572 */
#define	ISOURCE_PME_CHAN2	49	/* MPC8572 */
#define	ISOURCE_PME_CHAN3	50	/* MPC8572 */
#define	ISOURCE_PME_CHAN4	51	/* MPC8572 */
#define	ISOURCE_ETSEC2_G1_ERR	51	/* P1025 */
#define	ISOURCE_ETSEC1_PTP	52	/* MPC8572|MPC8536|P20x0|P1025 */
#define	ISOURCE_ETSEC2_PTP	53	/* MPC8572|P20x0|P1025 */
#define	ISOURCE_ETSEC3_PTP	54	/* MPC8572|MPC8536|P20x0|P1025 */
#define	ISOURCE_ETSEC4_PTP	55	/* MPC8572 */
#define	ISOURCE_ESDHC		56	/* MPC8536|P20x0|P1025 */
#define	ISOURCE_57		57
#define	ISOURCE_SATA1		58	/* MPC8536 */
#define	ISOURCE_TLU2		59	/* MPC8572 */
#define	ISOURCE_DMA2_CHAN1	60	/* MPC8572|P20x0|P1023 */
#define	ISOURCE_DMA2_CHAN2	61	/* MPC8572|P20x0|P1023 */
#define	ISOURCE_DMA2_CHAN3	62	/* MPC8572|P20x0|P1023 */
#define	ISOURCE_DMA2_CHAN4	63	/* MPC8572|P20x0|P1023 */

#endif /* _POWERPC_BOOKE_OPENPICREG_H_ */