• Lorenzo Pieralisi's avatar
    ARM: kernel: add cpu logical map DT init in setup_arch · 5587164e
    Lorenzo Pieralisi authored
    As soon as the device tree is unflattened the cpu logical to physical
    mapping is carried out in setup_arch to build a proper array of MPIDR and
    corresponding logical indexes.
    
    The mapping could have been carried out using the flattened DT blob and
    related primitives, but since the mapping is not needed by early boot
    code it can safely be executed when the device tree has been uncompressed to
    its tree data structure.
    
    This patch adds the arm_dt_init_cpu maps() function call in setup_arch().
    
    If the kernel is not compiled with DT support the function is empty and
    no logical mapping takes place through it; the mapping carried out in
    smp_setup_processor_id() is left unchanged.
    If DT is supported the mapping created in smp_setup_processor_id() is overriden.
    The DT mapping also sets the possible cpus mask, hence platform
    code need not set it again in the respective smp_init_cpus() functions.
    Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Acked-by: default avatarWill Deacon <will.deacon@arm.com>
    Acked-by: default avatarNicolas Pitre <nico@linaro.org>
    5587164e
setup.c 21.1 KB