Thread (3 messages) 3 messages, 3 authors, 2011-06-29
STALE5449d

[PATCH] OMAP3: run the ASM sleep code from DDR

From: Jean Pihet <hidden>
Date: 2011-06-29 17:48:50
Also in: linux-omap

Possibly related (same subject, not in this thread)

On Wed, Jun 29, 2011 at 7:29 PM, Kevin Hilman [off-list ref] wrote:
jean.pihet at newoldbits.com writes:
quoted
From: Jean Pihet <redacted>

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.

Signed-off-by: Jean Pihet <redacted>
Reviewed-by: Kevin Hilman <redacted>

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

Tested-by: Kevin Hilman <redacted>
Thanks for the extensive testing!

Regards,
Jean
Russell, if you're OK with it, can you add it to your suspend branch for
the upcoming merge window?

Kevin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help