[PATCH] avr32 architecture
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / include / asm-avr32 / ocd.h
1 /*
2 * AVR32 OCD Registers
3 *
4 * Copyright (C) 2004-2006 Atmel Corporation
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10 #ifndef __ASM_AVR32_OCD_H
11 #define __ASM_AVR32_OCD_H
12
13 /* Debug Registers */
14 #define DBGREG_DID 0
15 #define DBGREG_DC 8
16 #define DBGREG_DS 16
17 #define DBGREG_RWCS 28
18 #define DBGREG_RWA 36
19 #define DBGREG_RWD 40
20 #define DBGREG_WT 44
21 #define DBGREG_DTC 52
22 #define DBGREG_DTSA0 56
23 #define DBGREG_DTSA1 60
24 #define DBGREG_DTEA0 72
25 #define DBGREG_DTEA1 76
26 #define DBGREG_BWC0A 88
27 #define DBGREG_BWC0B 92
28 #define DBGREG_BWC1A 96
29 #define DBGREG_BWC1B 100
30 #define DBGREG_BWC2A 104
31 #define DBGREG_BWC2B 108
32 #define DBGREG_BWC3A 112
33 #define DBGREG_BWC3B 116
34 #define DBGREG_BWA0A 120
35 #define DBGREG_BWA0B 124
36 #define DBGREG_BWA1A 128
37 #define DBGREG_BWA1B 132
38 #define DBGREG_BWA2A 136
39 #define DBGREG_BWA2B 140
40 #define DBGREG_BWA3A 144
41 #define DBGREG_BWA3B 148
42 #define DBGREG_BWD3A 153
43 #define DBGREG_BWD3B 156
44
45 #define DBGREG_PID 284
46
47 #define SABAH_OCD 0x01
48 #define SABAH_ICACHE 0x02
49 #define SABAH_MEM_CACHED 0x04
50 #define SABAH_MEM_UNCACHED 0x05
51
52 /* Fields in the Development Control register */
53 #define DC_SS_BIT 8
54
55 #define DC_SS (1 << DC_SS_BIT)
56 #define DC_DBE (1 << 13)
57 #define DC_RID (1 << 27)
58 #define DC_ORP (1 << 28)
59 #define DC_MM (1 << 29)
60 #define DC_RES (1 << 30)
61
62 /* Fields in the Development Status register */
63 #define DS_SSS (1 << 0)
64 #define DS_SWB (1 << 1)
65 #define DS_HWB (1 << 2)
66 #define DS_BP_SHIFT 8
67 #define DS_BP_MASK (0xff << DS_BP_SHIFT)
68
69 #define __mfdr(addr) \
70 ({ \
71 register unsigned long value; \
72 asm volatile("mfdr %0, %1" : "=r"(value) : "i"(addr)); \
73 value; \
74 })
75 #define __mtdr(addr, value) \
76 asm volatile("mtdr %0, %1" : : "i"(addr), "r"(value))
77
78 #endif /* __ASM_AVR32_OCD_H */