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
453
454
/*	$NetBSD: i80312reg.h,v 1.12 2018/02/08 09:05:17 dholland Exp $	*/

/*
 * Copyright (c) 2001 Wasabi Systems, Inc.
 * All rights reserved.
 *
 * Written by Jason R. Thorpe for Wasabi Systems, Inc.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *	This product includes software developed for the NetBSD Project by
 *	Wasabi Systems, Inc.
 * 4. The name of Wasabi Systems, Inc. may not be used to endorse
 *    or promote products derived from this software without specific prior
 *    written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``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 WASABI SYSTEMS, INC
 * 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.
 */

/*-
 * Copyright (c) 2001 The NetBSD Foundation, Inc.
 * All rights reserved.
 *
 * This code is derived from software contributed to The NetBSD Foundation
 * by Matt Thomas <matt@3am-software.com>.
 *
 * 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 _ARM_XSCALE_I80312REG_H_ 
#define _ARM_XSCALE_I80312REG_H_ 

/*
 * Register definitions for the Intel 80310 I/O Companion Chip.
 */

/*
 * Physical addresses 0x1000..0x1fff are used by the Periphial Memory
 * Mapped Registers.
 */

#define	I80312_PMMR_BASE	0x00001000UL
#define	I80312_PMMR_SIZE	0x00001000UL

/*
 * The PMMR registers below are defined as offsets from the i80312 PMMR
 * base.
 */

/*
 * PCI-to-PCI Bridge Unit
 */
#define	I80312_PPB_BASE		(0)
#define	I80312_PPB_SIZE		0x100
/*
 * Performance Monitoring Unit
 */
#define	I80312_PMU_BASE		(I80312_PPB_BASE  + I80312_PPB_SIZE) /* 0x100 */
#define	I80312_PMU_SIZE		0x100
/*
 * Address Translation Unit
 */
#define	I80312_ATU_BASE		(I80312_PMU_BASE  + I80312_PMU_SIZE) /* 0x200 */
#define	I80312_ATU_SIZE		0x100
/*
 * Messaging Unit
 */
#define	I80312_MSG_BASE		(I80312_ATU_BASE  + I80312_ATU_SIZE) /* 0x300 */
#define	I80312_MSG_SIZE		0x100
/*
 * DMA Controller
 */
#define	I80312_DMA_BASE		(I80312_MSG_BASE  + I80312_MSG_SIZE) /* 0x400 */
#define	I80312_DMA_SIZE		0x100
/*
 * Memory Controller
 */
#define	I80312_MEM_BASE		(I80312_DMA_BASE  + I80312_DMA_SIZE) /* 0x500 */
#define	I80312_MEM_SIZE		0x100
/*
 * Internal Arbitration Unit
 */
#define	I80312_IARB_BASE	(I80312_MEM_BASE  + I80312_MEM_SIZE) /* 0x600 */
#define	I80312_IARB_SIZE	0x040
/*
 * Bus Interface Unit
 */
#define	I80312_BUS_BASE		(I80312_IARB_BASE + I80312_IARB_SIZE)/* 0x640 */
#define	I80312_BUS_SIZE		0x040
/*
 * I2C Unit
 */
#define	I80312_IIC_BASE		(I80312_BUS_BASE  + I80312_BUS_SIZE) /* 0x680 */
#define	I80312_IIC_SIZE		0x080
/*
 * Interrupt Controller
 */
#define	I80312_INTC_BASE	(I80312_IIC_BASE  + I80312_IIC_SIZE) /* 0x700 */
#define	I80312_INTC_SIZE	0x100
/*
 * Application Accelerator Unit
 */
#define	I80312_AAU_BASE		(I80312_INTC_BASE + I80312_INTC_SIZE)/* 0x800 */
#define	I80312_AAU_SIZE		0x100

/*
 * PCI-PCI Bridge Unit
 *
 * The PCI-PCI Bridge Unit supports both public (accessible to the
 * host) and private (accessible only to the local system) devices:
 *
 *	---------
 *		S_AD[11]
 *		S_AD[12]
 * Private	S_AD[13]
 *		S_AD[14]
 *		S_AD[15]
 *	---------
 *		S_AD[16]	SISR bit 9
 *		S_AD[17]	SISR bit 8
 *		S_AD[18]	SISR bit 7
 * Public	S_AD[19]	SISR bit 6
 * or		S_AD[20]	SISR bit 5
 * Private	S_AD[21]	SISR bit 4
 *		S_AD[22]	SISR bit 3
 *		S_AD[23]	SISR bit 2
 *		S_AD[24]	SISR bit 1
 *		S_AD[25]	SISR bit 0
 *	---------
 *		S_AD[26]
 *		S_AD[27]
 * Public	S_AD[28]
 *		S_AD[29]
 *		S_AD[30]
 *		S_AD[31]
 *	---------
 *
 * Setting the specified SISR bit makes the corresponding S_AD line
 * a private service.
 */
