diff options
author | Michael Hennerich <michael.hennerich@analog.com> | 2008-07-14 04:51:57 -0400 |
---|---|---|
committer | Bryan Wu <cooloney@kernel.org> | 2008-07-14 04:51:57 -0400 |
commit | 68e2fc78e5055740126df8eab0d31005495756c9 (patch) | |
tree | 0d43976ff1d3ae8535445f9bcb1687f657f33337 /arch/blackfin/mach-bf533 | |
parent | 260d5d3517c67c5b68b4e28c5d3e1e3b73976a90 (diff) |
Blackfin arch: Fix bug - Kernel does not boot if re-program clocks
Don't write conflicting data to EBIU_SDBCTL after the SDRAM is
configured. This can cause data corruption, since we might change SDRAM
row and column addressing modes.
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Diffstat (limited to 'arch/blackfin/mach-bf533')
-rw-r--r-- | arch/blackfin/mach-bf533/head.S | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/arch/blackfin/mach-bf533/head.S b/arch/blackfin/mach-bf533/head.S index 1295deac00a4..c671e8549b17 100644 --- a/arch/blackfin/mach-bf533/head.S +++ b/arch/blackfin/mach-bf533/head.S | |||
@@ -31,7 +31,7 @@ | |||
31 | #include <linux/init.h> | 31 | #include <linux/init.h> |
32 | #include <asm/blackfin.h> | 32 | #include <asm/blackfin.h> |
33 | #include <asm/trace.h> | 33 | #include <asm/trace.h> |
34 | #if CONFIG_BFIN_KERNEL_CLOCK | 34 | #ifdef CONFIG_BFIN_KERNEL_CLOCK |
35 | #include <asm/mach-common/clocks.h> | 35 | #include <asm/mach-common/clocks.h> |
36 | #include <asm/mach/mem_init.h> | 36 | #include <asm/mach/mem_init.h> |
37 | #endif | 37 | #endif |
@@ -186,7 +186,7 @@ ENTRY(__start) | |||
186 | 186 | ||
187 | /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */ | 187 | /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */ |
188 | call _bf53x_relocate_l1_mem; | 188 | call _bf53x_relocate_l1_mem; |
189 | #if CONFIG_BFIN_KERNEL_CLOCK | 189 | #ifdef CONFIG_BFIN_KERNEL_CLOCK |
190 | call _start_dma_code; | 190 | call _start_dma_code; |
191 | #endif | 191 | #endif |
192 | 192 | ||
@@ -319,7 +319,7 @@ ENDPROC(_real_start) | |||
319 | __FINIT | 319 | __FINIT |
320 | 320 | ||
321 | .section .l1.text | 321 | .section .l1.text |
322 | #if CONFIG_BFIN_KERNEL_CLOCK | 322 | #ifdef CONFIG_BFIN_KERNEL_CLOCK |
323 | ENTRY(_start_dma_code) | 323 | ENTRY(_start_dma_code) |
324 | p0.h = hi(SIC_IWR); | 324 | p0.h = hi(SIC_IWR); |
325 | p0.l = lo(SIC_IWR); | 325 | p0.l = lo(SIC_IWR); |
@@ -390,12 +390,6 @@ ENTRY(_start_dma_code) | |||
390 | w[p0] = r0.l; | 390 | w[p0] = r0.l; |
391 | ssync; | 391 | ssync; |
392 | 392 | ||
393 | p0.l = LO(EBIU_SDBCTL); | ||
394 | p0.h = HI(EBIU_SDBCTL); /* SDRAM Memory Bank Control Register */ | ||
395 | r0 = mem_SDBCTL; | ||
396 | w[p0] = r0.l; | ||
397 | ssync; | ||
398 | |||
399 | P2.H = hi(EBIU_SDGCTL); | 393 | P2.H = hi(EBIU_SDGCTL); |
400 | P2.L = lo(EBIU_SDGCTL); | 394 | P2.L = lo(EBIU_SDGCTL); |
401 | R0 = [P2]; | 395 | R0 = [P2]; |