Archived
14
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
linux-2.6/arch/arm/mach-omap2
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
..
include/mach omap3: zoom: rename zoom2 name to generic zoom 2009-11-22 10:24:33 -08:00
board-2430sdp.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
board-3430sdp.c OMAP: SDP: Enable DSS2 for OMAP3 SDP board 2009-12-09 18:29:38 +02:00
board-3630sdp.c omap: 3630sdp: introduce 3630 sdp board support 2009-11-25 14:21:01 -08:00
board-4430sdp.c Merge branch '7xx-iosplit-plat' with omap-fixes 2009-11-10 18:10:34 -08:00
board-am3517evm.c AM35xx: Add support for AM3517 EVM board 2009-11-25 14:21:01 -08:00
board-apollon.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
board-cm-t35.c omap3: Add CompuLab CM-T35 board support 2009-11-25 14:21:00 -08:00
board-generic.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
board-h4.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
board-igep0020.c omap3: Add minimal IGEP v2 support 2009-11-25 14:21:00 -08:00
board-ldp.c Merge branch '7xx-iosplit-plat' with omap-fixes 2009-11-10 18:10:34 -08:00
board-n8x0.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
board-omap3beagle.c Merge branch 'topic/asoc' into for-linus 2009-12-04 16:22:41 +01:00
board-omap3evm.c omap3evm: MIgrate to smsc911x ethernet driver 2009-11-22 10:24:33 -08:00
board-omap3pandora.c Merge branch 'topic/asoc' into for-linus 2009-12-04 16:22:41 +01:00
board-overo.c omap: Add platform init code for EHCI driver 2009-11-22 10:24:32 -08:00
board-rx51-peripherals.c omap3: rx51: Add wl1251 wlan driver support 2009-11-22 10:24:33 -08:00
board-rx51-sdram.c omap3: rx51: Add SDRAM init 2009-11-22 10:24:33 -08:00
board-rx51.c omap3: rx51: Add SDRAM init 2009-11-22 10:24:33 -08:00
board-zoom-debugboard.c omap3: zoom: rename zoom2 name to generic zoom 2009-11-22 10:24:33 -08:00
board-zoom-peripherals.c omap3: zoom: Drop i2c-1 speed to 2400 2009-11-22 10:24:33 -08:00
board-zoom2.c Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2009-12-08 08:15:29 -08:00
board-zoom3.c omap3: zoom: Introduce zoom3 board support 2009-11-22 10:24:33 -08:00
clock.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
clock.h OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
clock2xxx.c OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
clock2xxx.h OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
clock2xxx_data.c OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
clock34xx.c OMAP3 clock: convert clock34xx.h to clock34xx_data.c 2009-12-11 16:12:15 -07:00
clock34xx.h OMAP3 clock: convert clock34xx.h to clock34xx_data.c 2009-12-11 16:12:15 -07:00
clock34xx_data.c OMAP3 clock: convert clock34xx.h to clock34xx_data.c 2009-12-11 16:12:15 -07:00
clock_common_data.c OMAP3 clock: convert clock34xx.h to clock34xx_data.c 2009-12-11 16:12:15 -07:00
clockdomain.c OMAP clockdomain/powerdomain: remove CONFIG_OMAP_DEBUG_{CLOCK,POWER}DOMAIN 2009-12-11 17:00:40 -07:00
clockdomains.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
cm-regbits-24xx.h [ARM] OMAP2 PRCM: clean up CM_IDLEST bits 2009-02-08 17:50:37 +00:00
cm-regbits-34xx.h OMAP3: PM: Add D2D clocks and auto-idle setup to PRCM init 2009-05-28 10:59:07 -07:00
cm.c OMAP2/3/4 PRCM: add module IDLEST wait code 2009-09-03 20:14:02 +03:00
cm.h omap: Split OMAP2_IO_ADDRESS to L3 and L4 2009-10-19 15:25:31 -07:00
cm4xxx.c omap: Fix 44xx compile 2009-09-24 16:23:07 -07:00
control.c OMAP3: PM: Program SDRC to send self refresh on timeout of AUTO_CNT 2009-11-11 14:42:28 -08:00
cpuidle34xx.c OMAP3: PM: Added resched check into idle calls 2009-11-11 14:42:50 -08:00
devices.c omap: mailbox: Add resources and mailbox register base address for OMAP4 mailbox 2009-11-22 10:24:33 -08:00
emu.c ARM: 5843/1: OMAP3: add AMBA devices for ETM and ETB 2009-12-02 10:25:23 +00:00
gpmc-onenand.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
gpmc-smc91x.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
gpmc.c Merge 7xx-iosplit-plat-merge with omap-fixes 2009-11-22 10:08:43 -08:00
id.c omap: Cleanup the coding style in id.c 2009-11-22 10:24:33 -08:00
io.c OMAP: Add VRAM manager 2009-12-09 12:04:33 +02:00
iommu2.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
irq.c OMAP3: PM: Fix INTC context save/restore 2009-11-11 14:42:27 -08:00
Kconfig OMAP3: SDRC: Place SDRC AC timing and MR changes in CORE DVFS SRAM code behind Kconfig 2009-12-11 17:00:42 -07:00
mailbox.c omap: mailbox: Adds code changes to support OMAP4 mailbox 2009-11-22 10:24:33 -08:00
Makefile OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
Makefile.boot
mcbsp.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
mmc-twl4030.c omap3630: Set omap3630 MMC1 I/O speed to 52Mhz 2009-11-22 10:24:32 -08:00
mmc-twl4030.h omap_hsmmc: support for deeper power saving states 2009-09-23 07:39:35 -07:00
mux.c omap3evm: ehci: Update EHCI support on OMAP3EVM (Rev >= E) 2009-11-22 10:24:33 -08:00
omap-headsmp.S ARM: OMAP4: SMP: Add OMAP4430 SMP board files 2009-06-09 13:03:50 +05:30
omap-smp.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
omap3-iommu.c omap: iommu: reorganize 2009-11-22 10:24:32 -08:00
omap_hwmod.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
omap_hwmod_34xx.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
omap_hwmod_2420.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
omap_hwmod_2430.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
opp2xxx.h OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
opp2420_data.c OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
opp2430_data.c OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
pm-debug.c OMAP powerdomain/PM: use symbolic constants for the max number of power states 2009-12-11 17:00:41 -07:00
pm.h OMAP3: PM: CPUidle: fix init sequencing 2009-11-11 14:42:49 -08:00
pm24xx.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
pm34xx.c OMAP3: PM: Added resched check into idle calls 2009-11-11 14:42:50 -08:00
powerdomain.c OMAP2/3 powerdomain: return errors rather than returning the output of IS_ERR() 2009-12-11 17:00:41 -07:00
powerdomains.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
powerdomains24xx.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
powerdomains34xx.h PM: Disable usb host HW save and restore 2009-11-11 14:42:27 -08:00
prcm-common.h OMAP2/3: PM: push core PM code from linux-omap 2009-05-28 10:58:50 -07:00
prcm.c OMAP2/3 PRCM: don't export prm_*(), cm_*() functions 2009-12-11 17:00:40 -07:00
prm-regbits-24xx.h ARM: OMAP2: Powerdomain: Add OMAP2 powerdomains 2008-08-19 11:08:42 +03:00
prm-regbits-34xx.h OMAP3: PM: Enable IO-CHAIN wakeup 2009-11-11 14:42:28 -08:00
prm.h omap: Split OMAP2_IO_ADDRESS to L3 and L4 2009-10-19 15:25:31 -07:00
sdram-hynix-h8mbx00u0mer-0em.h omap3: zoom: Introduce zoom3 board support 2009-11-22 10:24:33 -08:00
sdram-micron-mt46h32m32lf-6.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sdram-qimonda-hyb18m512160af-6.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sdrc.c OMAP2: Add funcs for writing SMS_ROT_* registers 2009-12-09 11:44:32 +02:00
sdrc.h OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
sdrc2xxx.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
serial.c omap: Eliminate OMAP_MAX_NR_PORTS 2009-11-22 10:24:32 -08:00
sleep24xx.S omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sleep34xx.S OMAP3: PM: Wait for SDRC ready iso a blind delay 2009-11-11 14:42:27 -08:00
sram34xx.S OMAP3: SDRC: Place SDRC AC timing and MR changes in CORE DVFS SRAM code behind Kconfig 2009-12-11 17:00:42 -07:00
sram242x.S omap: Split OMAP2_IO_ADDRESS to L3 and L4 2009-10-19 15:25:31 -07:00
sram243x.S omap: Split OMAP2_IO_ADDRESS to L3 and L4 2009-10-19 15:25:31 -07:00
timer-gp.c PM debug: allow configurable wakeup from suspend on OMAP GPtimer 2009-11-11 14:42:28 -08:00
timer-mpu.c ARM: OMAP4: SMP: Add mpu timer support for OMAP4430 2009-06-09 13:03:59 +05:30
usb-ehci.c omap: Add platform init code for EHCI driver 2009-11-22 10:24:32 -08:00
usb-musb.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
usb-tusb6010.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00