[PATCH 1/3] ARM PJ4B: Add support for errata 4742
Will Deacon
will.deacon at arm.com
Wed May 29 07:03:59 EDT 2013
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'?
Will
More information about the linux-arm-kernel
mailing list