This file is indexed.

/usr/include/openwince/arm/pxa2x0/mc.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
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
/*
 * $Id: mc.h,v 1.14 2003/04/26 22:56:35 telka Exp $
 *
 * XScale PXA26x/PXA255/PXA250/PXA210 Memory 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 PXA250 and PXA210 Application Processors
 *     Specification Update", February 2003, Order Number: 278534-012
 * [3] Intel Corporation, "Intel PXA26x Processor Family Developer's Manual",
 *     March 2003, Order Number: 278638-002
 * [4] Intel Corporation, "Intel PXA255 Processor Developer's Manual"
 *     March 2003, Order Number: 278693-001
 *
 */

#ifndef	PXA2X0_MC_H
#define	PXA2X0_MC_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

/* Memory Controller Registers */

#define	MC_BASE		0x48000000

#if LANGUAGE == C
typedef volatile struct MC_registers {
	uint32_t mdcnfg;
	uint32_t mdrefr;
	uint32_t msc0;
	uint32_t msc1;
	uint32_t msc2;
	uint32_t mecr;
	uint32_t __reserved1;
	uint32_t sxcnfg;
	uint32_t __reserved2;
	uint32_t sxmrs;
	uint32_t mcmem0;
	uint32_t mcmem1;
	uint32_t mcatt0;
	uint32_t mcatt1;
	uint32_t mcio0;
	uint32_t mcio1;
	uint32_t mdmrs;
	uint32_t boot_def;
#if !defined(PXA2X0_NOPXA255)
	uint32_t __reserved3[4];
	uint32_t mdmrslp;
#endif /* PXA255 and above only */
#if !defined(PXA2X0_NOPXA260)
	uint32_t __reserved4[2];
	uint32_t sa1111cr;
#endif /* PXA260 and above only */
} MC_registers_t;

#ifdef PXA2X0_UNMAPPED
#define	MC_pointer	((MC_registers_t*) MC_BASE)
#endif

#define	MDCNFG		MC_pointer->mdcnfg
#define	MDREFR		MC_pointer->mdrefr
#define	MSC0		MC_pointer->msc0
#define	MSC1		MC_pointer->msc1
#define	MSC2		MC_pointer->msc2
#define	MECR		MC_pointer->mecr
#define	SXCNFG		MC_pointer->sxcnfg
#define	SXMRS		MC_pointer->sxmrs
#define	MCMEM0		MC_pointer->mcmem0
#define	MCMEM1		MC_pointer->mcmem1
#define	MCATT0		MC_pointer->mcatt0
#define	MCATT1		MC_pointer->mcatt1
#define	MCIO0		MC_pointer->mcio0
#define	MCIO1		MC_pointer->mcio1
#define	MDMRS		MC_pointer->mdmrs
#define	BOOT_DEF	MC_pointer->boot_def
#if !defined(PXA2X0_NOPXA255)
#define	MDMRSLP		MC_pointer->mdmrslp
#endif /* PXA255 and above only */
#if !defined(PXA2X0_NOPXA260)
#define	SA1111CR	MC_pointer->sa1111cr
#endif /* PXA260 and above only */
#endif /* LANGUAGE == C */

#define	MDCNFG_OFFSET	0x00
#define	MDREFR_OFFSET	0x04
#define	MSC0_OFFSET	0x08
#define	MSC1_OFFSET	0x0C
#define	MSC2_OFFSET	0x10
#define	MECR_OFFSET	0x14
#define	SXCNFG_OFFSET	0x1C
#define	SXMRS_OFFSET	0x24
#define	MCMEM0_OFFSET	0x28
#define	MCMEM1_OFFSET	0x2C
#define	MCATT0_OFFSET	0x30
#define	MCATT1_OFFSET	0x34
#define	MCIO0_OFFSET	0x38
#define	MCIO1_OFFSET	0x3C
#define	MDMRS_OFFSET	0x40
#define	BOOT_DEF_OFFSET	0x44
#if !defined(PXA2X0_NOPXA255)
#define	MDMRSLP_OFFSET	0x58
#endif /* PXA255 and above only */
#if !defined(PXA2X0_NOPXA260)
#define	SA1111CR_OFFSET	0x64
#endif /* PXA260 and above only */

/* MDCNFG bits - see Table 6-3 in [1] and D25 in [2], Table 6-3 in [3], Table 6-2 in [4] */

