diff options
Diffstat (limited to 'arch/arm/plat-omap/sram.c')
-rw-r--r-- | arch/arm/plat-omap/sram.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index 67a90708b682..a5b9bcd6b108 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c | |||
@@ -214,6 +214,15 @@ void __init omap_map_sram(void) | |||
214 | base = OMAP3_SRAM_PA; | 214 | base = OMAP3_SRAM_PA; |
215 | base = ROUND_DOWN(base, PAGE_SIZE); | 215 | base = ROUND_DOWN(base, PAGE_SIZE); |
216 | omap_sram_io_desc[0].pfn = __phys_to_pfn(base); | 216 | omap_sram_io_desc[0].pfn = __phys_to_pfn(base); |
217 | |||
218 | /* | ||
219 | * SRAM must be marked as non-cached on OMAP3 since the | ||
220 | * CORE DPLL M2 divider change code (in SRAM) runs with the | ||
221 | * SDRAM controller disabled, and if it is marked cached, | ||
222 | * the ARM may attempt to write cache lines back to SDRAM | ||
223 | * which will cause the system to hang. | ||
224 | */ | ||
225 | omap_sram_io_desc[0].type = MT_MEMORY_NONCACHED; | ||
217 | } | 226 | } |
218 | 227 | ||
219 | if (cpu_is_omap44xx()) { | 228 | if (cpu_is_omap44xx()) { |
@@ -362,14 +371,15 @@ static inline int omap243x_sram_init(void) | |||
362 | static u32 (*_omap3_sram_configure_core_dpll)(u32 sdrc_rfr_ctrl, | 371 | static u32 (*_omap3_sram_configure_core_dpll)(u32 sdrc_rfr_ctrl, |
363 | u32 sdrc_actim_ctrla, | 372 | u32 sdrc_actim_ctrla, |
364 | u32 sdrc_actim_ctrlb, | 373 | u32 sdrc_actim_ctrlb, |
365 | u32 m2); | 374 | u32 m2, u32 unlock_dll); |
366 | u32 omap3_configure_core_dpll(u32 sdrc_rfr_ctrl, u32 sdrc_actim_ctrla, | 375 | u32 omap3_configure_core_dpll(u32 sdrc_rfr_ctrl, u32 sdrc_actim_ctrla, |
367 | u32 sdrc_actim_ctrlb, u32 m2) | 376 | u32 sdrc_actim_ctrlb, u32 m2, u32 unlock_dll) |
368 | { | 377 | { |
369 | BUG_ON(!_omap3_sram_configure_core_dpll); | 378 | BUG_ON(!_omap3_sram_configure_core_dpll); |
370 | return _omap3_sram_configure_core_dpll(sdrc_rfr_ctrl, | 379 | return _omap3_sram_configure_core_dpll(sdrc_rfr_ctrl, |
371 | sdrc_actim_ctrla, | 380 | sdrc_actim_ctrla, |
372 | sdrc_actim_ctrlb, m2); | 381 | sdrc_actim_ctrlb, m2, |
382 | unlock_dll); | ||
373 | } | 383 | } |
374 | 384 | ||
375 | /* REVISIT: Should this be same as omap34xx_sram_init() after off-idle? */ | 385 | /* REVISIT: Should this be same as omap34xx_sram_init() after off-idle? */ |