• Jeenu Viswambharan's avatar
    FVP: Add support for multi-threaded CPUs · 11ad8f20
    Jeenu Viswambharan authored
    
    
    ARM CPUs with multi-threading implementation has more than one
    Processing Element in a single physical CPU. Such an implementation will
    reflect the following changes in the MPIDR register:
    
      - The MT bit set;
    
      - Affinity levels pertaining to cluster and CPUs occupy one level
        higher than in a single-threaded implementation, and the lowest
        affinity level pertains to hardware threads. MPIDR affinity level
        fields essentially appear shifted to left than otherwise.
    
    The FVP port henceforth assumes that both properties above to be
    concomitant on a given FVP platform.
    
    To accommodate for varied MPIDR formats at run time, this patch
    re-implements the FVP platform-specific functions that translates MPIDR
    values to a linear indices, along with required validation. The same
    treatment is applied for GICv3 MPIDR hashing function as well.
    
    An FVP-specific build option FVP_MAX_PE_PER_CPU is introduced which
    specifies the maximum number of threads implemented per CPU. For
    backwards compatibility, its value defaults to 1.
    
    Change-Id: I729b00d3e121d16ce9a03de4f9db36dfac580e3f
    Signed-off-by: default avatarJeenu Viswambharan <jeenu.viswambharan@arm.com>
    11ad8f20
platform_def.h 3.97 KB