OMAP3 SRAM: mark OCM RAM as Non-cacheable Normal memory
authorPaul Walmsley <paul@pwsan.com>
Tue, 12 May 2009 23:27:09 +0000 (17:27 -0600)
committerpaul <paul@twilight.(none)>
Tue, 12 May 2009 23:27:09 +0000 (17:27 -0600)
commitd9295746c0ed3991bdec18c6a5890d71d88904b4
treee14575b7a727cb7f2f7529024ebb6e0ead59b2a3
parent1d80cac0fe44fb87b2a3d35fddd7f534ea81cd90
OMAP3 SRAM: mark OCM RAM as Non-cacheable Normal memory

Mark the SRAM (aka OCM RAM) as Non-cacheable Normal memory[1].  This
is to prevent the ARM from evicting existing cache lines to SDRAM
while code is executing from the SRAM.  Necessary since one of the
primary uses for the SRAM is to hold the code and data for the CORE
DPLL M2 divider reprogramming code, which must execute while the SDRC
is idled.  If the ARM attempts to write cache lines back to the while
the SRAM code is running, the ARM will stall[2].

TI deals with this problem in the CDP kernel by marking the SRAM as
Strongly-ordered memory.

Tero Kristo <tero.kristo@nokia.com> caught a bug in an earlier version of
this patch - thanks Tero.

...

1. ARMv7 ARM (DDI 0406A) pp. A3-30, A3-31, B3-32.

2. Private communication with Richard Woodruff <r-woodruff2@ti.com>

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Tero Kristo <tero.kristo@nokia.com>
Cc: Richard Woodruff <r-woodruff2@ti.com>
arch/arm/plat-omap/sram.c