[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