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

Kevin Hilman khilman at ti.com
Wed Jun 29 13:29:49 EDT 2011


jean.pihet at newoldbits.com writes:

> From: Jean Pihet <j-pihet at ti.com>
>
> 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 <j-pihet at ti.com>

Reviewed-by: Kevin Hilman <khilman at ti.com>

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

Tested-by: Kevin Hilman <khilman at ti.com>

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

Kevin



More information about the linux-arm-kernel mailing list