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-bf537/head.S | |
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-bf537/head.S')
-rw-r--r-- | arch/blackfin/mach-bf537/head.S | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/arch/blackfin/mach-bf537/head.S b/arch/blackfin/mach-bf537/head.S index 48cd58a410a0..6b019eaee0b6 100644 --- a/arch/blackfin/mach-bf537/head.S +++ b/arch/blackfin/mach-bf537/head.S | |||
@@ -32,7 +32,7 @@ | |||
32 | #include <asm/blackfin.h> | 32 | #include <asm/blackfin.h> |
33 | #include <asm/trace.h> | 33 | #include <asm/trace.h> |
34 | 34 | ||
35 | #if CONFIG_BFIN_KERNEL_CLOCK | 35 | #ifdef CONFIG_BFIN_KERNEL_CLOCK |
36 | #include <asm/mach-common/clocks.h> | 36 | #include <asm/mach-common/clocks.h> |
37 | #include <asm/mach/mem_init.h> | 37 | #include <asm/mach/mem_init.h> |
38 | #endif | 38 | #endif |
@@ -217,7 +217,7 @@ ENTRY(__start) | |||
217 | 217 | ||
218 | /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */ | 218 | /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */ |
219 | call _bf53x_relocate_l1_mem; | 219 | call _bf53x_relocate_l1_mem; |
220 | #if CONFIG_BFIN_KERNEL_CLOCK | 220 | #ifdef CONFIG_BFIN_KERNEL_CLOCK |
221 | call _start_dma_code; | 221 | call _start_dma_code; |
222 | #endif | 222 | #endif |
223 | 223 | ||
@@ -350,7 +350,7 @@ ENDPROC(_real_start) | |||
350 | __FINIT | 350 | __FINIT |
351 | 351 | ||
352 | .section .l1.text | 352 | .section .l1.text |
353 | #if CONFIG_BFIN_KERNEL_CLOCK | 353 | #ifdef CONFIG_BFIN_KERNEL_CLOCK |
354 | ENTRY(_start_dma_code) | 354 | ENTRY(_start_dma_code) |
355 | 355 | ||
356 | /* Enable PHY CLK buffer output */ | 356 | /* Enable PHY CLK buffer output */ |
@@ -430,12 +430,6 @@ ENTRY(_start_dma_code) | |||
430 | w[p0] = r0.l; | 430 | w[p0] = r0.l; |
431 | ssync; | 431 | ssync; |
432 | 432 | ||
433 | p0.l = LO(EBIU_SDBCTL); | ||
434 | p0.h = HI(EBIU_SDBCTL); /* SDRAM Memory Bank Control Register */ | ||
435 | r0 = mem_SDBCTL; | ||
436 | w[p0] = r0.l; | ||
437 | ssync; | ||
438 | |||
439 | P2.H = hi(EBIU_SDGCTL); | 433 | P2.H = hi(EBIU_SDGCTL); |
440 | P2.L = lo(EBIU_SDGCTL); | 434 | P2.L = lo(EBIU_SDGCTL); |
441 | R0 = [P2]; | 435 | R0 = [P2]; |