target/arm: Extract TCG -cpu max code into a function
Introduce aarch64_max_tcg_initfn that contains the TCG-only part of -cpu max configuration. We'll need that to be able to restrict this code to a TCG-only config in the next patches. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Fabiano Rosas <farosas@suse.de> Message-id: 20230426180013.14814-4-farosas@suse.de Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
51e41b2362
commit
25be21059f
@ -1178,27 +1178,17 @@ static void aarch64_host_initfn(Object *obj)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -cpu max: if KVM is enabled, like -cpu host (best possible with this host);
|
/*
|
||||||
* otherwise, a CPU with as many features enabled as our emulation supports.
|
* -cpu max: a CPU with as many features enabled as our emulation supports.
|
||||||
* The version of '-cpu max' for qemu-system-arm is defined in cpu.c;
|
* The version of '-cpu max' for qemu-system-arm is defined in cpu_tcg.c;
|
||||||
* this only needs to handle 64 bits.
|
* this only needs to handle 64 bits.
|
||||||
*/
|
*/
|
||||||
static void aarch64_max_initfn(Object *obj)
|
static void aarch64_max_tcg_initfn(Object *obj)
|
||||||
{
|
{
|
||||||
ARMCPU *cpu = ARM_CPU(obj);
|
ARMCPU *cpu = ARM_CPU(obj);
|
||||||
uint64_t t;
|
uint64_t t;
|
||||||
uint32_t u;
|
uint32_t u;
|
||||||
|
|
||||||
if (kvm_enabled() || hvf_enabled()) {
|
|
||||||
/* With KVM or HVF, '-cpu max' is identical to '-cpu host' */
|
|
||||||
aarch64_host_initfn(obj);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* '-cpu max' for TCG: we currently do this as "A57 with extra things" */
|
|
||||||
|
|
||||||
aarch64_a57_initfn(obj);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Reset MIDR so the guest doesn't mistake our 'max' CPU type for a real
|
* Reset MIDR so the guest doesn't mistake our 'max' CPU type for a real
|
||||||
* one and try to apply errata workarounds or use impdef features we
|
* one and try to apply errata workarounds or use impdef features we
|
||||||
@ -1367,6 +1357,20 @@ static void aarch64_max_initfn(Object *obj)
|
|||||||
qdev_property_add_static(DEVICE(obj), &arm_cpu_lpa2_property);
|
qdev_property_add_static(DEVICE(obj), &arm_cpu_lpa2_property);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void aarch64_max_initfn(Object *obj)
|
||||||
|
{
|
||||||
|
if (kvm_enabled() || hvf_enabled()) {
|
||||||
|
/* With KVM or HVF, '-cpu max' is identical to '-cpu host' */
|
||||||
|
aarch64_host_initfn(obj);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* '-cpu max' for TCG: we currently do this as "A57 with extra things" */
|
||||||
|
|
||||||
|
aarch64_a57_initfn(obj);
|
||||||
|
aarch64_max_tcg_initfn(obj);
|
||||||
|
}
|
||||||
|
|
||||||
static const ARMCPUInfo aarch64_cpus[] = {
|
static const ARMCPUInfo aarch64_cpus[] = {
|
||||||
{ .name = "cortex-a35", .initfn = aarch64_a35_initfn },
|
{ .name = "cortex-a35", .initfn = aarch64_a35_initfn },
|
||||||
{ .name = "cortex-a57", .initfn = aarch64_a57_initfn },
|
{ .name = "cortex-a57", .initfn = aarch64_a57_initfn },
|
||||||
|
Loading…
x
Reference in New Issue
Block a user