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

Shilimkar, Santosh santosh.shilimkar at ti.com
Fri Sep 17 06:16:44 EDT 2010


> -----Original Message-----
> From: Menon, Nishanth
> Sent: Friday, September 17, 2010 3:45 PM
> To: Shilimkar, Santosh; linux-omap at vger.kernel.org
> Cc: linux-arm-kernel at lists.infradead.org; Nayak, Rajendra
> Subject: RE: [PATCH 14/14] omap4: Fix bootup crash observed with higher
> CPU clocks
> 
> > -----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?
> 
This is the max what we need at any clock speed. As mentioned in commit
"The timer hwmod adaptation will eventually fix it in a proper way"

Regards,
Santosh



More information about the linux-arm-kernel mailing list