This file is indexed.

/usr/include/openwince/arm/pxa2x0/dma.h is in openwince-include 0.3.2-3.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
/*
 * $Id: dma.h,v 1.14 2003/04/26 22:56:34 telka Exp $
 *
 * XScale PXA26x/PXA255/PXA250/PXA210 DMA Controller Registers
 * Copyright (C) 2002, 2003 ETC s.r.o.
 * All rights reserved.
 *
 * 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. Neither the name of the ETC s.r.o. nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
 *
 * Written by Marcel Telka <marcel@telka.sk>, 2002, 2003.
 *
 * Documentation:
 * [1] Intel Corporation, "Intel PXA250 and PXA210 Application Processors
 *     Developer's Manual", February 2002, Order Number: 278522-001
 * [2] Intel Corporation, "Intel PXA26x Processor Family Developer's Manual",
 *     March 2003, Order Number: 278638-002
 * [3] Intel Corporation, "Intel PXA255 Processor Developer's Manual"
 *     March 2003, Order Number: 278693-001
 *
 */

#ifndef	PXA2X0_DMA_H
#define	PXA2X0_DMA_H

#include <common.h>

#if LANGUAGE == C
#include <stdint.h>
#endif

#if defined(PXA2X0_NOPXA250) && !defined(PXA2X0_NOPXA255)
#define PXA2X0_NOPXA255
#endif

#if defined(PXA2X0_NOPXA255) && !defined(PXA2X0_NOPXA260)
#define PXA2X0_NOPXA260
#endif

/* DMA Controller Registers */

#define	DMA_BASE	0x40000000

#if LANGUAGE == C
typedef struct _DMA_dar {
	uint32_t ddadr;
	uint32_t dsadr;
	uint32_t dtadr;
	uint32_t dcmd;
} _DMA_dar_t;

typedef volatile struct DMA_registers {
	uint32_t dcsr[16];
	uint32_t __reserved1[44];
	uint32_t dint;
	uint32_t __reserved2[3];
	uint32_t drcmr[40];
	uint32_t __reserved3[24];
	_DMA_dar_t dar[16];
} DMA_registers_t;

#ifdef PXA2X0_UNMAPPED
#define	DMA_pointer		((DMA_registers_t*) DMA_BASE)
#endif

#define	DCSR(i)			DMA_pointer->dcsr[i]
#define	DINT			DMA_pointer->dint
#define	DRCMR(i)		DMA_pointer->drcmr[i]
#define	DDADR(i)		DMA_pointer->dar[i].ddadr
#define	DSADR(i)		DMA_pointer->dar[i].dsadr
#define	DTADR(i)		DMA_pointer->dar[i].dtadr
#define	DCMD(i)			DMA_pointer->dar[i].dcmd

/* DRCMR symbolic names - see Table 5-13 in [1], Table 5-13 in [2], Table 5-13 in [3] */

#define	DRCMR_DREQ0		DRCMR(0)
#define	DRCMR_DREQ1		DRCMR(1)
#define	DRCMR_I2S_RX		DRCMR(2)
#define	DRCMR_I2S_TX		DRCMR(3)
#define	DRCMR_BTUART_RX		DRCMR(4)
#define	DRCMR_BTUART_TX		DRCMR(5)
#define	DRCMR_FFUART_RX		DRCMR(6)
#define	DRCMR_FFUART_TX		DRCMR(7)
#define	DRCMR_AC97_MIC_RX	DRCMR(8)
#define	DRCMR_AC97_MODEM_RX	DRCMR(9)
#define	DRCMR_AC97_MODEM_TX	DRCMR(10)
#define	DRCMR_AC97_AUDIO_RX	DRCMR(11)
#define	DRCMR_AC97_AUDIO_TX	DRCMR(12)
#define	DRCMR_SSP_RX		DRCMR(13)
#define	DRCMR_SSP_TX		DRCMR(14)
#if !defined(PXA2X0_NOPXA255)
#define	DRCMR_NSSP_RX		DRCMR(15)
#define	DRCMR_NSSP_TX		DRCMR(16)
#endif /* PXA255 and above only */
#define	DRCMR_FICP_RX		DRCMR(17)
#define	DRCMR_FICP_TX		DRCMR(18)
#define	DRCMR_STUART_RX		DRCMR(19)
#define	DRCMR_STUART_TX		DRCMR(20)
#define	DRCMR_MMC_RX		DRCMR(21)
#define	DRCMR_MMC_TX		DRCMR(22)
#if !defined(PXA2X0_NOPXA260)
#define	DRCMR_ASSP_RX		DRCMR(23)
#define	DRCMR_ASSP_TX		DRCMR(24)
#endif /* PXA260 and above only */
#define	DRCMR_USB_EP1		DRCMR(25)
#define	DRCMR_USB_EP2		DRCMR(26)
#define	DRCMR_USB_EP3		DRCMR(27)
#define	DRCMR_USB_EP4		DRCMR(28)
#if !defined(PXA2X0_NOPXA255)
#define	DRCMR_HWUART_RX		DRCMR(29)
#endif /* PXA255 and above only */
#define	DRCMR_USB_EP6		DRCMR(30)
#define	DRCMR_USB_EP7		DRCMR(31)
#define	DRCMR_USB_EP8		DRCMR(32)
#define	DRCMR_USB_EP9		DRCMR(33)
#if !defined(PXA2X0_NOPXA255)
#define	DRCMR_HWUART_TX		DRCMR(34)
#endif /* PXA255 and above only */
#define	DRCMR_USB_EP11		DRCMR(35)
#define	DRCMR_USB_EP12		DRCMR(36)
#define	DRCMR_USB_EP13		DRCMR(37)
#define	DRCMR_USB_EP14		DRCMR(38)
#endif /* LANGUAGE == C */

