From: Santosh Shilimkar <santosh.shilimkar@ti.com>
To: Jon Hunter <jon-hunter@ti.com>
Cc: linux-omap@vger.kernel.org, tony@atomide.com,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] ARM: OMAP4: Fix the init code to have OMAP4460 errata available in DT build
Date: Tue, 26 Feb 2013 13:13:14 +0530 [thread overview]
Message-ID: <512C6792.5070407@ti.com> (raw)
In-Reply-To: <512B7CF6.8030905@ti.com>
On Monday 25 February 2013 08:32 PM, Jon Hunter wrote:
>
> On 02/25/2013 06:09 AM, Santosh Shilimkar wrote:
>> OMAP4460 ROM code bug needs the GIC distributor and local timer
>> bases to be available for the bug work around. In current code, dt
>> case these bases are not initialized leading to failure of the
>> errata work-around.
>>
>> Fix it by extracting the bases from dt blob and populating them.
>>
>> Reported-by: Sourav Poddar <sourav.poddar@ti.com>
>> Tested-by: Sourav Poddar <sourav.poddar@ti.com>
>> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
>> ---
>> Posting this one seperatly but will add along with rest of
>> my fixes so that it doesn't get lost on the list.
>>
>> arch/arm/mach-omap2/omap4-common.c | 32 ++++++++++++++++++++++++++++++++
>> 1 file changed, 32 insertions(+)
>>
>> diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
>> index 6897ae2..d07740e 100644
>> --- a/arch/arm/mach-omap2/omap4-common.c
>> +++ b/arch/arm/mach-omap2/omap4-common.c
>> @@ -261,8 +261,40 @@ static struct of_device_id irq_match[] __initdata = {
>> { }
>> };
>>
>> +static struct of_device_id twd_match[] __initdata = {
>> + { .compatible = "arm,cortex-a9-twd-timer", },
>> + { }
>> +};
>> +
>> void __init omap_gic_of_init(void)
>> {
>> + struct device_node *np;
>> + const void *reg_prop;
>> + unsigned long start = 0, size = 0;
>> +
>> + /* Extract GIC distributor and TWD bases for OMAP4460 ROM Errata WA */
>> + if (!cpu_is_omap446x())
>> + goto skip_errata_init;
>> +
>> + np = of_find_matching_node(NULL, irq_match);
>> + if (np) {
>> + reg_prop = of_get_property(np, "reg", NULL);
>> + start = of_read_number(reg_prop, 1);
>> + size = of_read_number(reg_prop + 4, 1);
>
> Alternatively, you could replace the above 3 lines with ...
>
> gic_dist_base_addr = of_iomap(np, 0);
>
Nice !!
Will use the alternative. Thanks Jon for pointer.
Regards,
Santosh
WARNING: multiple messages have this Message-ID (diff)
From: santosh.shilimkar@ti.com (Santosh Shilimkar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: OMAP4: Fix the init code to have OMAP4460 errata available in DT build
Date: Tue, 26 Feb 2013 13:13:14 +0530 [thread overview]
Message-ID: <512C6792.5070407@ti.com> (raw)
In-Reply-To: <512B7CF6.8030905@ti.com>
On Monday 25 February 2013 08:32 PM, Jon Hunter wrote:
>
> On 02/25/2013 06:09 AM, Santosh Shilimkar wrote:
>> OMAP4460 ROM code bug needs the GIC distributor and local timer
>> bases to be available for the bug work around. In current code, dt
>> case these bases are not initialized leading to failure of the
>> errata work-around.
>>
>> Fix it by extracting the bases from dt blob and populating them.
>>
>> Reported-by: Sourav Poddar <sourav.poddar@ti.com>
>> Tested-by: Sourav Poddar <sourav.poddar@ti.com>
>> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
>> ---
>> Posting this one seperatly but will add along with rest of
>> my fixes so that it doesn't get lost on the list.
>>
>> arch/arm/mach-omap2/omap4-common.c | 32 ++++++++++++++++++++++++++++++++
>> 1 file changed, 32 insertions(+)
>>
>> diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
>> index 6897ae2..d07740e 100644
>> --- a/arch/arm/mach-omap2/omap4-common.c
>> +++ b/arch/arm/mach-omap2/omap4-common.c
>> @@ -261,8 +261,40 @@ static struct of_device_id irq_match[] __initdata = {
>> { }
>> };
>>
>> +static struct of_device_id twd_match[] __initdata = {
>> + { .compatible = "arm,cortex-a9-twd-timer", },
>> + { }
>> +};
>> +
>> void __init omap_gic_of_init(void)
>> {
>> + struct device_node *np;
>> + const void *reg_prop;
>> + unsigned long start = 0, size = 0;
>> +
>> + /* Extract GIC distributor and TWD bases for OMAP4460 ROM Errata WA */
>> + if (!cpu_is_omap446x())
>> + goto skip_errata_init;
>> +
>> + np = of_find_matching_node(NULL, irq_match);
>> + if (np) {
>> + reg_prop = of_get_property(np, "reg", NULL);
>> + start = of_read_number(reg_prop, 1);
>> + size = of_read_number(reg_prop + 4, 1);
>
> Alternatively, you could replace the above 3 lines with ...
>
> gic_dist_base_addr = of_iomap(np, 0);
>
Nice !!
Will use the alternative. Thanks Jon for pointer.
Regards,
Santosh
next prev parent reply other threads:[~2013-02-26 7:41 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-25 12:09 [PATCH] ARM: OMAP4: Fix the init code to have OMAP4460 errata available in DT build Santosh Shilimkar
2013-02-25 12:09 ` Santosh Shilimkar
2013-02-25 15:02 ` Jon Hunter
2013-02-25 15:02 ` Jon Hunter
2013-02-26 7:43 ` Santosh Shilimkar [this message]
2013-02-26 7:43 ` Santosh Shilimkar
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=512C6792.5070407@ti.com \
--to=santosh.shilimkar@ti.com \
--cc=jon-hunter@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=tony@atomide.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.