On Fri, Nov 19, 2010 at 2:54 AM, Nishanth Menon <nm@xxxxxx> wrote: > Errata id: i608 > RTA (Retention Till Access) feature is not supported and leads to device > stability issues when enabled. This impacts modules with embedded memories > on OMAP3630 > > Workaround is to disable RTA on boot and coming out of core off. > For disabling rta coming out of off mode, we do this by overriding the > restore pointer for 3630 to allow us restore handler as the first point of > entry before caches are touched and is common for GP and HS devices. > to disable earlier than this could be possible by modifying the ppa for HS > devices, but not for GP devices. > > Signed-off-by: Ambresh K <ambresh@xxxxxx> > Signed-off-by: Nishanth Menon <nm@xxxxxx> > --- > arch/arm/mach-omap2/control.c | 5 ++++- > arch/arm/mach-omap2/control.h | 5 +++++ > arch/arm/mach-omap2/pm34xx.c | 12 ++++++++++++ > arch/arm/mach-omap2/sleep34xx.S | 25 +++++++++++++++++++++++++ > 4 files changed, 46 insertions(+), 1 deletions(-) > ... > diff --git a/arch/arm/mach-omap2/sleep34xx.S b/arch/arm/mach-omap2/sleep34xx.S > index 5a4468f..7259541 100644 > --- a/arch/arm/mach-omap2/sleep34xx.S > +++ b/arch/arm/mach-omap2/sleep34xx.S ... > /* Function call to get the restore pointer for for ES3 to resume from OFF */ > @@ -246,6 +256,19 @@ copy_to_sram: This code is from 'restore_es3' which ends with a pass-through to 'restore:'... > bne copy_to_sram > ldr r1, sram_base > blx r1 > + .. and so adding restore_3630 here has the result that is also run by 34xx >= ES3.x. Is that a concern? Was it tested on 34xx >= ES3.x? > +restore_3630: > + /*b restore_es3630*/ @ Enable to debug restore code > + ldr r1, pm_prepwstst_core_p > + ldr r2, [r1] > + and r2, r2, #0x3 > + cmp r2, #0x0 @ Check if previous power state of CORE is OFF > + bne restore > + /* Disable rta before giving control */ > + ldr r1, control_mem_rta > + mov r2, #OMAP36XX_RTA_DISABLE > + str r2, [r1] > + /* Fall thru for the remaining logic */ > restore: > /* b restore*/ @ Enable to debug restore code > /* Check what was the reason for mpu reset and store the reason in r9*/ > @@ -650,6 +673,8 @@ cache_pred_disable_mask: > .word 0xFFFFE7FB > control_stat: > .word CONTROL_STAT > +control_mem_rta: > + .word CONTROL_MEM_RTA_CTRL > kernel_flush: > .word v7_flush_dcache_all > /* these 2 words need to be at the end !!! */ > -- > 1.6.3.3 > > A more general remark: since pm34xx.c and sleep34xx.S now contain 34xx and 36xx specific code, should those (and possibly other files) be renamed to e.g. pm3xxx.c and sleep3xxx.S? Regards, Jean -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html