#define	MDCNFG_DSA1111_2	bit(28)
#define	MDCNFG_DLATCH2		bit(27)
#define	MDCNFG_DTC2_MASK	bits(25,24)
#define	MDCNFG_DTC2(x)		bits_val(25,24,x)
#define	get_MDCNFG_DTC2(x)	bits_get(25,24,x)
#define	MDCNFG_DNB2		bit(23)
#define	MDCNFG_DRAC2_MASK	bits(22,21)
#define	MDCNFG_DRAC2(x)		bits_val(22,21,x)
#define	get_MDCNFG_DRAC2(x)	bits_get(22,21,x)
#define	MDCNFG_DCAC2_MASK	bits(20,19)
#define	MDCNFG_DCAC2(x)		bits_val(20,19,x)
#define	get_MDCNFG_DCAC2(x)	bits_get(20,19,x)
#define	MDCNFG_DWID2		bit(18)
#define	MDCNFG_DE3		bit(17)
#define	MDCNFG_DE2		bit(16)
#define	MDCNFG_DSA1111_0	bit(12)
#define	MDCNFG_DLATCH0		bit(11)
#define	MDCNFG_DTC0_MASK	bits(9,8)
#define	MDCNFG_DTC0(x)		bits_val(9,8,x)
#define	get_MDCNFG_DTC0(x)	bits_get(9,8,x)
#define	MDCNFG_DNB0		bit(7)
#define	MDCNFG_DRAC0_MASK	bits(6,5)
#define	MDCNFG_DRAC0(x)		bits_val(6,5,x)
#define	get_MDCNFG_DRAC0(x)	bits_get(6,5,x)
#define	MDCNFG_DCAC0_MASK	bits(4,3)
#define	MDCNFG_DCAC0(x)		bits_val(4,3,x)
#define	get_MDCNFG_DCAC0(x)	bits_get(4,3,x)
#define	MDCNFG_DWID0		bit(2)
#define	MDCNFG_DE1		bit(1)
#define	MDCNFG_DE0		bit(0)

/* MDREFR bits - see Table 6-5 in [1], Table 6-6 in [3], Table 6-5 in [4] */

#define	MDREFR_K2FREE		bit(25)
#define	MDREFR_K1FREE		bit(24)
#define	MDREFR_K0FREE		bit(23)
#define	MDREFR_SLFRSH		bit(22)
#define	MDREFR_APD		bit(20)
#define	MDREFR_K2DB2		bit(19)
#define	MDREFR_K2RUN		bit(18)
#define	MDREFR_K1DB2		bit(17)
#define	MDREFR_K1RUN		bit(16)
#define	MDREFR_E1PIN		bit(15)
#define	MDREFR_K0DB2		bit(14)
#define	MDREFR_K0RUN		bit(13)
#define	MDREFR_E0PIN		bit(12)
#define	MDREFR_DRI_MASK		bits(11,0)
#define	MDREFR_DRI(x)		bits_val(11,0,x)
#define	get_MDREFR_DRI(x)	bits_get(11,0,x)

/* MSC0 bits - see Table 6-21 in [1], Table 6-25 in [3], Table 6-21 in [4] */

#define	MSC0_RBUFF1		bit(31)
#define	MSC0_RRR1_MASK		bits(30,28)
#define	MSC0_RRR1(x)		bits_val(30,28,x)
#define	get_MSC0_RRR1(x)	bits_get(30,28,x)
#define	MSC0_RDN1_MASK		bits(27,24)
#define	MSC0_RDN1(x)		bits_val(27,24,x)
#define	get_MSC0_RDN1(x)	bits_get(27,24,x)
#define	MSC0_RDF1_MASK		bits(23,20)
#define	MSC0_RDF1(x)		bits_val(23,20,x)
#define	get_MSC0_RDF1(x)	bits_get(23,20,x)
#define	MSC0_RBW1		bit(19)
#define	MSC0_RT1_MASK		bits(18,16)
#define	MSC0_RT1(x)		bits_val(18,16,x)
#define	get_MSC0_RT1(x)		bits_get(18,16,x)
#define	MSC0_RBUFF0		bit(15)
#define	MSC0_RRR0_MASK		bits(14,12)
#define	MSC0_RRR0(x)		bits_val(14,12,x)
#define	get_MSC0_RRR0(x)	bits_get(14,12,x)
#define	MSC0_RDN0_MASK		bits(11,9)
#define	MSC0_RDN0(x)		bits_val(11,8,x)
#define	get_MSC0_RDN0(x)	bits_get(11,8,x)
#define	MSC0_RDF0_MASK		bits(7,4)
#define	MSC0_RDF0(x)		bits_val(7,4,x)
#define	get_MSC0_RDF0(x)	bits_get(7,4,x)
#define	MSC0_RBW0		bit(3)
#define	MSC0_RT0_MASK		bits(2,0)
#define	MSC0_RT0(x)		bits_val(2,0,x)
#define	get_MSC0_RT0(x)		bits_get(2,0,x)