#define	DCSR_OFFSET(i)		((i) << 2)
#define	DINT_OFFSET		0xF0
#define	DRCMR_OFFSET(i)		(0x100 + ((i) << 2))
#define	DDADR_OFFSET(i)		(0x200 + ((i) << 4))
#define	DSADR_OFFSET(i)		(0x204 + ((i) << 4))
#define	DTADR_OFFSET(i)		(0x208 + ((i) << 4))
#define	DCMD_OFFSET(i)		(0x20C + ((i) << 4))

/* DRCMR symbolic names offsets - see Table 5-13 in [1], Table 5-13 in [2], Table 5-13 in [3] */

#define	DRCMR_DREQ0_OFFSET		DRCMR_OFFSET(0)
#define	DRCMR_DREQ1_OFFSET		DRCMR_OFFSET(1)
#define	DRCMR_I2S_RX_OFFSET		DRCMR_OFFSET(2)
#define	DRCMR_I2S_TX_OFFSET		DRCMR_OFFSET(3)
#define	DRCMR_BTUART_RX_OFFSET		DRCMR_OFFSET(4)
#define	DRCMR_BTUART_TX_OFFSET		DRCMR_OFFSET(5)
#define	DRCMR_FFUART_RX_OFFSET		DRCMR_OFFSET(6)
#define	DRCMR_FFUART_TX_OFFSET		DRCMR_OFFSET(7)
#define	DRCMR_AC97_MIC_RX_OFFSET	DRCMR_OFFSET(8)
#define	DRCMR_AC97_MODEM_RX_OFFSET	DRCMR_OFFSET(9)
#define	DRCMR_AC97_MODEM_TX_OFFSET	DRCMR_OFFSET(10)
#define	DRCMR_AC97_AUDIO_RX_OFFSET	DRCMR_OFFSET(11)
#define	DRCMR_AC97_AUDIO_TX_OFFSET	DRCMR_OFFSET(12)
#define	DRCMR_SSP_RX_OFFSET		DRCMR_OFFSET(13)
#define	DRCMR_SSP_TX_OFFSET		DRCMR_OFFSET(14)
#if !defined(PXA2X0_NOPXA255)
#define	DRCMR_NSSP_RX_OFFSET		DRCMR_OFFSET(15)
#define	DRCMR_NSSP_TX_OFFSET		DRCMR_OFFSET(16)
#endif /* PXA255 and above only */
#define	DRCMR_FICP_RX_OFFSET		DRCMR_OFFSET(17)
#define	DRCMR_FICP_TX_OFFSET		DRCMR_OFFSET(18)
#define	DRCMR_STUART_RX_OFFSET		DRCMR_OFFSET(19)
#define	DRCMR_STUART_TX_OFFSET		DRCMR_OFFSET(20)
#define	DRCMR_MMC_RX_OFFSET		DRCMR_OFFSET(21)
#define	DRCMR_MMC_TX_OFFSET		DRCMR_OFFSET(22)
#if !defined(PXA2X0_NOPXA260)
#define	DRCMR_ASSP_RX_OFFSET		DRCMR_OFFSET(23)
#define	DRCMR_ASSP_TX_OFFSET		DRCMR_OFFSET(24)
#endif /* PXA260 and above only */
#define	DRCMR_USB_EP1_OFFSET		DRCMR_OFFSET(25)
#define	DRCMR_USB_EP2_OFFSET		DRCMR_OFFSET(26)
#define	DRCMR_USB_EP3_OFFSET		DRCMR_OFFSET(27)
#define	DRCMR_USB_EP4_OFFSET		DRCMR_OFFSET(28)
#if !defined(PXA2X0_NOPXA255)
#define	DRCMR_HWUART_RX_OFFSET		DRCMR_OFFSET(29)
#endif /* PXA255 and above only */
#define	DRCMR_USB_EP6_OFFSET		DRCMR_OFFSET(30)
#define	DRCMR_USB_EP7_OFFSET		DRCMR_OFFSET(31)
#define	DRCMR_USB_EP8_OFFSET		DRCMR_OFFSET(32)
#define	DRCMR_USB_EP9_OFFSET		DRCMR_OFFSET(33)
#if !defined(PXA2X0_NOPXA255)
#define	DRCMR_HWUART_TX_OFFSET		DRCMR_OFFSET(34)
#endif /* PXA255 and above only */
#define	DRCMR_USB_EP11_OFFSET		DRCMR_OFFSET(35)
#define	DRCMR_USB_EP12_OFFSET		DRCMR_OFFSET(36)
#define	DRCMR_USB_EP13_OFFSET		DRCMR_OFFSET(37)
#define	DRCMR_USB_EP14_OFFSET		DRCMR_OFFSET(38)

