Skip to content

Commit

Permalink
target/arm: Extract TCG -cpu max code into a function
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Fabiano Rosas authored and pm215 committed May 2, 2023
1 parent 51e41b2 commit 25be210
Showing 1 changed file with 18 additions and 14 deletions.
32 changes: 18 additions & 14 deletions target/arm/cpu64.c
Original file line number Diff line number Diff line change
Expand Up @@ -1178,27 +1178,17 @@ static void aarch64_host_initfn(Object *obj)
#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.
* The version of '-cpu max' for qemu-system-arm is defined in cpu.c;
/*
* -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_tcg.c;
* 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);
uint64_t t;
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
* one and try to apply errata workarounds or use impdef features we
Expand Down Expand Up @@ -1367,6 +1357,20 @@ static void aarch64_max_initfn(Object *obj)
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[] = {
{ .name = "cortex-a35", .initfn = aarch64_a35_initfn },
{ .name = "cortex-a57", .initfn = aarch64_a57_initfn },
Expand Down

0 comments on commit 25be210

Please sign in to comment.