/* MSC1 bits - see Table 6-21 in [1], Table 6-25 in [3], Table 6-21 in [4] */

#define	MSC1_RBUFF3		bit(31)
#define	MSC1_RRR3_MASK		bits(30,28)
#define	MSC1_RRR3(x)		bits_val(30,28,x)
#define	get_MSC1_RRR3(x)	bits_get(30,28,x)
#define	MSC1_RDN3_MASK		bits(27,24)
#define	MSC1_RDN3(x)		bits_val(27,24,x)
#define	get_MSC1_RDN3(x)	bits_get(27,24,x)
#define	MSC1_RDF3_MASK		bits(23,20)
#define	MSC1_RDF3(x)		bits_val(23,20,x)
#define	get_MSC1_RDF3(x)	bits_get(23,20,x)
#define	MSC1_RBW3		bit(19)
#define	MSC1_RT3_MASK		bits(18,16)
#define	MSC1_RT3(x)		bits_val(18,16,x)
#define	get_MSC1_RT3(x)		bits_get(18,16,x)
#define	MSC1_RBUFF2		bit(15)
#define	MSC1_RRR2_MASK		bits(14,12)
#define	MSC1_RRR2(x)		bits_val(14,12,x)
#define	get_MSC1_RRR2(x)	bits_get(14,12,x)
#define	MSC1_RDN2_MASK		bits(11,9)
#define	MSC1_RDN2(x)		bits_val(11,8,x)
#define	get_MSC1_RDN2(x)	bits_get(11,8,x)
#define	MSC1_RDF2_MASK		bits(7,4)
#define	MSC1_RDF2(x)		bits_val(7,4,x)
#define	get_MSC1_RDF2(x)	bits_get(7,4,x)
#define	MSC1_RBW2		bit(3)
#define	MSC1_RT2_MASK		bits(2,0)
#define	MSC1_RT2(x)		bits_val(2,0,x)
#define	get_MSC1_RT2(x)		bits_get(2,0,x)

/* MSC2 bits - see Table 6-21 in [1], Table 6-25 in [3], Table 6-21 in [4] */

#define	MSC2_RBUFF5		bit(31)
#define	MSC2_RRR5_MASK		bits(30,28)
#define	MSC2_RRR5(x)		bits_val(30,28,x)
#define	get_MSC2_RRR5(x)	bits_get(30,28,x)
#define	MSC2_RDN5_MASK		bits(27,24)
#define	MSC2_RDN5(x)		bits_val(27,24,x)
#define	get_MSC2_RDN5(x)	bits_get(27,24,x)
#define	MSC2_RDF5_MASK		bits(23,20)
#define	MSC2_RDF5(x)		bits_val(23,20,x)
#define	get_MSC2_RDF5(x)	bits_get(23,20,x)
#define	MSC2_RBW5		bit(19)
#define	MSC2_RT5_MASK		bits(18,16)
#define	MSC2_RT5(x)		bits_val(18,16,x)
#define	get_MSC2_RT5(x)		bits_get(18,16,x)
#define	MSC2_RBUFF4		bit(15)
#define	MSC2_RRR4_MASK		bits(14,12)
#define	MSC2_RRR4(x)		bits_val(14,12,x)
#define	get_MSC2_RRR4(x)	bits_get(14,12,x)
#define	MSC2_RDN4_MASK		bits(11,9)
#define	MSC2_RDN4(x)		bits_val(11,8,x)
#define	get_MSC2_RDN4(x)	bits_get(11,8,x)
#define	MSC2_RDF4_MASK		bits(7,4)
#define	MSC2_RDF4(x)		bits_val(7,4,x)
#define	get_MSC2_RDF4(x)	bits_get(7,4,x)
#define	MSC2_RBW4		bit(3)
#define	MSC2_RT4_MASK		bits(2,0)
#define	MSC2_RT4(x)		bits_val(2,0,x)
#define	get_MSC2_RT4(x)		bits_get(2,0,x)

/* MECR bits - see Table 6-27 in [1], Table 6-31 in [3], Table 6-27 in [4] */

#define	MECR_CIT		bit(1)
#define	MECR_NOS		bit(0)