#define	I80312_PPB_EBCR		0x40	/* Extended Bridge Control */
#define	I80312_PPB_SISR		0x42	/* Secondary ID Select Register */
#define	I80312_PPB_PBISR	0x44	/* Primary Bridge Int. Stat. */
#define	I80312_PPB_SBISR	0x48	/* Secondary Bridge Int. Stat. */
#define	I80312_PPB_SACR		XXX	/* Secondary Arb. Control */
#define	I80312_PPB_PIRSR	XXX	/* PCI Int. Routing Select */
#define	I80312_PPB_SIOBR	0x54	/* Secondary I/O Base Register */
#define	I80312_PPB_SIOLR	0x55	/* Secondary I/O Limit Register */
#define	I80312_PPB_SCDR		0x56	/* Secondary Clock Disable Register */
#define	I80312_PPB_SMBR		0x58	/* Secondary Memory Base Register */
#define	I80312_PPB_SMLR		0x5a	/* Secondary Memory Limit Register */
#define	I80312_PPB_SDER		0x5c	/* Secondary Decode Enable Register */
#define	I80312_PPB_QCR		0x5e	/* Queue Control Register */

#define	PPB_SDER_PMSE		(1U << 2) /* Private Memory Space Enable */

/*
 * Performance Monitoring Unit
 */
#define	I80312_PMU_GTMR		0x00	/* Global Timer Mode Register */
#define	I80312_PMU_ESR		0x04	/* Event Select Register */
#define	I80312_PMU_EMISR	0x08	/* Event Monitoring Int Stat Reg */
#define	I80312_PMU_GTSR		0x10	/* Global Time Stamp Register */
					/* Programmable Event Counter Regs */
#define	I80312_PMU_PECR(x)	(0x14 + (4 * ((x) - 1)))

#define	PMU_GTMR_INTEN		(1U << 0)
#define	PMU_GTMR_CNTRDIS	(1U << 2)

#define	PMU_ESR_MODE(x)		((x))
#define	PMU_ESR_PMIE		(1U << 16)

#define	PMU_EMISR_GTS		(1U << 0)
#define	PMU_EMISR_PECRS(x)	(1U << (x))

/*
 * Address Translation Unit
 * The first 64 bytes are identical to a PCI device's config space.
 */
/*	BAR #0			0x10	Primary Inbound ATU Base Address */
#define	I80312_ATU_PIAL		0x40	/* Pri. Inbound ATU Limit */
#define	I80312_ATU_PIATV	0x44	/* Pri. Inbound ATU Translate Value */
#define	I80312_ATU_SIAM		0x48	/* Sec. Inbound ATU Base Address */
#define	I80312_ATU_SIAL		0x4c	/* Sec. Inbound ATU Limit */
#define	I80312_ATU_SIATV	0x50	/* Sec. Inbound ATU Translate Value */
#define	I80312_ATU_POMWV	0x54	/* Pri. Outbound Memory Window Value */
     /* not used		0x58 */
#define	I80312_ATU_POIOWV	0x5c	/* Pri. Outbound I/O Window Value */
#define	I80312_ATU_PODACWVL	0x60	/* Pri. Outbound DAC Window Value (Lo)*/
#define	I80312_ATU_PODACWVH	0x64	/* Pri. Outbound DAC Window Value (Hi)*/
#define	I80312_ATU_SOMWV	0x68	/* Sec. Outbound Memory Window Value */
#define	I80312_ATU_SOIOWV	0x6c	/* Sec. Outbound I/O Window Value */
     /* not used		0x70 */
#define	I80312_ATU_ERL		0x74	/* Expansion ROM Limit */
#define	I80312_ATU_ERTV		0x78	/* Expansion ROM Translate Value */
     /* not used		0x7c */
