diff options
author | Mike Frysinger <vapier.adi@gmail.com> | 2008-08-06 05:17:10 -0400 |
---|---|---|
committer | Bryan Wu <cooloney@kernel.org> | 2008-08-06 05:17:10 -0400 |
commit | 7e64acabfdb530b1b7d3db2592d75d102827baf3 (patch) | |
tree | 9cd5d29f86a700fa474f063462bad928d292b567 | |
parent | 1375204611f417541e55ee09e248acdbbb94356d (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>
-rw-r--r-- | arch/blackfin/kernel/setup.c | 10 | ||||
-rw-r--r-- | arch/blackfin/mach-bf527/head.S | 22 | ||||
-rw-r--r-- | arch/blackfin/mach-bf533/head.S | 22 | ||||
-rw-r--r-- | arch/blackfin/mach-bf537/head.S | 22 | ||||
-rw-r--r-- | arch/blackfin/mach-bf548/head.S | 42 | ||||
-rw-r--r-- | arch/blackfin/mach-bf561/head.S | 22 |
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. |