/* DCSRx bits - see Table 5-7 in [1], Table 5-7 in [2], Table 5-7 in [3] */

#define	DCSR_RUN		bit(31)
#define	DCSR_NODESCFETCH	bit(30)
#define	DCSR_STOPIRQEN		bit(29)
#define	DCSR_REQPEND		bit(8)
#define	DCSR_STOPSTATE		bit(3)
#define	DCSR_ENDINTR		bit(2)
#define	DCSR_STARTINTR		bit(1)
#define	DCSR_BUSERRINTR		bit(0)

/* DINT bits - see Table 5-6 in [1], Table 5-6 in [2], Table 5-6 in [3] */

#define	DINT_CHLINTR(x)		bit(x)
#define	DINT_CHLINTR0		DINT_CHLINTR(0)
#define	DINT_CHLINTR1		DINT_CHLINTR(1)
#define	DINT_CHLINTR2		DINT_CHLINTR(2)
#define	DINT_CHLINTR3		DINT_CHLINTR(3)
#define	DINT_CHLINTR4		DINT_CHLINTR(4)
#define	DINT_CHLINTR5		DINT_CHLINTR(5)
#define	DINT_CHLINTR6		DINT_CHLINTR(6)
#define	DINT_CHLINTR7		DINT_CHLINTR(7)
#define	DINT_CHLINTR8		DINT_CHLINTR(8)
#define	DINT_CHLINTR9		DINT_CHLINTR(9)
#define	DINT_CHLINTR10		DINT_CHLINTR(10)
#define	DINT_CHLINTR11		DINT_CHLINTR(11)
#define	DINT_CHLINTR12		DINT_CHLINTR(12)
#define	DINT_CHLINTR13		DINT_CHLINTR(13)
#define	DINT_CHLINTR14		DINT_CHLINTR(14)
#define	DINT_CHLINTR15		DINT_CHLINTR(15)

/* DRCMRx bits - see Table 5-8 in [1], Table 5-8 in [2], Table 5-8 in [3] */

#define	DRCMR_MAPVLD		bit(7)
#define	DRCMR_CHLNUM_MASK	bits(3,0)
#define	DRCMR_CHLNUM(x)		bits_val(3,0,x)
#define	get_DRCMR_CHLNUM(x)	bits_get(3,0,x)

/* DDADRx bits - see Table 5-9 in [1], Table 5-9 in [2], Table 5-9 in [3] */

#define	DDADR_STOP		bit(0)

/* DCMDx bits - see Table 5-12 in [1], Table 5-12 in [2], Table 5-12 in [3] */

#define	DCMD_INCSRCADDR		bit(31)
#define	DCMD_INCTRGADDR		bit(30)
#define	DCMD_FLOWSRC		bit(29)
#define	DCMD_FLOWTRG		bit(28)
#define	DCMD_STARTIRQEN		bit(22)
#define	DCMD_ENDIRQEN		bit(21)
#define	DCMD_ENDIAN		bit(18)
#define	DCMD_SIZE_MASK		bits(17,16)
#define	DCMD_SIZE(x)		bits_val(17,16,x)
#define	get_DCMD_SIZE(x)	bits_get(17,16,x)
#define	DCMD_WIDTH_MASK		bits(15,14)
#define	DCMD_WIDTH(x)		bits_val(15,14,x)
#define	get_DCMD_WIDTH(x)	bits_get(15,14,x)
#define	DCMD_LENGTH_MASK	bits(12,0)
#define	DCMD_LENGTH(x)		bits_val(12,0,x)
#define	get_DCMD_LENGTH(x)	bits_get(12,0,x)

#endif /* PXA2X0_DMA_H */