]> git.ipfire.org Git - people/ms/u-boot.git/blob - board/ms7720se/lowlevel_init.S
Merge branch 'fixes' into cleanups
[people/ms/u-boot.git] / board / ms7720se / lowlevel_init.S
1 /*
2 * (C) Copyright 2007
3 * Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as
7 * published by the Free Software Foundation; either version 2 of
8 * the License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
18 * MA 02111-1307 USA
19 */
20
21 .global lowlevel_init
22
23 .text
24 .align 2
25
26 lowlevel_init:
27
28 mov.l WTCSR_A,r1
29 mov.l WTCSR_D,r0
30 mov.w r0,@r1
31
32 mov.l WTCNT_A,r1
33 mov.l WTCNT_D,r0
34 mov.w r0,@r1
35
36 mov.l FRQCR_A,r1
37 mov.l FRQCR_D,r0
38 mov.w r0,@r1
39
40 mov.l UCLKCR_A,r1
41 mov.l UCLKCR_D,r0
42 mov.w r0,@r1
43
44 mov.l CMNCR_A, r1
45 mov.l CMNCR_D, r0
46 mov.l r0, @r1
47
48 mov.l CS0BCR_A, r1
49 mov.l CS0BCR_D, r0
50 mov.l r0, @r1
51
52 mov.l CS2BCR_A, r1
53 mov.l CS2BCR_D, r0
54 mov.l r0, @r1
55
56 mov.l CS3BCR_A, r1
57 mov.l CS3BCR_D, r0
58 mov.l r0, @r1
59
60 mov.l CS4BCR_A, r1
61 mov.l CS4BCR_D, r0
62 mov.l r0, @r1
63
64 mov.l CS5ABCR_A, r1
65 mov.l CS5ABCR_D, r0
66 mov.l r0, @r1
67
68 mov.l CS5BBCR_A, r1
69 mov.l CS5BBCR_D, r0
70 mov.l r0, @r1
71
72 mov.l CS6ABCR_A, r1
73 mov.l CS6ABCR_D, r0
74 mov.l r0, @r1
75
76 mov.l CS6BBCR_A, r1
77 mov.l CS6BBCR_D, r0
78 mov.l r0, @r1
79
80 mov.l CS0WCR_A, r1
81 mov.l CS0WCR_D, r0
82 mov.l r0, @r1
83
84 mov.l CS2WCR_A, r1
85 mov.l CS2WCR_D, r0
86 mov.l r0, @r1
87
88 mov.l CS3WCR_A, r1
89 mov.l CS3WCR_D, r0
90 mov.l r0, @r1
91
92 mov.l CS4WCR_A, r1
93 mov.l CS4WCR_D, r0
94 mov.l r0, @r1
95
96 mov.l CS5AWCR_A, r1
97 mov.l CS5AWCR_D, r0
98 mov.l r0, @r1
99
100 mov.l CS5BWCR_A, r1
101 mov.l CS5BWCR_D, r0
102 mov.l r0, @r1
103
104 mov.l CS6AWCR_A, r1
105 mov.l CS6AWCR_D, r0
106 mov.l r0, @r1
107
108 mov.l CS6BWCR_A, r1
109 mov.l CS6BWCR_D, r0
110 mov.l r0, @r1
111
112 mov.l SDCR_A, r1
113 mov.l SDCR_D1, r0
114 mov.l r0, @r1
115
116 mov.l RTCSR_A, r1
117 mov.l RTCSR_D, r0
118 mov.l r0, @r1
119
120 mov.l RTCNT_A, r1
121 mov.l RTCNT_D, r0
122 mov.l r0, @r1
123
124 mov.l RTCOR_A, r1
125 mov.l RTCOR_D, r0
126 mov.l r0, @r1
127
128 mov.l SDCR_A, r1
129 mov.l SDCR_D2, r0
130 mov.l r0, @r1
131
132 mov.l SDMR3_A, r1
133 mov.l SDMR3_D, r0
134 mov.w r0, @r1
135
136 mov.l PCCR_A, r1
137 mov.l PCCR_D, r0
138 mov.w r0, @r1
139
140 mov.l PDCR_A, r1
141 mov.l PDCR_D, r0
142 mov.w r0, @r1
143
144 mov.l PECR_A, r1
145 mov.l PECR_D, r0
146 mov.w r0, @r1
147
148 mov.l PGCR_A, r1
149 mov.l PGCR_D, r0
150 mov.w r0, @r1
151
152 mov.l PHCR_A, r1
153 mov.l PHCR_D, r0
154 mov.w r0, @r1
155
156 mov.l PPCR_A, r1
157 mov.l PPCR_D, r0
158 mov.w r0, @r1
159
160 mov.l PTCR_A, r1
161 mov.l PTCR_D, r0
162 mov.w r0, @r1
163
164 mov.l PVCR_A, r1
165 mov.l PVCR_D, r0
166 mov.w r0, @r1
167
168 mov.l PSELA_A, r1
169 mov.l PSELA_D, r0
170 mov.w r0, @r1
171
172 mov.l CCR_A, r1
173 mov.l CCR_D, r0
174 mov.l r0, @r1
175
176 mov.l LED_A, r1
177 mov.l LED_D, r0
178 mov.b r0, @r1
179
180 rts
181 nop
182
183 .align 4
184
185 FRQCR_A: .long 0xA415FF80 /* FRQCR Address */
186 WTCNT_A: .long 0xA415FF84
187 WTCSR_A: .long 0xA415FF86
188 UCLKCR_A: .long 0xA40A0008
189 FRQCR_D: .long 0x1103 /* I:B:P=8:4:2 */
190 WTCNT_D: .long 0x5A00
191 WTCSR_D: .long 0xA506
192 UCLKCR_D: .long 0xA5C0
193
194 #define BSC_BASE 0xA4FD0000
195 CMNCR_A: .long BSC_BASE
196 CS0BCR_A: .long BSC_BASE + 0x04
197 CS2BCR_A: .long BSC_BASE + 0x08
198 CS3BCR_A: .long BSC_BASE + 0x0C
199 CS4BCR_A: .long BSC_BASE + 0x10
200 CS5ABCR_A: .long BSC_BASE + 0x14
201 CS5BBCR_A: .long BSC_BASE + 0x18
202 CS6ABCR_A: .long BSC_BASE + 0x1C
203 CS6BBCR_A: .long BSC_BASE + 0x20
204 CS0WCR_A: .long BSC_BASE + 0x24
205 CS2WCR_A: .long BSC_BASE + 0x28
206 CS3WCR_A: .long BSC_BASE + 0x2C
207 CS4WCR_A: .long BSC_BASE + 0x30
208 CS5AWCR_A: .long BSC_BASE + 0x34
209 CS5BWCR_A: .long BSC_BASE + 0x38
210 CS6AWCR_A: .long BSC_BASE + 0x3C
211 CS6BWCR_A: .long BSC_BASE + 0x40
212 SDCR_A: .long BSC_BASE + 0x44
213 RTCSR_A: .long BSC_BASE + 0x48
214 RTCNT_A: .long BSC_BASE + 0x4C
215 RTCOR_A: .long BSC_BASE + 0x50
216 SDMR3_A: .long BSC_BASE + 0x58C0
217
218 CMNCR_D: .long 0x00000010
219 CS0BCR_D: .long 0x36DB0400
220 CS2BCR_D: .long 0x36DB0400
221 CS3BCR_D: .long 0x36DB4600
222 CS4BCR_D: .long 0x36DB0400
223 CS5ABCR_D: .long 0x36DB0400
224 CS5BBCR_D: .long 0x36DB0200
225 CS6ABCR_D: .long 0x36DB0400
226 CS6BBCR_D: .long 0x36DB0400
227 CS0WCR_D: .long 0x00000B01
228 CS2WCR_D: .long 0x00000500
229 CS3WCR_D: .long 0x00006D1B
230 CS4WCR_D: .long 0x00000500
231 CS5AWCR_D: .long 0x00000500
232 CS5BWCR_D: .long 0x00000500
233 CS6AWCR_D: .long 0x00000500
234 CS6BWCR_D: .long 0x00000500
235 SDCR_D1: .long 0x00000011
236 RTCSR_D: .long 0xA55A0010
237 RTCNT_D: .long 0xA55A001F
238 RTCOR_D: .long 0xA55A001F
239 SDMR3_D: .long 0x0000
240 SDCR_D2: .long 0x00000811
241
242 #define PFC_BASE 0xA4050100
243 PCCR_A: .long PFC_BASE + 0x04
244 PDCR_A: .long PFC_BASE + 0x06
245 PECR_A: .long PFC_BASE + 0x08
246 PGCR_A: .long PFC_BASE + 0x0C
247 PHCR_A: .long PFC_BASE + 0x0E
248 PPCR_A: .long PFC_BASE + 0x18
249 PTCR_A: .long PFC_BASE + 0x1E
250 PVCR_A: .long PFC_BASE + 0x22
251 PSELA_A: .long PFC_BASE + 0x24
252
253 PCCR_D: .long 0x0000
254 PDCR_D: .long 0x0000
255 PECR_D: .long 0x0000
256 PGCR_D: .long 0x0000
257 PHCR_D: .long 0x0000
258 PPCR_D: .long 0x00AA
259 PTCR_D: .long 0x0280
260 PVCR_D: .long 0x0000
261 PSELA_D: .long 0x0000
262
263 CCR_A: .long 0xFFFFFFEC
264 !CCR_D: .long 0x0000000D
265 CCR_D: .long 0x0000000B
266
267 LED_A: .long 0xB6800000
268 LED_D: .long 0xFF