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