#define	I80312_ATU_ACI		0x74	/* ATU Capability Identifier */
#define	I80312_ATU_ATNIP	0x78	/* ATU Next Item Pointer */
#define	I80312_ATU_APM		0x7c	/* ATU Power Management */
     /* not used		0x84 */
#define	I80312_ATU_ACR		0x88	/* ATU Configuration */
     /* not used		0x8c */
#define	I80312_ATU_PAIS		0x90	/* Pri. ATU Interrupt Status */
#define	I80312_ATU_SAIS		0x94	/* Sec. ATU Interrupt Status */
#define	I80312_ATU_SACS		0x98	/* Sec. ATU Command/Status */
#define	I80312_ATU_SODACWVL	0x9c	/* Sec. Outbound DAC Window Value (lo)*/
#define	I80312_ATU_SODACWVH	0xa0	/* Sec. Outbound DAC Window Value (hi)*/
#define	I80312_ATU_POCCA	0xa4	/* Pri. Outbound Config Address Data */
#define	I80312_ATU_SOCCA	0xa8	/* Sec. Outbound Config Address Data */
#define	I80312_ATU_POCCD	0xac	/* Pri. Outbound Config Cycle Data */
#define	I80312_ATU_SOCCD	0xb0	/* Sec. Outbound Config Cycle Data */
#define	I80312_ATU_PAQC		0xb4	/* Pri. ATU Queue Control */
#define	I80312_ATU_SAQC		0xb8	/* Sec. ATU Queue Control */
#define	I80312_ATU_PAIM		0xbc	/* Pri. ATU Interrupt Mask */
#define	I80312_ATU_SAIM		0xc0	/* Sec. ATU Interrupt Mask */
     /* not used		0xc4 .. 0xfc */

#define	ATU_LIMIT(x) \
	((0xffffffffUL - ((x) - 1)) & 0xfffffff0UL)

#define	ATU_ACR_POAE		(1U << 1)
#define	ATU_ACR_SOAE		(1U << 2)
#define	ATU_ACR_SDAS		(1U << 7)
#define	ATU_ACR_DAE		(1U << 8)
#define	ATU_ACR_PSERRIE		(1U << 9)
#define	ATU_ACR_SSERRIE		(1U << 10)
#define	ATU_ACR_SBMUAE		(1U << 12)
#define	ATU_ACR_ADTS		(1U << 15)
#define	ATU_ACR_PSERRMA		(1U << 16)
#define	ATU_ACR_SSERRMA		(1U << 17)
#define	ATU_ACR_DAU2GTE		(1U << 18)
#define	ATU_ACR_PATUDRCA	(1U << 19)
#define	ATU_ACR_SATUDRCA	(1U << 20)
#define	ATU_ACR_BFN		(1U << 21)

#define	ATU_AIM_AETAE		(1U << 0)
#define	ATU_AIM_AIESE		(1U << 1)
#define	ATU_AIM_MPEIM		(1U << 2)
#define	ATU_AIM_TATIM		(1U << 3)
#define	ATU_AIM_TAMIM		(1U << 4)
#define	ATU_AIM_MAIM		(1U << 5)
#define	ATU_AIM_SAIM		(1U << 6)
#define	ATU_AIM_DPEIM		(1U << 7)
#define	ATU_AIM_PSTIM		(1U << 8)

/*
 * Messaging Unit
 */
     /* not used		0x00 .. 0x0c */
#define	I80312_MSG_IM0		0x10	/* Inbound Message 0 */
#define	I80312_MSG_IM1		0x14	/* Inbound Message 1 */
#define	I80312_MSG_OM0		0x18	/* Outbound Message 0 */
#define	I80312_MSG_OM1		0x1c	/* Outbound Message 1 */
#define	I80312_MSG_ID		0x20	/* Inbound Doorbell */
#define	I80312_MSG_IIS		0x24	/* Inbound Interrupt Status */
#define	I80312_MSG_IIM		0x28	/* Inbound Interrupt Mask */
#define	I80312_MSG_OD		0x2c	/* Outbound Doorbell */
#define	I80312_MSG_OIS		0x30	/* Outbound Interrupt Status */
#define	I80312_MSG_OIM		0x34	/* Outbound Interrupt Mask */
     /* not used		0x38 .. 0x4c */
#define	I80312_MSG_MC		0x50	/* MU Configuration */
#define	I80312_MSG_QBA		0x54	/* Queue Base Address */
     /* not used		0x58 .. 0x5c */
