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

Jean Pihet jean.pihet at newoldbits.com
Wed Jun 29 13:48:50 EDT 2011


On Wed, Jun 29, 2011 at 7:29 PM, Kevin Hilman <khilman at ti.com> wrote:
> 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>
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
>



More information about the linux-arm-kernel mailing list