Skip to content
  • Paul Burton's avatar
    MIPS: Fix CM region target definitions · 207c2143
    Paul Burton authored
    commit 6a6cba1d upstream.
    
    The default CM target field in the GCR_BASE register is encoded with 0
    meaning memory & 1 being reserved. However the definitions we use for
    those bits effectively get these two values backwards - likely because
    they were copied from the definitions for the CM regions where the
    target is encoded differently. This results in use setting up GCR_BASE
    with the reserved target value by default, rather than targeting memory
    as intended. Although we currently seem to get away with this it's not a
    great idea to rely upon.
    
    Fix this by changing our macros to match the documentated target values.
    
    The incorrect encoding became used as of commit 9f98f3dd ("MIPS: Add
    generic CM probe & access code") in the Linux v3.15 cycle, and was
    likely carried forwards from older but unused code introduced by
    commit 39b8d525 ("[MIPS] Add support for MIPS CMP platform.") in the
    v2.6.26 cycle.
    
    Fixes: 9f98f3dd
    
     ("MIPS: Add generic CM probe & access code")
    Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
    Reported-by: default avatarMatt Redfearn <matt.redfearn@mips.com>
    Reviewed-by: default avatarJames Hogan <jhogan@kernel.org>
    Cc: Matt Redfearn <matt.redfearn@mips.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: <stable@vger.kernel.org> # v3.15+
    Patchwork: https://patchwork.linux-mips.org/patch/17562/
    
    
    Signed-off-by: default avatarJames Hogan <jhogan@kernel.org>
    [jhogan@kernel.org: Backported 3.15..4.13]
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    207c2143