#define	I80312_MSG_IFHP		0x60	/* Inbound Free Head Pointer */
#define	I80312_MSG_IFTP		0x64	/* Inbound Free Tail Pointer */
#define	I80312_MSG_IPHP		0x68	/* Inbound Post Head Pointer */
#define	I80312_MSG_IPTP		0x6c	/* Inbound Post Tail Pointer */
#define	I80312_MSG_OFHP		0x70	/* Outbound Free Head Pointer */
#define	I80312_MSG_OFTP		0x74	/* Outbound Free Tail Pointer */
#define	I80312_MSG_OPHP		0x78	/* Outbound Post Head Pointer */
#define	I80312_MSG_OPTP		0x7c	/* Outbound Post Tail Pointer */
#define	I80312_MSG_IA		0x80	/* Index Address */
     /* not used		0x84 .. 0xfc */

/*
 * DMA Controller
 */
#define	I80312_DMA_CHAN0	0x00	/* Channel 0 */
#define	I80312_DMA_CHAN1	0x40	/* Channel 1 */
#define	I80312_DMA_CHAN2	0x80	/* Channel 2 */
     /* not used		0xc0 .. 0xfc */

#define	I80312_DMA_CC		0x00	/* Channel Control */
#define	I80312_DMA_CS		0x04	/* Channel Status */
     /* not used		0x08 */
#define	I80312_DMA_DA		0x0c	/* Descriptor Address */
#define	I80312_DMA_NDA		0x10	/* Next Descriptor Address */
#define	I80312_DMA_PA		0x14	/* PCI Address */
#define	I80312_DMA_PUA		0x18	/* PCI Upper Address */
#define	I80312_DMA_IBA		0x1c	/* Internal Bus Address */
#define	I80312_DMA_BC		0x20	/* Byte Count */
#define	I80312_DMA_DC		0x24	/* Descriptor Control */
     /* not used		0x28 .. 0x3c */

/*
 * Memory Controller
 */
#define	I80312_MEM_SI		0x00	/* SDRAM Initialization */
#define	I80312_MEM_SC		0x04	/* SDRAM Control */
#define	I80312_MEM_SB		0x08	/* SDRAM Base */
#define	I80312_MEM_SB0		0x0c	/* SDRAM Bank 0 Size */
#define	I80312_MEM_SB1		0x10	/* SDRAM Bank 1 Size */
     /* not used		0x14 .. 0x30 */
#define	I80312_MEM_EC		0x34	/* ECC Control */
#define	I80312_MEM_EL0		0x38	/* ECC Log 0 */
#define	I80312_MEM_EL1		0x3c	/* ECC Log 1 */
#define	I80312_MEM_EA0		0x40	/* ECC Address 0 */
#define	I80312_MEM_EA1		0x44	/* ECC Address 1 */
#define	I80312_MEM_ET		0x48	/* ECC Test */
#define	I80312_MEM_FB0		0x4c	/* ECC Flash Base 0 */
#define	I80312_MEM_FB1		0x50	/* ECC Flash Base 1 */
#define	I80312_MEM_FB0S		0x54	/* ECC Flash Bank 0 Size */
#define	I80312_MEM_FB1S		0x58	/* ECC Flash Bank 1 Size */
#define	I80312_MEM_FWS1		0x5c	/* ECC Wait State 1 Size */
#define	I80312_MEM_FWS0		0x60	/* ECC Wait State 0 Size */
#define	I80312_MEM_IS		0x65	/* ECC Interrupt Status */
#define	I80312_MEM_RF		0x68	/* ECC Refresh Frequency */
#define	I80312_MEM_RF		0x68	/* ECC Refresh Frequency */
#define	I80312_MEM_RF		0x68	/* ECC Refresh Frequency */
#define	I80312_MEM_RF		0x68	/* ECC Refresh Frequency */
     /* not used		0x6c .. 0xfc */

/*
 * Internal Arbitration Unit
 */
#define	I80312_ARB_IAC		0x00	/* Internal Aribtration Control */
#define	I80312_ARB_MLT		0x04	/* Master Latency Timer */
#define	I80312_ARB_MTT		0x08	/* Multi-Transaction Timer */
     /* not used		0x0c .. 0x3c */

/*
 * Bus(Core) Interface Unit
 */
     /* not used		0x40 */
#define	I80312_BUS_IS		0x44	/* Interrupt Status */
     /* not used		0x4c .. 0x7c */

/*
 * I2C Bus Interface Unit
 */
