• Alex Elder's avatar
    ARM: add SMP support for Broadcom mobile SoCs · 9a5a110e
    Alex Elder authored
    This patch adds SMP support for BCM281XX and BCM21664 family SoCs.
    
    This feature is controlled with a distinct config option such that
    an SMP-enabled multi-v7 binary can be configured to run these SoCs
    in uniprocessor mode.  Since this SMP functionality is used for
    multiple Broadcom mobile chip families the config option is called
    ARCH_BCM_MOBILE_SMP (for lack of a better name).
    
    On SoCs of this type, the secondary core is not held in reset on
    power-on.  Instead it loops in a ROM-based holding pen.  To release
    it, one must write into a special register a jump address whose
    low-order bits have been replaced with a secondary core's id, then
    trigger an event with SEV.  On receipt of an event, the ROM code
    will examine the register's contents, and if the low-order bits
    match its cpu id, it will clear them and write the value back to the
    register just prior to jumping to the address specified.
    
    The location of the special register is defined in the device tree
    using a "secondary-boot-reg" property in a node whose "enable-method"
    matches.
    
    Derived from code originally provided by Ray Jui <rjui@broadcom.com>
    Signed-off-by: default avatarAlex Elder <elder@linaro.org>
    Signed-off-by: default avatarMatt Porter <mporter@linaro.org>
    9a5a110e
kona_smp.c 5.82 KB