kvm tools: arm64: add support for AEM and Foundation models

The ARMv8 architecture is supported by two publicly available
software models: the Architecture Enveloppe Model, and the
Foundation model.

Both are fairly similar to the Cortex-A57 from a kvm tools point of
view, so we can hijack the A57 implementation to register these
new targets.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
This commit is contained in:
Marc Zyngier
2013-04-11 17:36:25 +01:00
committed by Will Deacon
parent beff7ae0e7
commit ef8a47b3e5
+19 -1
View File
@@ -49,6 +49,22 @@ static int cortex_a57__vcpu_init(struct kvm_cpu *vcpu)
return 0;
}
/*
* As far as userspace is concerned, both of these implementations are
* extremely similar.
*/
static struct kvm_arm_target target_aem_v8 = {
.id = KVM_ARM_TARGET_AEM_V8,
.compatible = "arm,arm-v8",
.init = cortex_a57__vcpu_init,
};
static struct kvm_arm_target target_foundation_v8 = {
.id = KVM_ARM_TARGET_FOUNDATION_V8,
.compatible = "arm,arm-v8",
.init = cortex_a57__vcpu_init,
};
static struct kvm_arm_target target_cortex_a57 = {
.id = KVM_ARM_TARGET_CORTEX_A57,
.compatible = "arm,cortex-a57",
@@ -57,6 +73,8 @@ static struct kvm_arm_target target_cortex_a57 = {
static int cortex_a57__core_init(struct kvm *kvm)
{
return kvm_cpu__register_kvm_arm_target(&target_cortex_a57);
return (kvm_cpu__register_kvm_arm_target(&target_aem_v8) ||
kvm_cpu__register_kvm_arm_target(&target_foundation_v8) ||
kvm_cpu__register_kvm_arm_target(&target_cortex_a57));
}
core_init(cortex_a57__core_init);