From: Nishanth Menon <nm@ti.com>
To: "Varadarajan, Charulatha" <charu@ti.com>
Cc: linux-omap <linux-omap@vger.kernel.org>,
Jean <jean.pihet@newoldbits.com>, Tony <tony@atomide.com>,
Kevin <khilman@deeprootsystems.com>,
Vishwa <vishwanath.bs@ti.com>
Subject: Re: [PATCH 3/5] OMAP3630: PM: Erratum i608: disable RTA
Date: Tue, 30 Nov 2010 08:15:32 -0600 [thread overview]
Message-ID: <4CF50704.9060606@ti.com> (raw)
In-Reply-To: <AANLkTiktZPHxGJCTRUg63bR91J28mpw2Rf4riqrybMKV@mail.gmail.com>
Varadarajan, Charulatha had written, on 11/30/2010 12:07 AM, the following:
> Nishant,
>
> On Tue, Nov 30, 2010 at 01:49, Nishanth Menon <nm@ti.com> wrote:
>> Erratum 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@ti.com>
>
> not in Cc?
It was initially written by me and co-developed with Ambresh and I took
it up back again for upstreaming :)
>
>> Signed-off-by: Nishanth Menon <nm@ti.com>
>> ---
>> v2: fixed missing b restore for 3430 es3.1 code.
>> introduced erratum handling logic here splitting it out of uart errata
>> typo fixes for erratum
>> v1: http://marc.info/?l=linux-omap&m=129013172825240&w=2
>>
>> arch/arm/mach-omap2/control.c | 5 ++++-
>> arch/arm/mach-omap2/control.h | 5 +++++
>> arch/arm/mach-omap2/pm34xx.c | 23 +++++++++++++++++++++++
>> arch/arm/mach-omap2/sleep34xx.S | 26 ++++++++++++++++++++++++++
>> 4 files changed, 58 insertions(+), 1 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/control.c b/arch/arm/mach-omap2/control.c
>> index 1fa3294..728f268 100644
>> --- a/arch/arm/mach-omap2/control.c
>> +++ b/arch/arm/mach-omap2/control.c
>> @@ -241,7 +241,10 @@ void omap3_save_scratchpad_contents(void)
>>
>> /* Populate the Scratchpad contents */
>> scratchpad_contents.boot_config_ptr = 0x0;
>> - if (omap_rev() != OMAP3430_REV_ES3_0 &&
>> + if (cpu_is_omap3630())
>> + scratchpad_contents.public_restore_ptr =
>> + virt_to_phys(get_omap3630_restore_pointer());
>> + else if (omap_rev() != OMAP3430_REV_ES3_0 &&
>> omap_rev() != OMAP3430_REV_ES3_1)
>> scratchpad_contents.public_restore_ptr =
>> virt_to_phys(get_restore_pointer());
>> diff --git a/arch/arm/mach-omap2/control.h b/arch/arm/mach-omap2/control.h
>> index b6c6b7c..d7911c5 100644
>> --- a/arch/arm/mach-omap2/control.h
>> +++ b/arch/arm/mach-omap2/control.h
>> @@ -204,6 +204,10 @@
>> #define OMAP343X_CONTROL_WKUP_DEBOBS3 (OMAP343X_CONTROL_GENERAL_WKUP + 0x014)
>> #define OMAP343X_CONTROL_WKUP_DEBOBS4 (OMAP343X_CONTROL_GENERAL_WKUP + 0x018)
>>
>> +/* 36xx-only RTA - Retention till Accesss control registers and bits */
>> +#define OMAP36XX_CONTROL_MEM_RTA_CTRL 0x40C
>> +#define OMAP36XX_RTA_DISABLE 0x0
>> +
>> /* 34xx D2D idle-related pins, handled by PM core */
>> #define OMAP3_PADCONF_SAD2D_MSTANDBY 0x250
>> #define OMAP3_PADCONF_SAD2D_IDLEACK 0x254
>> @@ -347,6 +351,7 @@ extern void omap3_save_scratchpad_contents(void);
>> extern void omap3_clear_scratchpad_contents(void);
>> extern u32 *get_restore_pointer(void);
>> extern u32 *get_es3_restore_pointer(void);
>> +extern u32 *get_omap3630_restore_pointer(void);
>> extern u32 omap3_arm_context[128];
>> extern void omap3_control_save_context(void);
>> extern void omap3_control_restore_context(void);
>> diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
>> index 75c0cd1..bd426cc 100644
>> --- a/arch/arm/mach-omap2/pm34xx.c
>> +++ b/arch/arm/mach-omap2/pm34xx.c
>> @@ -54,6 +54,10 @@
>> #define OMAP343X_TABLE_VALUE_OFFSET 0xc0
>> #define OMAP343X_CONTROL_REG_VALUE_OFFSET 0xc8
>>
>> +#define RTA_ERRATUM_i608 (1 << 0)
>> +static u16 pm34xx_errata;
>> +#define IS_PM34XX_ERRATUM(id) (pm34xx_errata & (id))
>> +
>> struct power_state {
>> struct powerdomain *pwrdm;
>> u32 next_state;
>> @@ -979,6 +983,14 @@ void omap_push_sram_idle(void)
>> save_secure_ram_context_sz);
>> }
>>
>> +static void pm_errata_configure(void)
>> +{
>> + if (cpu_is_omap34xx()) {
>> + if (cpu_is_omap3630())
>
> Is it required to have both the cpu_is checks*? Why?
hmm... good point.. pm_init already checks of cpu_is_omap34xx() and
returns.. I guess I was simply paranoid -> I will remove this in next
rev. thanks.
--
Regards,
Nishanth Menon
next prev parent reply other threads:[~2010-11-30 14:15 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-29 20:19 [PATCH 0/5 v2] OMAP: idle path errata fixes Nishanth Menon
2010-11-29 20:19 ` [PATCH 1/5 v2] OMAP3: PM: Update clean_l2 to use v7_flush_dcache_all Nishanth Menon
2010-11-29 20:19 ` [PATCH 2/5 v2] OMAP3: PM: Erratum i581 support: dll kick strategy Nishanth Menon
2010-11-29 20:19 ` [PATCH 3/5] OMAP3630: PM: Erratum i608: disable RTA Nishanth Menon
2010-11-30 6:07 ` Varadarajan, Charulatha
2010-11-30 14:15 ` Nishanth Menon [this message]
2010-11-29 20:19 ` [PATCH 4/5 v2] OMAP3630: PM: Disable L2 cache while invalidating L2 cache Nishanth Menon
2010-11-30 6:03 ` TAO HU
2010-11-30 14:18 ` Nishanth Menon
2010-12-01 8:56 ` TAO HU
2010-12-01 14:38 ` Nishanth Menon
2010-12-02 5:05 ` Santosh Shilimkar
2010-11-30 6:12 ` Varadarajan, Charulatha
2010-11-30 14:18 ` Nishanth Menon
2010-11-29 20:19 ` [PATCH 5/5] OMAP3630: PM: Erratum i583: disable coreoff if < ES1.2 Nishanth Menon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CF50704.9060606@ti.com \
--to=nm@ti.com \
--cc=charu@ti.com \
--cc=jean.pihet@newoldbits.com \
--cc=khilman@deeprootsystems.com \
--cc=linux-omap@vger.kernel.org \
--cc=tony@atomide.com \
--cc=vishwanath.bs@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox