From mboxrd@z Thu Jan 1 00:00:00 1970 From: jean.pihet@newoldbits.com (Jean Pihet) Date: Wed, 29 Jun 2011 19:48:50 +0200 Subject: [PATCH] OMAP3: run the ASM sleep code from DDR In-Reply-To: <87mxh0tuk2.fsf@ti.com> References: <1309365623-14704-1-git-send-email-j-pihet@ti.com> <87mxh0tuk2.fsf@ti.com> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Wed, Jun 29, 2011 at 7:29 PM, Kevin Hilman wrote: > jean.pihet at newoldbits.com writes: > >> From: Jean Pihet >> >> 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 > > Reviewed-by: Kevin Hilman > > Also tested retention and off on 3430/n900, 3530/Overo and 3630/Zoom3 > > Tested-by: Kevin Hilman 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 >