• Thomas Petazzoni's avatar
    arm: mvebu: remove dependency of SMP init on static I/O mapping · b21dcafe
    Thomas Petazzoni authored
    The ->smp_init_cpus() function is called very early during boot, at a
    point where dynamic I/O mappings are not yet possible. However, in the
    Armada 370/XP implementation of this function, we have to get the
    number of CPUs. We used to do that by accessing a hardware register,
    which requires relying on a static I/O mapping set up by
    ->map_io(). Not only this requires hardcoding a virtual address, but
    it also prevents us from removing the static I/O mapping.
    
    So this commit changes the way used to get the number of CPUs: we now
    use the Device Tree, which is a representation of the hardware, and
    provides us the number of available CPUs. This is also more accurate,
    because it potentially allows to boot the Linux kernel on only a
    number of CPUs given by the Device Tree, instead of unconditionally on
    all CPUs.
    
    As a consequence, the coherency_get_cpu_count() function becomes no
    longer used, so we remove it.
    Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
    b21dcafe
platsmp.c 3.16 KB