• Nicolas Pitre's avatar
    ARM: 8081/1: MCPM: provide infrastructure to allow for MCPM loopback · 3721924c
    Nicolas Pitre authored
    The kernel already has the responsibility to handle resources such as the
    
    CCI when hotplugging CPUs, during the booting of secondary CPUs, and when
    resuming from suspend/idle.  It would be more coherent and less confusing
    if the CCI for the boot CPU (or cluster)  was also initialized by the
    kernel rather than expecting the firmware/bootloader to do it and only in
    that case. After all, the kernel has all the necessary code already and
    the bootloader shouldn't have to care at all.
    
    The CCI may be turned on only when the cache is off. Leveraging the CPU
    suspend code to loop back through the low-level MCPM entry point is all
    that is needed to properly turn on the CCI from the kernel by using the
    same code as during secondary boot.
    
    Let's provide a generic MCPM loopback function that can be invoked by
    backend initialization code to set things (CCI or similar) on the boot
    CPU just as it is done for the other CPUs.
    Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
    Reviewed-by: default avatarKevin Hilman <khilman@linaro.org>
    Tested-by: default avatarKevin Hilman <khilman@linaro.org>
    Tested-by: default avatarDoug Anderson <dianders@chromium.org>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    3721924c
mcpm_entry.c 9.66 KB