aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMike Frysinger <vapier.adi@gmail.com>2008-08-06 05:17:10 -0400
committerBryan Wu <cooloney@kernel.org>2008-08-06 05:17:10 -0400
commit7e64acabfdb530b1b7d3db2592d75d102827baf3 (patch)
tree9cd5d29f86a700fa474f063462bad928d292b567 /arch
parent1375204611f417541e55ee09e248acdbbb94356d (diff)
Blackfin arch: move async memory programming into common setup_arch() as the banks dont really need to be setup fully as early as head.S
Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/blackfin/kernel/setup.c10
-rw-r--r--arch/blackfin/mach-bf527/head.S22
-rw-r--r--arch/blackfin/mach-bf533/head.S22
-rw-r--r--arch/blackfin/mach-bf537/head.S22
-rw-r--r--arch/blackfin/mach-bf548/head.S42
-rw-r--r--arch/blackfin/mach-bf561/head.S22
6 files changed, 10 insertions, 130 deletions
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c
index 23e637eb78da..15967e7578cd 100644
--- a/arch/blackfin/kernel/setup.c
+++ b/arch/blackfin/kernel/setup.c
@@ -738,6 +738,16 @@ void __init setup_arch(char **cmdline_p)
738 738
739 memory_setup(); 739 memory_setup();
740 740
741 /* Initialize Async memory banks */
742 bfin_write_EBIU_AMBCTL0(AMBCTL0VAL);
743 bfin_write_EBIU_AMBCTL1(AMBCTL1VAL);
744 bfin_write_EBIU_AMGCTL(AMGCTLVAL);
745#ifdef CONFIG_EBIU_MBSCTLVAL
746 bfin_write_EBIU_MBSCTL(CONFIG_EBIU_MBSCTLVAL);
747 bfin_write_EBIU_MODE(CONFIG_EBIU_MODEVAL);
748 bfin_write_EBIU_FCTL(CONFIG_EBIU_FCTLVAL);
749#endif
750
741 cclk = get_cclk(); 751 cclk = get_cclk();
742 sclk = get_sclk(); 752 sclk = get_sclk();
743 753
diff --git a/arch/blackfin/mach-bf527/head.S b/arch/blackfin/mach-bf527/head.S
index 180d3c85a4c1..9173dcecd158 100644
--- a/arch/blackfin/mach-bf527/head.S
+++ b/arch/blackfin/mach-bf527/head.S
@@ -170,28 +170,6 @@ ENTRY(__start)
170 call _start_dma_code; 170 call _start_dma_code;
171#endif 171#endif
172 172
173 /* Code for initializing Async memory banks */
174
175 p2.h = hi(EBIU_AMBCTL1);
176 p2.l = lo(EBIU_AMBCTL1);
177 r0.h = hi(AMBCTL1VAL);
178 r0.l = lo(AMBCTL1VAL);
179 [p2] = r0;
180 ssync;
181
182 p2.h = hi(EBIU_AMBCTL0);
183 p2.l = lo(EBIU_AMBCTL0);
184 r0.h = hi(AMBCTL0VAL);
185 r0.l = lo(AMBCTL0VAL);
186 [p2] = r0;
187 ssync;
188
189 p2.h = hi(EBIU_AMGCTL);
190 p2.l = lo(EBIU_AMGCTL);
191 r0 = AMGCTLVAL;
192 w[p2] = r0;
193 ssync;
194
195 /* This section keeps the processor in supervisor mode 173 /* This section keeps the processor in supervisor mode
196 * during kernel boot. Switches to user mode at end of boot. 174 * during kernel boot. Switches to user mode at end of boot.
197 * See page 3-9 of Hardware Reference manual for documentation. 175 * See page 3-9 of Hardware Reference manual for documentation.
diff --git a/arch/blackfin/mach-bf533/head.S b/arch/blackfin/mach-bf533/head.S
index 0ffbe7a205ba..7f0a7a0c6fd6 100644
--- a/arch/blackfin/mach-bf533/head.S
+++ b/arch/blackfin/mach-bf533/head.S
@@ -172,28 +172,6 @@ ENTRY(__start)
172 call _start_dma_code; 172 call _start_dma_code;
173#endif 173#endif
174 174
175 /* Code for initializing Async memory banks */
176
177 p2.h = hi(EBIU_AMBCTL1);
178 p2.l = lo(EBIU_AMBCTL1);
179 r0.h = hi(AMBCTL1VAL);
180 r0.l = lo(AMBCTL1VAL);
181 [p2] = r0;
182 ssync;
183
184 p2.h = hi(EBIU_AMBCTL0);
185 p2.l = lo(EBIU_AMBCTL0);
186 r0.h = hi(AMBCTL0VAL);
187 r0.l = lo(AMBCTL0VAL);
188 [p2] = r0;
189 ssync;
190
191 p2.h = hi(EBIU_AMGCTL);
192 p2.l = lo(EBIU_AMGCTL);
193 r0 = AMGCTLVAL;
194 w[p2] = r0;
195 ssync;
196
197 /* This section keeps the processor in supervisor mode 175 /* This section keeps the processor in supervisor mode
198 * during kernel boot. Switches to user mode at end of boot. 176 * during kernel boot. Switches to user mode at end of boot.
199 * See page 3-9 of Hardware Reference manual for documentation. 177 * See page 3-9 of Hardware Reference manual for documentation.
diff --git a/arch/blackfin/mach-bf537/head.S b/arch/blackfin/mach-bf537/head.S
index c11f0fd82255..c062acb04836 100644
--- a/arch/blackfin/mach-bf537/head.S
+++ b/arch/blackfin/mach-bf537/head.S
@@ -184,28 +184,6 @@ ENTRY(__start)
184 call _start_dma_code; 184 call _start_dma_code;
185#endif 185#endif
186 186
187 /* Code for initializing Async memory banks */
188
189 p2.h = hi(EBIU_AMBCTL1);
190 p2.l = lo(EBIU_AMBCTL1);
191 r0.h = hi(AMBCTL1VAL);
192 r0.l = lo(AMBCTL1VAL);
193 [p2] = r0;
194 ssync;
195
196 p2.h = hi(EBIU_AMBCTL0);
197 p2.l = lo(EBIU_AMBCTL0);
198 r0.h = hi(AMBCTL0VAL);
199 r0.l = lo(AMBCTL0VAL);
200 [p2] = r0;
201 ssync;
202
203 p2.h = hi(EBIU_AMGCTL);
204 p2.l = lo(EBIU_AMGCTL);
205 r0 = AMGCTLVAL;
206 w[p2] = r0;
207 ssync;
208
209 /* This section keeps the processor in supervisor mode 187 /* This section keeps the processor in supervisor mode
210 * during kernel boot. Switches to user mode at end of boot. 188 * during kernel boot. Switches to user mode at end of boot.
211 * See page 3-9 of Hardware Reference manual for documentation. 189 * See page 3-9 of Hardware Reference manual for documentation.
diff --git a/arch/blackfin/mach-bf548/head.S b/arch/blackfin/mach-bf548/head.S
index 96fbdb790a98..832a8d7212ac 100644
--- a/arch/blackfin/mach-bf548/head.S
+++ b/arch/blackfin/mach-bf548/head.S
@@ -133,48 +133,6 @@ ENTRY(__start)
133#ifdef CONFIG_BFIN_KERNEL_CLOCK 133#ifdef CONFIG_BFIN_KERNEL_CLOCK
134 call _start_dma_code; 134 call _start_dma_code;
135#endif 135#endif
136 /* Code for initializing Async memory banks */
137
138 p2.h = hi(EBIU_AMBCTL1);
139 p2.l = lo(EBIU_AMBCTL1);
140 r0.h = hi(AMBCTL1VAL);
141 r0.l = lo(AMBCTL1VAL);
142 [p2] = r0;
143 ssync;
144
145 p2.h = hi(EBIU_AMBCTL0);
146 p2.l = lo(EBIU_AMBCTL0);
147 r0.h = hi(AMBCTL0VAL);
148 r0.l = lo(AMBCTL0VAL);
149 [p2] = r0;
150 ssync;
151
152 p2.h = hi(EBIU_AMGCTL);
153 p2.l = lo(EBIU_AMGCTL);
154 r0 = AMGCTLVAL;
155 w[p2] = r0;
156 ssync;
157
158 p2.h = hi(EBIU_MBSCTL);
159 p2.l = lo(EBIU_MBSCTL);
160 r0.h = hi(CONFIG_EBIU_MBSCTLVAL);
161 r0.l = lo(CONFIG_EBIU_MBSCTLVAL);
162 [p2] = r0;
163 ssync;
164
165 p2.h = hi(EBIU_MODE);
166 p2.l = lo(EBIU_MODE);
167 r0.h = hi(CONFIG_EBIU_MODEVAL);
168 r0.l = lo(CONFIG_EBIU_MODEVAL);
169 [p2] = r0;
170 ssync;
171
172 p2.h = hi(EBIU_FCTL);
173 p2.l = lo(EBIU_FCTL);
174 r0.h = hi(CONFIG_EBIU_FCTLVAL);
175 r0.l = lo(CONFIG_EBIU_FCTLVAL);
176 [p2] = r0;
177 ssync;
178 136
179 /* This section keeps the processor in supervisor mode 137 /* This section keeps the processor in supervisor mode
180 * during kernel boot. Switches to user mode at end of boot. 138 * during kernel boot. Switches to user mode at end of boot.
diff --git a/arch/blackfin/mach-bf561/head.S b/arch/blackfin/mach-bf561/head.S
index 553b2d149d71..c541b312c25d 100644
--- a/arch/blackfin/mach-bf561/head.S
+++ b/arch/blackfin/mach-bf561/head.S
@@ -161,28 +161,6 @@ ENTRY(__start)
161 call _start_dma_code; 161 call _start_dma_code;
162#endif 162#endif
163 163
164 /* Code for initializing Async memory banks */
165
166 p2.h = hi(EBIU_AMBCTL1);
167 p2.l = lo(EBIU_AMBCTL1);
168 r0.h = hi(AMBCTL1VAL);
169 r0.l = lo(AMBCTL1VAL);
170 [p2] = r0;
171 ssync;
172
173 p2.h = hi(EBIU_AMBCTL0);
174 p2.l = lo(EBIU_AMBCTL0);
175 r0.h = hi(AMBCTL0VAL);
176 r0.l = lo(AMBCTL0VAL);
177 [p2] = r0;
178 ssync;
179
180 p2.h = hi(EBIU_AMGCTL);
181 p2.l = lo(EBIU_AMGCTL);
182 r0 = AMGCTLVAL;
183 w[p2] = r0;
184 ssync;
185
186 /* This section keeps the processor in supervisor mode 164 /* This section keeps the processor in supervisor mode
187 * during kernel boot. Switches to user mode at end of boot. 165 * during kernel boot. Switches to user mode at end of boot.
188 * See page 3-9 of Hardware Reference manual for documentation. 166 * See page 3-9 of Hardware Reference manual for documentation.