Skip to content
  • Alexey Kardashevskiy's avatar
    target-ppc: Add pvr_match() callback · 03ae4133
    Alexey Kardashevskiy authored
    
    
    So far it was enough to have a base PVR value and mask per CPU
    family such as POWER7 or POWER8. However there CPUs which are
    completely architecturally compatible but have different PVRs such
    as POWER7/POWER7+ and POWER8/POWER8E. For these CPUs, top 16 bits
    are CPU family and low 16 bits are the version. The families have
    PVR base values different enough so defining a mask which
    would cover both (or potentially more) CPUs within the family is
    not possible.
    
    This adds a pvr_match() callback to PowerPCCPUClass. The default
    handler simply compares PVR defined in the class.
    
    This implements ppc_pvr_match_power7/ppc_pvr_match_power8 callbacks
    for POWER7/8 families. These check for POWER7/POWER7+ and POWER8/POWER8E.
    
    This changes ppc_cpu_compare_class_pvr_mask() not to check masks but
    use the pvr_match() callback.
    
    Since all server CPUs use the same mask, this defines one mask
    value - CPU_POWERPC_POWER_SERVER_MASK - which is used everywhere now.
    This removes other mask definitions.
    
    This removes pvr_mask from PowerPCCPUClass as it is not used anymore.
    This removes pvr initialization for POWER7/8 families as it is not used
    to find the class, the pvr_match() callback is used instead.
    
    Signed-off-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    03ae4133