On Fri, Nov 19, 2010 at 2:54 AM, Nishanth Menon <n...@ti.com> 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 <ambr...@ti.com>
> Signed-off-by: Nishanth Menon <n...@ti.com>
> ---
>  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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to