/* SXCNFG bits - see Table 6-13 in [1], Table 6-14 in [3], Table 6-13 in [4] */

#define	SXCNFG_SXLATCH2		bit(30)
#define	SXCNFG_SXTP2_MASK	bits(29,28)
#define	SXCNFG_SXTP2(x)		bits_val(29,28,x)
#define	get_SXCNFG_SXTP2(x)	bits_get(29,28,x)
#define	SXCNFG_SXCA2_MASK	bits(27,26)
#define	SXCNFG_SXCA2(x)		bits_val(27,26,x)
#define	get_SXCNFG_SXCA2(x)	bits_get(27,26,x)
#define	SXCNFG_SXRA2_MASK	bits(25,24)
#define	SXCNFG_SXRA2(x)		bits_val(25,24,x)
#define	get_SXCNFG_SXRA2(x)	bits_get(25,24,x)
#define	SXCNFG_SXRL2_MASK	bits(23,21)
#define	SXCNFG_SXRL2(x)		bits(23,21,x)
#define	SXCNFG_SXCL2_MASK	bits(20,18)
#define	SXCNFG_SXCL2(x)		bits_val(20,18,x)
#define	get_SXCNFG_SXCL2(x)	bits_get(20,18,x)
#define	SXCNFG_SXEN2_MASK	bits(17,16)
#define	SXCNFG_SXEN2(x)		bits_val(17,16,x)
#define	get_SXCNFG_SXEN2(x)	bits_get(17,16,x)
#define	SXCNFG_SXLATCH0		bit(14)
#define	SXCNFG_SXTP0_MASK	bits(13,12)
#define	SXCNFG_SXTP0(x)		bits_val(13,12,x)
#define	get_SXCNFG_SXTP0(x)	bits_get(13,12,x)
#define	SXCNFG_SXCA0_MASK	bits(11,10)
#define	SXCNFG_SXCA0(x)		bits_val(11,10,x)
#define	get_SXCNFG_SXCA0(x)	bits_get(11,10,x)
#define	SXCNFG_SXRA0_MASK	bits(9,8)
#define	SXCNFG_SXRA0(x)		bits_val(9,8,x)
#define	get_SXCNFG_SXRA0(x)	bits_get(9,8,x)
#define	SXCNFG_SXRL0_MASK	bits(7,5)
#define	SXCNFG_SXRL0(x)		bits(7,5,x)
#define	SXCNFG_SXCL0_MASK	bits(4,2)
#define	SXCNFG_SXCL0(x)		bits_val(4,2,x)
#define	get_SXCNFG_SXCL0(x)	bits_get(4,2,x)
#define	SXCNFG_SXEN0_MASK	bits(1,0)
#define	SXCNFG_SXEN0(x)		bits_val(1,0,x)
#define	get_SXCNFG_SXEN0(x)	bits_get(1,0,x)

/* SXMRS bits - see Table 6-16 in [1], Table 6-17 in [3], Table 6-16 in [4] */

#define	SXMRS_SXMRS2_MASK	bits(30,16)
#define	SXMRS_SXMRS2(x)		bits_val(30,16,x)
#define	get_SXMRS_SXMRS2(x)	bits_get(30,16,x)
#define	SXMRS_SXMRS0_MASK	bits(14,0)
#define	SXMRS_SXMRS0(x)		bits_val(14,0,x)
#define	get_SXMRS_SXMRS0(x)	bits_get(14,0,x)

/* MCMEMx bits - see Table 6-23 in [1], Table 6-27 in [3], Table 6-23 in [4] */

#define	MCMEM_HOLD_MASK		bits(19,14)
#define	MCMEM_HOLD(x)		bits_val(19,14,x)
#define	get_MCMEM_HOLD(x)	bits_get(19,14,x)
#define	MCMEM_ASST_MASK		bits(11,7)
#define	MCMEM_ASST(x)		bits_val(11,7,x)
#define	get_MCMEM_ASST(x)	bits_get(11,7,x)
#define	MCMEM_SET_MASK		bits(6,0)
#define	MCMEM_SET(x)		bits_val(6,0,x)
#define	get_MCMEM_SET(x)	bits_get(6,0,x)

/* MCATTx bits - see Table 6-24 in [1], Table 6-28 in [3], Table 6-24 in [4] */

