• Jason Gunthorpe's avatar
    ARM: 7949/1: feroceon: Log a FW_BUG if the L2 cache is turned on at boot · 0f054e3c
    Jason Gunthorpe authored
    Booting on feroceon CPUS requires the L2 cache to be turned off. With
    some kernel configurations (notably CONFIG_ARM_PATCH_PHYS_VIRT
    disabled) the kernel will boot even if the L2 is turned on.
    
    However there may be subtle breakage, and when PATCH_PHYS_VIRT is
    enabled it is very likely that booting with L2 will crash at early
    boot before any kernel diagnostic output.
    
    The diagnostic message is intended to discourage people from shipping
    bootloaders that leave the L2 turned on.
    
    The issue on feroceon is that the L2 is bypassed when the L1 caches
    are disabled. So the decompressor will place parts of the kernel image
    into the L2 and the early cache-off boot code in head.S will write to
    parts of the kernel image, bypassing the L2 and creating inconsistency.
    
    Tested on ARM Kirkwood.
    Signed-off-by: default avatarJason Gunthorpe <jgunthorpe@obsidianresearch.com>
    Acked-by: default avatarJason Cooper <jason@lakedaemon.net>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    0f054e3c
cache-feroceon-l2.c 8.21 KB