alistair23-linux/arch/arm/plat-omap
Jean Pihet 46e130d298 ARM: pm: omap3: run the ASM sleep code from DDR
Most of the ASM sleep code (in arch/arm/mach-omap2/sleep34xx.S)
is copied to internal SRAM at boot and after wake-up from CORE OFF
mode.  However only a small part of the code really needs to run from
internal SRAM.

This fix lets most of the ASM idle code run from the DDR in order to
minimize the SRAM usage and the overhead in the code copy.

The only pieces of code that are mandatory in SRAM are:
- the i443 erratum WA,
- the i581 erratum WA,
- the security extension code.

SRAM usage:
- original code:
  . 560 bytes for omap3_sram_configure_core_dpll (used by DVFS),
  . 852 bytes for omap_sram_idle (used by suspend/resume in RETention),
  . 124 bytes for es3_sdrc_fix (used by suspend/resume in OFF mode on ES3.x),
  . 108 bytes for save_secure_ram_context (used on HS parts only).

With this fix the usage for suspend/resume in RETention goes down 288
bytes, so the gain in SRAM usage for suspend/resume is 564 bytes.

Also fixed the SRAM initialization sequence to avoid an unnecessary
copy to SRAM at boot time and for readability.

Tested on Beagleboard (ES2.x) in idle with full RET and OFF modes.

Kevin Hilman tested retention and off on 3430/n900, 3530/Overo and
3630/Zoom3

Signed-off-by: Jean Pihet <j-pihet@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Tested-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-06-29 19:07:47 +01:00
..
include/plat ARM: OMAP4: MMC: no regulator off during probe for eMMC 2011-06-01 02:25:04 -07:00
clock.c OMAP: clock: bail out early if arch_clock functions not implemented 2011-03-07 20:19:39 -07:00
common.c ARM: omap: move omap_board_config_kernel to .init.data 2011-02-09 16:36:41 -08:00
counter_32k.c omap: Start using CONFIG_SOC_OMAP 2011-01-27 16:39:40 -08:00
cpu-omap.c arm: omap: fix section mismatch warning 2011-03-02 16:32:52 -08:00
debug-devices.c
debug-leds.c
devices.c Fix common misspellings 2011-03-31 11:26:23 -03:00
dma.c Fix common misspellings 2011-03-31 11:26:23 -03:00
dmtimer.c omap2/3: dmtimer: Enable autoidle 2011-03-10 03:50:54 -07:00
fb.c Merge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linux 2010-10-26 10:02:39 -07:00
fb.h
i2c.c arm: omap: i2c: fix compile warning 2011-01-27 16:39:41 -08:00
io.c TI816X: Update common OMAP machine specific sources 2011-02-16 08:31:39 -08:00
iommu-debug.c
iommu.c omap: iommu: Return IRQ_HANDLED in fault handler when no fault occured 2011-05-11 10:47:50 -07:00
iopgtable.h
iovmm.c OMAP: iovmm: fix SW flags passed by user 2011-06-01 02:25:04 -07:00
Kconfig Merge branch 'devel-stable' into for-linus 2011-05-23 19:28:04 +01:00
mailbox.c Merge branch 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2011-03-16 08:20:19 -07:00
Makefile GPIO: OMAP: move to drivers/gpio 2011-05-27 08:43:34 -07:00
mcbsp.c Fix common misspellings 2011-03-31 11:26:23 -03:00
mux.c
ocpi.c
omap-pm-noop.c OMAP: PM noop: implement context loss count for non-omap_devices 2010-12-21 21:31:55 -07:00
omap_device.c OMAP2+ / PM: move runtime PM implementation to use device power domains 2011-04-29 00:36:42 +02:00
sram.c ARM: pm: omap3: run the ASM sleep code from DDR 2011-06-29 19:07:47 +01:00
sram.h
usb.c