[PATCH 14/14] omap4: Fix bootup crash observed with higher CPU clocks

Menon, Nishanth nm at ti.com
Fri Sep 17 06:14:59 EDT 2010


> -----Original Message-----
> From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-
> owner at vger.kernel.org] On Behalf Of Shilimkar, Santosh
> Sent: Friday, September 17, 2010 4:48 AM
> To: linux-omap at vger.kernel.org
> Cc: linux-arm-kernel at lists.infradead.org; Shilimkar, Santosh; Nayak,
> Rajendra
> Subject: [PATCH 14/14] omap4: Fix bootup crash observed with higher CPU
> clocks
> 
> This patch is temporary fix to below crash. This is observed when
> CPU is clocked more than 600 MHz.
> 
> Unhandled fault: imprecise external abort (0x1406) at 0xbf9ef65c
> Internal error: : 1406 [#1] PREEMPT SMP
> last sysfs file:
> Modules linked in:
> CPU: 0    Not tainted  (2.6.36-rc3+ #18)
> PC is at kernel_thread_helper+0x0/0x14
> LR is at kernel_thread_helper+0x0/0x14
> pc : [<c003ce14>]    lr : [<c003ce14>]    psr: 00000093
> sp : dc83bff8  ip : 00000000  fp : 00000000
> r10: 00000000  r9 : 00000000  r8 : 00000000
> r7 : 00000013  r6 : c003ce28  r5 : c008935c  r4 : 00000000
> r3 : 00000000  r2 : 00000000  r1 : 00000000  r0 : 00000000
> Flags: nzcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
> Control: 10c53c7f  Table: 8000404a  DAC: 00000017
> Process swapper (pid: 2, stack limit = 0xdc83a2f0)
> Stack: (0xdc83bff8 to 0xdc83c000)
> bfe0: 00000000 ffffffff
> [<c003ce14>] (kernel_thread_helper+0x0/0x14) from [<fffffffe>]
> (0xfffffffe)
> Code: c03a0ba3 c03a5fcb c045c880 c0394035 (eb017701)
> ---[ end trace 1b75b31a2719ed1c ]---
> 
> The timer hwmod adaptation will eventually fix it in a proper way.
> 
> Signed-off-by: Rajendra Nayak <rnayak at ti.com>
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
> ---
>  arch/arm/plat-omap/dmtimer.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
> index 44bafda..1d706cf 100644
> --- a/arch/arm/plat-omap/dmtimer.c
> +++ b/arch/arm/plat-omap/dmtimer.c
> @@ -581,7 +581,7 @@ int omap_dm_timer_set_source(struct omap_dm_timer
> *timer, int source)
>  	 * When the functional clock disappears, too quick writes seem
>  	 * to cause an abort. XXX Is this still necessary?
>  	 */
> -	__delay(150000);
> +	__delay(300000);
What is the rationale for this increase? Lets say we have a CPU bumped up to 1GHz or something will we have weird numbers again?

Regards,
Nishanth Menon




More information about the linux-arm-kernel mailing list