Merge branch 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[pandora-kernel.git] / arch / arm / mm / proc-arm7tdmi.S
1 /*
2  *  linux/arch/arm/mm/proc-arm7tdmi.S: utility functions for ARM7TDMI
3  *
4  *  Copyright (C) 2003-2006 Hyok S. Choi <hyok.choi@samsung.com>
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  */
11 #include <linux/linkage.h>
12 #include <linux/init.h>
13 #include <asm/assembler.h>
14 #include <asm/asm-offsets.h>
15 #include <asm/hwcap.h>
16 #include <asm/pgtable-hwdef.h>
17 #include <asm/pgtable.h>
18 #include <asm/ptrace.h>
19
20         .text
21 /*
22  * cpu_arm7tdmi_proc_init()
23  * cpu_arm7tdmi_do_idle()
24  * cpu_arm7tdmi_dcache_clean_area()
25  * cpu_arm7tdmi_switch_mm()
26  *
27  * These are not required.
28  */
29 ENTRY(cpu_arm7tdmi_proc_init)
30 ENTRY(cpu_arm7tdmi_do_idle)
31 ENTRY(cpu_arm7tdmi_dcache_clean_area)
32 ENTRY(cpu_arm7tdmi_switch_mm)
33                 mov     pc, lr
34
35 /*
36  * cpu_arm7tdmi_proc_fin()
37  */
38 ENTRY(cpu_arm7tdmi_proc_fin)
39                 mov     pc, lr
40
41 /*
42  * Function: cpu_arm7tdmi_reset(loc)
43  * Params  : loc(r0)    address to jump to
44  * Purpose : Sets up everything for a reset and jump to the location for soft reset.
45  */
46 ENTRY(cpu_arm7tdmi_reset)
47                 mov     pc, r0
48
49                 __CPUINIT
50
51                 .type   __arm7tdmi_setup, #function
52 __arm7tdmi_setup:
53                 mov     pc, lr
54                 .size   __arm7tdmi_setup, . - __arm7tdmi_setup
55
56                 __INITDATA
57
58 /*
59  * Purpose : Function pointers used to access above functions - all calls
60  *           come through these
61  */
62                 .type   arm7tdmi_processor_functions, #object
63 ENTRY(arm7tdmi_processor_functions)
64                 .word   v4t_late_abort
65                 .word   legacy_pabort
66                 .word   cpu_arm7tdmi_proc_init
67                 .word   cpu_arm7tdmi_proc_fin
68                 .word   cpu_arm7tdmi_reset
69                 .word   cpu_arm7tdmi_do_idle
70                 .word   cpu_arm7tdmi_dcache_clean_area
71                 .word   cpu_arm7tdmi_switch_mm
72                 .word   0               @ cpu_*_set_pte
73                 .word   0
74                 .word   0
75                 .word   0
76                 .size   arm7tdmi_processor_functions, . - arm7tdmi_processor_functions
77
78                 .section ".rodata"
79
80                 .type   cpu_arch_name, #object
81 cpu_arch_name:
82                 .asciz  "armv4t"
83                 .size   cpu_arch_name, . - cpu_arch_name
84
85                 .type   cpu_elf_name, #object
86 cpu_elf_name:
87                 .asciz  "v4"
88                 .size   cpu_elf_name, . - cpu_elf_name
89
90                 .type   cpu_arm7tdmi_name, #object
91 cpu_arm7tdmi_name:
92                 .asciz  "ARM7TDMI"
93                 .size   cpu_arm7tdmi_name, . - cpu_arm7tdmi_name
94
95                 .type   cpu_triscenda7_name, #object
96 cpu_triscenda7_name:
97                 .asciz  "Triscend-A7x"
98                 .size   cpu_triscenda7_name, . - cpu_triscenda7_name
99
100                 .type   cpu_at91_name, #object
101 cpu_at91_name:
102                 .asciz  "Atmel-AT91M40xxx"
103                 .size   cpu_at91_name, . - cpu_at91_name
104
105                 .type   cpu_s3c3410_name, #object
106 cpu_s3c3410_name:
107                 .asciz  "Samsung-S3C3410"
108                 .size   cpu_s3c3410_name, . - cpu_s3c3410_name
109
110                 .type   cpu_s3c44b0x_name, #object
111 cpu_s3c44b0x_name:
112                 .asciz  "Samsung-S3C44B0x"
113                 .size   cpu_s3c44b0x_name, . - cpu_s3c44b0x_name
114
115                 .type   cpu_s3c4510b, #object
116 cpu_s3c4510b_name:
117                 .asciz  "Samsung-S3C4510B"
118                 .size   cpu_s3c4510b_name, . - cpu_s3c4510b_name
119
120                 .type   cpu_s3c4530_name, #object
121 cpu_s3c4530_name:
122                 .asciz  "Samsung-S3C4530"
123                 .size   cpu_s3c4530_name, . - cpu_s3c4530_name
124
125                 .type   cpu_netarm_name, #object
126 cpu_netarm_name:
127                 .asciz  "NETARM"
128                 .size   cpu_netarm_name, . - cpu_netarm_name
129
130                 .align
131
132                 .section ".proc.info.init", #alloc, #execinstr
133
134                 .type   __arm7tdmi_proc_info, #object
135 __arm7tdmi_proc_info:
136                 .long   0x41007700
137                 .long   0xfff8ff00
138                 .long   0
139                 .long   0
140                 b       __arm7tdmi_setup
141                 .long   cpu_arch_name
142                 .long   cpu_elf_name
143                 .long   HWCAP_SWP | HWCAP_26BIT
144                 .long   cpu_arm7tdmi_name
145                 .long   arm7tdmi_processor_functions
146                 .long   0
147                 .long   0
148                 .long   v4_cache_fns
149                 .size   __arm7tdmi_proc_info, . - __arm7dmi_proc_info
150
151                 .type   __triscenda7_proc_info, #object
152 __triscenda7_proc_info:
153                 .long   0x0001d2ff
154                 .long   0x0001ffff
155                 .long   0
156                 .long   0
157                 b       __arm7tdmi_setup
158                 .long   cpu_arch_name
159                 .long   cpu_elf_name
160                 .long   HWCAP_SWP | HWCAP_THUMB | HWCAP_26BIT
161                 .long   cpu_triscenda7_name
162                 .long   arm7tdmi_processor_functions
163                 .long   0
164                 .long   0
165                 .long   v4_cache_fns
166                 .size   __triscenda7_proc_info, . - __triscenda7_proc_info
167
168                 .type   __at91_proc_info, #object
169 __at91_proc_info:
170                 .long   0x14000040
171                 .long   0xfff000e0
172                 .long   0
173                 .long   0
174                 b       __arm7tdmi_setup
175                 .long   cpu_arch_name
176                 .long   cpu_elf_name
177                 .long   HWCAP_SWP | HWCAP_THUMB | HWCAP_26BIT
178                 .long   cpu_at91_name
179                 .long   arm7tdmi_processor_functions
180                 .long   0
181                 .long   0
182                 .long   v4_cache_fns
183                 .size   __at91_proc_info, . - __at91_proc_info
184
185                 .type   __s3c4510b_proc_info, #object
186 __s3c4510b_proc_info:
187                 .long   0x36365000
188                 .long   0xfffff000
189                 .long   0
190                 .long   0
191                 b       __arm7tdmi_setup
192                 .long   cpu_arch_name
193                 .long   cpu_elf_name
194                 .long   HWCAP_SWP | HWCAP_THUMB | HWCAP_26BIT
195                 .long   cpu_s3c4510b_name
196                 .long   arm7tdmi_processor_functions
197                 .long   0
198                 .long   0
199                 .long   v4_cache_fns
200                 .size   __s3c4510b_proc_info, . - __s3c4510b_proc_info
201
202                 .type   __s3c4530_proc_info, #object
203 __s3c4530_proc_info:
204                 .long   0x4c000000
205                 .long   0xfff000e0
206                 .long   0
207                 .long   0
208                 b       __arm7tdmi_setup
209                 .long   cpu_arch_name
210                 .long   cpu_elf_name
211                 .long   HWCAP_SWP | HWCAP_THUMB | HWCAP_26BIT
212                 .long   cpu_s3c4530_name
213                 .long   arm7tdmi_processor_functions
214                 .long   0
215                 .long   0
216                 .long   v4_cache_fns
217                 .size   __s3c4530_proc_info, . - __s3c4530_proc_info
218
219                 .type   __s3c3410_proc_info, #object
220 __s3c3410_proc_info:
221                 .long   0x34100000
222                 .long   0xffff0000
223                 .long   0
224                 .long   0
225                 b       __arm7tdmi_setup
226                 .long   cpu_arch_name
227                 .long   cpu_elf_name
228                 .long   HWCAP_SWP | HWCAP_THUMB | HWCAP_26BIT
229                 .long   cpu_s3c3410_name
230                 .long   arm7tdmi_processor_functions
231                 .long   0
232                 .long   0
233                 .long   v4_cache_fns
234                 .size   __s3c3410_proc_info, . - __s3c3410_proc_info
235
236                 .type   __s3c44b0x_proc_info, #object
237 __s3c44b0x_proc_info:
238                 .long   0x44b00000
239                 .long   0xffff0000
240                 .long   0
241                 .long   0
242                 b       __arm7tdmi_setup
243                 .long   cpu_arch_name
244                 .long   cpu_elf_name
245                 .long   HWCAP_SWP | HWCAP_THUMB | HWCAP_26BIT
246                 .long   cpu_s3c44b0x_name
247                 .long   arm7tdmi_processor_functions
248                 .long   0
249                 .long   0
250                 .long   v4_cache_fns
251                 .size   __s3c44b0x_proc_info, . - __s3c44b0x_proc_info