linux/arch/arm
Paul Walmsley 18862cbe47 OMAP3: SDRC: Place SDRC AC timing and MR changes in CORE DVFS SRAM code behind Kconfig
The code that reprograms the SDRC memory controller during CORE DVFS,
mach-omap2/sram34xx.S:omap3_sram_configure_core_dpll(), does not
ensure that all L3 initiators are prevented from accessing the SDRAM
before modifying the SDRC AC timing and MR registers.  This can cause
memory to be corrupted or cause the SDRC to enter an unpredictable
state.  This patch places that code behind a Kconfig option,
CONFIG_OMAP3_SDRC_AC_TIMING for now, and adds a note explaining what
is going on.  Ideally the code can be added back in once supporting
code is present to ensure that other initiators aren't touching the
SDRAM.  At the very least, these registers should be reprogrammable
during kernel init to deal with buggy bootloaders.  Users who know
that all other system initiators will not be touching the SDRAM can
also re-enable this Kconfig option.

This is a modification of a patch originally written by Rajendra Nayak
<rnayak@ti.com> (the original is at http://patchwork.kernel.org/patch/51927/).
Rather than removing the code completely, this patch just comments it out.

Thanks to Benoît Cousson <b-cousson@ti.com> and Christophe Sucur
<c-sucur@ti.com> for explaining the technical basis for this and for
explaining what can be done to make this path work in future code.
Thanks to Richard Woodruff <r-woodruff2@ti.com>, Nishanth Menon
<nm@ti.com>, and Olof Johansson <olof@lixom.net> for their comments.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Rajendra Nayak <rnayak@ti.com>
Cc: Christophe Sucur <c-sucur@ti.com>
Cc: Benoît Cousson <b-cousson@ti.com>
Cc: Richard Woodruff <r-woodruff2@ti.com>
Cc: Nishanth Menon <nm@ti.com>
Cc: Olof Johansson <olof@lixom.net>
2009-12-11 17:00:42 -07:00
..
boot ARM: add base support for Marvell Dove SoC 2009-11-27 15:43:06 -05:00
common Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
configs Merge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linux 2009-12-10 21:55:17 -08:00
include/asm Merge branch 'for-2.6.33' of git://git.kernel.dk/linux-2.6-block 2009-12-08 08:19:16 -08:00
kernel Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-12-08 08:12:43 -08:00
lib
mach-aaec2000
mach-at91 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-12-09 19:52:01 -08:00
mach-bcmring Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-clps711x
mach-davinci Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-12-09 19:52:01 -08:00
mach-dove ARM: Add Tauros2 L2 cache controller support 2009-11-27 15:43:21 -05:00
mach-ebsa110
mach-ep93xx ARM: 5790/1: ep93xx: add missing newline between file header and code 2009-11-24 10:04:17 +00:00
mach-footbridge
mach-gemini
mach-h720x
mach-integrator ARM: integrator: allow Integrator to be built with highmem 2009-10-25 22:44:30 +00:00
mach-iop13xx Merge branch 'devel-stable' into devel 2009-12-05 10:35:33 +00:00
mach-iop32x iop: enable generic time 2009-10-29 11:46:55 -07:00
mach-iop33x iop: enable generic time 2009-10-29 11:46:55 -07:00
mach-ixp4xx
mach-ixp23xx
mach-ixp2000
mach-kirkwood [ARM] Kirkwood: Remove code duplication in QNAP setup files 2009-11-13 12:14:24 -05:00
mach-ks8695 ARM: dma-mapping: provide dma_to_page() 2009-11-23 12:53:54 +00:00
mach-l7200
mach-lh7a40x tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
mach-loki
mach-mmp [ARM] pxa: add apmu clock support in mmp 2009-12-01 09:02:51 +08:00
mach-msm
mach-mv78xx0 [ARM] properly report mv78100 stepping A1 2009-11-05 23:03:19 -05:00
mach-mx1
mach-mx2 mx27: mxt_td60: Add support to SD/MMC 2009-12-02 12:06:14 +01:00
mach-mx3 mx31moboard: fix typo 2009-12-04 13:23:41 +01:00
mach-mx25
mach-mxc91231
mach-netx
mach-nomadik ARM: 5786/1: Introduce plat-nomadik, MTU code re-organization 2009-11-28 10:22:51 +00:00
mach-ns9xxx
mach-omap1 OMAP1 clock: convert mach-omap1/clock.h to mach-omap1/clock_data.c 2009-12-11 17:00:40 -07:00
mach-omap2 OMAP3: SDRC: Place SDRC AC timing and MR changes in CORE DVFS SRAM code behind Kconfig 2009-12-11 17:00:42 -07:00
mach-orion5x tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
mach-pnx4008
mach-pxa Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-realview RealView: Add sparsemem support for the RealView PBX platform 2009-11-05 10:10:36 +00:00
mach-rpc
mach-s3c24a0/include/mach ARM: S3C: Update Simtec copyright statements from , to - [2] 2009-12-01 01:33:51 +00:00
mach-s3c2400 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s3c2410 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s3c2412 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s3c2440 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s3c2442 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s3c2443 Kconfig: Remove useless and sometimes wrong comments 2009-11-09 09:40:56 +01:00
mach-s3c6400 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s3c6410 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s5pc100 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-sa1100 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-shark
mach-stmp37xx
mach-stmp378x
mach-u300 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-ux500 ARM: 5832/1: ARM: U8500 Makefile.boot 2009-11-28 10:22:52 +00:00
mach-versatile
mach-w90x900 ARM: 5842/1: add spi resource support for nuc900 2009-12-01 23:08:31 +00:00
mm Merge branch 'devel-stable' into devel 2009-12-05 10:35:33 +00:00
nwfpe
oprofile ARM: 5764/1: bcmring: add oprofile pmu support 2009-10-17 20:10:22 +01:00
plat-iop iop: implement sched_clock() 2009-10-29 11:46:56 -07:00
plat-mxc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
plat-nomadik ARM: 5833/1: ARM nomadik: enable U8500 for common platform 2009-11-28 10:22:53 +00:00
plat-omap OMAP powerdomain: rearrange struct powerdomain to save some memory 2009-12-11 17:00:41 -07:00
plat-orion
plat-pxa pxa3xx_nand: move pxa3xx_nand.h common into plat directory 2009-12-01 09:02:43 +08:00
plat-s3c Merge branch 's3c24xx-updates' of git://git.fluff.org/bjdooks/linux 2009-12-09 19:45:58 -08:00
plat-s3c24xx Merge branch 's3c24xx-updates' of git://git.fluff.org/bjdooks/linux 2009-12-09 19:45:58 -08:00
plat-s3c64xx Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
plat-s5pc1xx Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
plat-samsung ARM: SAMSUNG: Add plat-samsung as starting point for plat-s3c* moves 2009-12-01 01:28:37 +00:00
plat-stmp3xxx
tools [ARM] Update mach-types 2009-11-25 22:17:36 +00:00
vfp
Kconfig Merge branch 'devel-stable' into devel 2009-12-05 10:35:33 +00:00
Kconfig-nommu
Kconfig.debug ARM: 5841/1: a driver for on-chip ETM and ETB 2009-12-02 10:25:22 +00:00
Makefile Merge branch 'devel-stable' into devel 2009-12-05 10:35:33 +00:00