#define	MCATT_HOLD_MASK		bits(19,14)
#define	MCATT_HOLD(x)		bits_val(19,14,x)
#define	get_MCATT_HOLD(x)	bits_get(19,14,x)
#define	MCATT_ASST_MASK		bits(11,7)
#define	MCATT_ASST(x)		bits_val(11,7,x)
#define	get_MCATT_ASST(x)	bits_get(11,7,x)
#define	MCATT_SET_MASK		bits(6,0)
#define	MCATT_SET(x)		bits_val(6,0,x)
#define	get_MCATT_SET(x)	bits_get(6,0,x)

/* MCIOx bits - see Table 6-25 in [1], Table 6-29 in [3], Table 6-25 in [4] */

#define	MCIO_HOLD_MASK		bits(19,14)
#define	MCIO_HOLD(x)		bits_val(19,14,x)
#define	get_MCIO_HOLD(x)	bits_get(19,14,x)
#define	MCIO_ASST_MASK		bits(11,7)
#define	MCIO_ASST(x)		bits_val(11,7,x)
#define	get_MCIO_ASST(x)	bits_get(11,7,x)
#define	MCIO_SET_MASK		bits(6,0)
#define	MCIO_SET(x)		bits_val(6,0,x)
#define	get_MCIO_SET(x)		bits_get(6,0,x)

/* MDMRS bits - see Table 6-4 in [1], Table 6-4 in [3], Table 6-3 in [4] */

#define	MDMRS_MDMRS2_MASK	bits(30,23)
#define	MDMRS_MDMRS2(x)		bits_val(30,23,x)
#define	get_MDMRS_MDMRS2(x)	bits_get(30,23,x)
#define	MDMRS_MDCL2_MASK	bits(22,20)
#define	MDMRS_MDCL2(x)		bits_val(22,20,x)
#define	get_MDMRS_MDCL2(x)	bits_get(22,20,x)
#define	MDMRS_MDADD2		bit(19)
#define	MDMRS_MDBL2_MASK	bits(18,16)
#define	MDMRS_MDBL2(x)		bits_val(18,16,x)
#define	get_MDMRS_MDBL2(x)	bits_get(18,16,x)
#define	MDMRS_MDMRS0_MASK	bits(14,7)
#define	MDMRS_MDMRS0(x)		bits_val(14,7,x)
#define	get_MDMRS_MDMRS0(x)	bits_get(14,7,x)
#define	MDMRS_MDCL0_MASK	bits(6,4)
#define	MDMRS_MDCL0(x)		bits_val(6,4,x)
#define	get_MDMRS_MDCL0(x)	bits_get(6,4,x)
#define	MDMRS_MDADD0		bit(3)
#define	MDMRS_MDBL0_MASK	bits(2,0)
#define	MDMRS_MDBL0(x)		bits_val(2,0,x)
#define	get_MDMRS_MDBL0(x)	bits_get(2,0,x)

/* BOOT_DEF bits - see Table 6-37 in [1], Table 6-40 in [3], Table 6-37 in [4] */

#define	BOOT_DEF_PKG_TYPE	bit(3)
#define	BOOT_DEF_BOOT_SEL_MASK	bits(2,0)
#define	BOOT_DEF_BOOT_SEL(x)	bits_val(2,0,x)
#define	get_BOOT_DEF_BOOT_SEL(x)	bits_get(2,0,x)

#if !defined(PXA2X0_NOPXA255)
/* MDMRSLP bits - see Table 6-5 in [3], Table 6-4 in [4] */

#define	MDMRSLP_MDLPEN2		bit(31)
#define	MDMRSLP_MDMRSLP2_MASK	bits(30,16)
#define	MDMRSLP_MDMRSLP2(x)	bits_val(30,16,x)
#define	get_MDMRSLP_MDMRSLP2(x)	bits_get(30,16,x)
#define	MDMRSLP_MDLPEN0		bit(15)
#define	MDMRSLP_MDMRSLP0_MASK	bits(14,0)
#define	MDMRSLP_MDMRSLP0(x)	bits_val(14,0,x)
#define	get_MDMRSLP_MDMRSLP0(x)	bits_get(14,0,x)
#endif /* PXA255 and above only */

#if !defined(PXA2X0_NOPXA260)
/* SA1111CR bits - see Table 6-24 in [3] */

#define	SA1111CR_SA1111_5	bit(5)
#define	SA1111CR_SA1111_4	bit(4)
#define	SA1111CR_SA1111_3	bit(3)
#define	SA1111CR_SA1111_2	bit(2)
#define	SA1111CR_SA1111_1	bit(1)
#define	SA1111CR_SA1111_0	bit(0)
#endif /* PXA260 and above only */

#endif /* PXA2X0_MC_H */