mirror of https://gitee.com/openkylin/linux.git
arm64/kvm: Add generic v8 KVM target
This patch adds a generic ARM v8 KVM target cpu type for use by the new CPUs which eventualy ends up using the common sys_reg table. For backward compatibility the existing targets have been preserved. Any new target CPU that can be covered by generic v8 sys_reg tables should make use of the new generic target. Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com> Acked-by: Marc Zyngier <Marc.Zyngier@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
This commit is contained in:
parent
eef8c85a3b
commit
bca556ac46
|
@ -53,14 +53,20 @@ struct kvm_regs {
|
||||||
struct user_fpsimd_state fp_regs;
|
struct user_fpsimd_state fp_regs;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Supported Processor Types */
|
/*
|
||||||
|
* Supported CPU Targets - Adding a new target type is not recommended,
|
||||||
|
* unless there are some special registers not supported by the
|
||||||
|
* genericv8 syreg table.
|
||||||
|
*/
|
||||||
#define KVM_ARM_TARGET_AEM_V8 0
|
#define KVM_ARM_TARGET_AEM_V8 0
|
||||||
#define KVM_ARM_TARGET_FOUNDATION_V8 1
|
#define KVM_ARM_TARGET_FOUNDATION_V8 1
|
||||||
#define KVM_ARM_TARGET_CORTEX_A57 2
|
#define KVM_ARM_TARGET_CORTEX_A57 2
|
||||||
#define KVM_ARM_TARGET_XGENE_POTENZA 3
|
#define KVM_ARM_TARGET_XGENE_POTENZA 3
|
||||||
#define KVM_ARM_TARGET_CORTEX_A53 4
|
#define KVM_ARM_TARGET_CORTEX_A53 4
|
||||||
|
/* Generic ARM v8 target */
|
||||||
|
#define KVM_ARM_TARGET_GENERIC_V8 5
|
||||||
|
|
||||||
#define KVM_ARM_NUM_TARGETS 5
|
#define KVM_ARM_NUM_TARGETS 6
|
||||||
|
|
||||||
/* KVM_ARM_SET_DEVICE_ADDR ioctl id encoding */
|
/* KVM_ARM_SET_DEVICE_ADDR ioctl id encoding */
|
||||||
#define KVM_ARM_DEVICE_TYPE_SHIFT 0
|
#define KVM_ARM_DEVICE_TYPE_SHIFT 0
|
||||||
|
|
|
@ -295,7 +295,8 @@ int __attribute_const__ kvm_target_cpu(void)
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
|
|
||||||
return -EINVAL;
|
/* Return a default generic target */
|
||||||
|
return KVM_ARM_TARGET_GENERIC_V8;
|
||||||
}
|
}
|
||||||
|
|
||||||
int kvm_vcpu_preferred_target(struct kvm_vcpu_init *init)
|
int kvm_vcpu_preferred_target(struct kvm_vcpu_init *init)
|
||||||
|
|
|
@ -94,6 +94,8 @@ static int __init sys_reg_genericv8_init(void)
|
||||||
&genericv8_target_table);
|
&genericv8_target_table);
|
||||||
kvm_register_target_sys_reg_table(KVM_ARM_TARGET_XGENE_POTENZA,
|
kvm_register_target_sys_reg_table(KVM_ARM_TARGET_XGENE_POTENZA,
|
||||||
&genericv8_target_table);
|
&genericv8_target_table);
|
||||||
|
kvm_register_target_sys_reg_table(KVM_ARM_TARGET_GENERIC_V8,
|
||||||
|
&genericv8_target_table);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue