[PATCH 1/3] ARM PJ4B: Add support for errata 4742
Lior Amsalem
alior at marvell.com
Sun Jun 2 04:27:35 EDT 2013
Hi Will,
> From: Will Deacon [mailto:will.deacon at arm.com]
> Sent: Wednesday, May 29, 2013 2:04 PM
>
> Hi Gregory,
>
> On Wed, May 29, 2013 at 11:16:56AM +0100, Gregory CLEMENT wrote:
> > From: Lior Amsalem <alior at marvell.com>
> >
> > This commit fix the regression on Armada 370 (the kernal hang during
> > boot) introduced by the commit: "ARM: 7691/1: mm: kill unused
> > TLB_CAN_READ_FROM_L1_CACHE and use ALT_SMP instead".
> >
> > When coming out of either a Wait for Interrupt (WFI) or a Wait for
> > Event (WFE) IDLE states, a specific timing sensitivity exists between
> > the retiring WFI/WFE instructions and the newly issued subsequent
> > instructions. This sensitivity can result in a CPU hang scenario. The
> > workaround is to insert either a Data Synchronization Barrier (DSB) or
> > Data Memory Barrier (DMB) command immediately after the WFI/WFE
> > instruction
>
> Thanks for chasing this up! I have no idea why the patch you mentioned
> triggered this though.
>
> > diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index
> > 2c73a73..f872432 100644
> > --- a/arch/arm/mm/proc-v7.S
> > +++ b/arch/arm/mm/proc-v7.S
> > @@ -71,6 +71,9 @@ ENDPROC(cpu_v7_reset)
> > ENTRY(cpu_v7_do_idle)
> > dsb @ WFI may enter a low-
> power mode
> > wfi
> > +#ifdef CONFIG_PJ4B_ERRATA_4742
> > + mcr p15, 0, r0, c7, c10, 4 @barrier
> > +#endif
>
> Is the cp15 encoding required here, or can you just use `dsb'?
A DSB will also do the job here, we'll change that.
Anyway, this CP15 command is with-in the arch commands as well (not Marvell specific).
BTW, thanks for all the comments, I'll refer them all.
>
> Will
Regards,
Lior Amsalem
More information about the linux-arm-kernel
mailing list