• Masahiro Yamada's avatar
    ARM: 8567/1: cache-uniphier: activate ways for secondary CPUs · 6427a840
    Masahiro Yamada authored
    This outer cache allows to control active ways independently for
    each CPU, but currently nothing is done for secondary CPUs.  In
    other words, all the ways are locked for secondary CPUs by default.
    This commit fixes it to fully bring out the performance of this
    outer cache.
    
    There would be two possible ways to achieve this:
    
    [1] Each CPU initializes active ways for itself.  This can be done
        via the SSCLPDAWCR register.  This is a banked register, so each
        CPU sees a different instance of the register for its own.
    
    [2] The master CPU initializes active ways for all the CPUs.  This
        is available via SSCDAWCARMR(N) registers, where all instances
        of SSCLPDAWCR are mirrored.  They are mapped at the address
        SSCDAWCARMR + 4 * N, where N is the CPU number.
    
    The outer cache frame work does not support a per-CPU init callback.
    So this commit adopts [2]; the master CPU iterates over possible CPUs
    setting up SSCDAWCARMR(N) registers.
    Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    6427a840
cache-uniphier.c 16.7 KB