#define	I80312_IIC_CTL		0x80	/* Control */
#define	I80312_IIC_STS		0x84	/* Status */
#define	I80312_IIC_SA		0x88	/* Slave Address */
#define	I80312_IIC_DB		0x8c	/* Data Buffer */
#define	I80312_IIC_CC		0x90	/* Clock Control */
#define	I80312_IIC_BM		0x94	/* Bus Monitor */
     /* not used		0x98 .. 0xfc */

/*
 * PCI And Peripheral Interrupt (GPIO) Unit
 */
#define	I80312_INTC_IIS		0x00	/* IRQ Interrupt Status */
#define	I80312_INTC_F2IS	0x04	/* FIQ2 Interrupt Status */
#define	I80312_INTC_F1IS	0x08	/* FIQ1 Interrupt Status */
     /* not used		0x0c */
#define	I80312_INTC_PDI		0x10	/* Processor Device ID */
     /* not used		0x14 .. 0x18 */
#define	I80312_INTC_GOE		0x1c	/* GPIO Output Enable */
#define	I80312_INTC_GID		0x20	/* GPIO Input Data */
#define	I80312_INTC_GOD		0x24	/* GPIO Output Data */
     /* not used		0x28 .. 0xfc */

/*
 * Application Accelerator Registers
 */
#define	I80312_AAU_CTL		0x00	/* Control */
#define	I80312_AAU_STS		0x04	/* Status */
#define	I80312_AAU_DSCA		0x08	/* Descriptor Address */
#define	I80312_AAU_NDA		0x0c	/* Next Descriptor Address */
#define	I80312_AAU_SA1		0x10	/* i80200 Source Address 1 */
#define	I80312_AAU_SA2		0x14	/* i80200 Source Address 2 */
#define	I80312_AAU_SA3		0x18	/* i80200 Source Address 3 */
#define	I80312_AAU_SA4		0x1c	/* i80200 Source Address 4 */
#define	I80312_AAU_DSTA		0x20	/* i80200 Destination Address */
#define	I80312_AAU_ABC		0x24	/* Accelerator Byte Count */
#define	I80312_AAU_ADC		0x28	/* Accelerator Descriptor Count */
#define	I80312_AAU_SA5		0x2c	/* i80200 Source Address 5 */
#define	I80312_AAU_SA6		0x30	/* i80200 Source Address 6 */
#define	I80312_AAU_SA7		0x34	/* i80200 Source Address 7 */
#define	I80312_AAU_SA8		0x38	/* i80200 Source Address 8 */
     /* not used		0x3c .. 0xfc */

/*
 * Physical addresses 0x00002000..0x7fffffff are used by the
 * ATU Outbound Direct Addressing Window.
 */
#define	I80312_PCI_DIRECT_BASE	0x00002000UL
#define	I80312_PCI_DIRECT_SIZE	0x7fffe000UL

/*
 * Physical addresses 0x80000000..0x9001ffff are used by the
 * ATU Outbound Transaction Windows.
 */
#define	I80312_PCI_XLATE_BASE	0x80000000UL
#define	I80312_PCI_XLATE_SIZE	0x10020000UL

#define	I80312_PCI_XLATE_MSIZE	0x04000000UL	/* 64M */
#define	I80312_PCI_XLATE_IOSIZE	0x00010000UL	/* 64K */

#define	I80312_PCI_XLATE_PMW_BASE  (I80312_PCI_XLATE_BASE)

#define	I80312_PCI_XLATE_PDW_BASE  (I80312_PCI_XLATE_PMW_BASE + \
				    I80312_PCI_XLATE_MSIZE)

#define	I80312_PCI_XLATE_SMW_BASE  (I80312_PCI_XLATE_PDW_BASE + \
				    I80312_PCI_XLATE_MSIZE)

#define	I80312_PCI_XLATE_SDW_BASE  (I80312_PCI_XLATE_SMW_BASE + \
				    I80312_PCI_XLATE_MSIZE)

#define	I80312_PCI_XLATE_PIOW_BASE (I80312_PCI_XLATE_SDW_BASE + \
				    I80312_PCI_XLATE_MSIZE)

#define	I80312_PCI_XLATE_SIOW_BASE (I80312_PCI_XLATE_PIOW_BASE + \
				    I80312_PCI_XLATE_IOSIZE)

#endif /* _ARM_XSCALE_I80312REG_H_ */