• Linus Walleij's avatar
    ARM: 8482/1: l2x0: make it possible to disable outer sync from DT · 36f46d6d
    Linus Walleij authored
    According to commit 2503a5ec
    "ARM: 6201/1: RealView: Do not use outer_sync() on ARM11MPCore
    boards with L220" Some PB11MPCore RealView core tiles have broken
    outer_sync.
    
    We got rid of the custom barriers from the machine by disabling
    outer sync, but that was just for the boardfile case. We have
    to be able to do the same in the device tree case.
    
    Since __l2c_init() is cloning and copying the L2C vtable,
    we pass an argument to this function to optionally numb
    the outer sync operation if desired, before initializing
    the cache.
    
    After this we can set up the cache correctly on the RealView
    PB11MPCore. This was tested on a PB11MPCore known to have the
    issue. Before this, spurious crashes would occur if we try to
    set up the cache properly, after this it boots rock solid.
    
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: devicetree@vger.kernel.org
    Acked-by: default avatarRob Herring <robh@kernel.org>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    36f46d6d
cache-l2x0.c 48.7 KB