lkml.org 
[lkml]   [2012]   [Oct]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 18/62] ARM: 7541/1: Add ARM ERRATA 775420 workaround
    Date
    3.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Simon Horman <horms@verge.net.au>

    commit 7253b85cc62d6ff84143d96fe6cd54f73736f4d7 upstream.

    arm: Add ARM ERRATA 775420 workaround

    Workaround for the 775420 Cortex-A9 (r2p2, r2p6,r2p8,r2p10,r3p0) erratum.
    In case a date cache maintenance operation aborts with MMU exception, it
    might cause the processor to deadlock. This workaround puts DSB before
    executing ISB if an abort may occur on cache maintenance.

    Based on work by Kouei Abe and feedback from Catalin Marinas.

    Signed-off-by: Kouei Abe <kouei.abe.cp@rms.renesas.com>
    [ horms@verge.net.au: Changed to implementation
    suggested by catalin.marinas@arm.com ]
    Acked-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Simon Horman <horms@verge.net.au>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/arm/Kconfig | 10 ++++++++++
    arch/arm/mm/cache-v7.S | 3 +++
    2 files changed, 13 insertions(+)

    --- a/arch/arm/Kconfig
    +++ b/arch/arm/Kconfig
    @@ -1405,6 +1405,16 @@ config PL310_ERRATA_769419
    on systems with an outer cache, the store buffer is drained
    explicitly.

    +config ARM_ERRATA_775420
    + bool "ARM errata: A data cache maintenance operation which aborts, might lead to deadlock"
    + depends on CPU_V7
    + help
    + This option enables the workaround for the 775420 Cortex-A9 (r2p2,
    + r2p6,r2p8,r2p10,r3p0) erratum. In case a date cache maintenance
    + operation aborts with MMU exception, it might cause the processor
    + to deadlock. This workaround puts DSB before executing ISB if
    + an abort may occur on cache maintenance.
    +
    endmenu

    source "arch/arm/common/Kconfig"
    --- a/arch/arm/mm/cache-v7.S
    +++ b/arch/arm/mm/cache-v7.S
    @@ -211,6 +211,9 @@ ENTRY(v7_coherent_user_range)
    * isn't mapped, just try the next page.
    */
    9001:
    +#ifdef CONFIG_ARM_ERRATA_775420
    + dsb
    +#endif
    mov r12, r12, lsr #12
    mov r12, r12, lsl #12
    add r12, r12, #4096



    \
     
     \ /
      Last update: 2012-10-19 05:21    [W:4.168 / U:0.248 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site