Message ID | 20240111051054.83304-1-gshan@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/arm/virt: Consolidate valid CPU types | expand |
On Thu, Jan 11 2024, Gavin Shan <gshan@redhat.com> wrote: > It's found that some of the CPU type names in the array of valid > CPU types are invalid because their corresponding classes aren't > registered, as reported by Peter Maydell. > > [gshan@gshan build]$ ./qemu-system-arm -machine virt -cpu cortex-a9 > qemu-system-arm: Invalid CPU model: cortex-a9 > The valid models are: cortex-a7, cortex-a15, (null), (null), (null), > (null), (null), (null), (null), (null), (null), (null), (null), max > > Fix it by consolidating the array of valid CPU types. After it's > applied, we have the following output when TCG is enabled. > > [gshan@gshan build]$ ./qemu-system-arm -machine virt -cpu cortex-a9 > qemu-system-arm: Invalid CPU model: cortex-a9 > The valid models are: cortex-a7, cortex-a15, max > > [gshan@gshan build]$ ./qemu-system-aarch64 -machine virt -cpu cortex-a9 > qemu-system-aarch64: Invalid CPU model: cortex-a9 > The valid models are: cortex-a7, cortex-a15, cortex-a35, cortex-a55, > cortex-a72, cortex-a76, cortex-a710, a64fx, neoverse-n1, neoverse-v1, > neoverse-n2, cortex-a53, cortex-a57, max Alternatively, we could skip any NULL returns from cpu_model_from_type() in is_cpu_type_supported(), but I guess leaving out not-provided cpu types in the first place is cleaner. > > Reported-by: Peter Maydell <peter.maydell@linaro.org> > Fixes: fa8c617791 ("hw/arm/virt: Check CPU type in machine_run_board_init()") > Signed-off-by: Gavin Shan <gshan@redhat.com> > --- > hw/arm/virt.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) Reviewed-by: Cornelia Huck <cohuck@redhat.com>
On Thu, 11 Jan 2024 at 05:11, Gavin Shan <gshan@redhat.com> wrote: > > It's found that some of the CPU type names in the array of valid > CPU types are invalid because their corresponding classes aren't > registered, as reported by Peter Maydell. > > [gshan@gshan build]$ ./qemu-system-arm -machine virt -cpu cortex-a9 > qemu-system-arm: Invalid CPU model: cortex-a9 > The valid models are: cortex-a7, cortex-a15, (null), (null), (null), > (null), (null), (null), (null), (null), (null), (null), (null), max > > Fix it by consolidating the array of valid CPU types. After it's > applied, we have the following output when TCG is enabled. > > [gshan@gshan build]$ ./qemu-system-arm -machine virt -cpu cortex-a9 > qemu-system-arm: Invalid CPU model: cortex-a9 > The valid models are: cortex-a7, cortex-a15, max > > [gshan@gshan build]$ ./qemu-system-aarch64 -machine virt -cpu cortex-a9 > qemu-system-aarch64: Invalid CPU model: cortex-a9 > The valid models are: cortex-a7, cortex-a15, cortex-a35, cortex-a55, > cortex-a72, cortex-a76, cortex-a710, a64fx, neoverse-n1, neoverse-v1, > neoverse-n2, cortex-a53, cortex-a57, max > > Reported-by: Peter Maydell <peter.maydell@linaro.org> > Fixes: fa8c617791 ("hw/arm/virt: Check CPU type in machine_run_board_init()") > Signed-off-by: Gavin Shan <gshan@redhat.com> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2084 -- PMM
On Thu, 11 Jan 2024 at 05:11, Gavin Shan <gshan@redhat.com> wrote: > > It's found that some of the CPU type names in the array of valid > CPU types are invalid because their corresponding classes aren't > registered, as reported by Peter Maydell. > > [gshan@gshan build]$ ./qemu-system-arm -machine virt -cpu cortex-a9 > qemu-system-arm: Invalid CPU model: cortex-a9 > The valid models are: cortex-a7, cortex-a15, (null), (null), (null), > (null), (null), (null), (null), (null), (null), (null), (null), max > > Fix it by consolidating the array of valid CPU types. After it's > applied, we have the following output when TCG is enabled. > > [gshan@gshan build]$ ./qemu-system-arm -machine virt -cpu cortex-a9 > qemu-system-arm: Invalid CPU model: cortex-a9 > The valid models are: cortex-a7, cortex-a15, max > > [gshan@gshan build]$ ./qemu-system-aarch64 -machine virt -cpu cortex-a9 > qemu-system-aarch64: Invalid CPU model: cortex-a9 > The valid models are: cortex-a7, cortex-a15, cortex-a35, cortex-a55, > cortex-a72, cortex-a76, cortex-a710, a64fx, neoverse-n1, neoverse-v1, > neoverse-n2, cortex-a53, cortex-a57, max > > Reported-by: Peter Maydell <peter.maydell@linaro.org> > Fixes: fa8c617791 ("hw/arm/virt: Check CPU type in machine_run_board_init()") > Signed-off-by: Gavin Shan <gshan@redhat.com> > --- Applied to target-arm.next, thanks. -- PMM
diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 2793121cb4..5cbc69dff8 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -2905,6 +2905,7 @@ static void virt_machine_class_init(ObjectClass *oc, void *data) #ifdef CONFIG_TCG ARM_CPU_TYPE_NAME("cortex-a7"), ARM_CPU_TYPE_NAME("cortex-a15"), +#ifdef TARGET_AARCH64 ARM_CPU_TYPE_NAME("cortex-a35"), ARM_CPU_TYPE_NAME("cortex-a55"), ARM_CPU_TYPE_NAME("cortex-a72"), @@ -2914,12 +2915,15 @@ static void virt_machine_class_init(ObjectClass *oc, void *data) ARM_CPU_TYPE_NAME("neoverse-n1"), ARM_CPU_TYPE_NAME("neoverse-v1"), ARM_CPU_TYPE_NAME("neoverse-n2"), -#endif +#endif /* TARGET_AARCH64 */ +#endif /* CONFIG_TCG */ +#ifdef TARGET_AARCH64 ARM_CPU_TYPE_NAME("cortex-a53"), ARM_CPU_TYPE_NAME("cortex-a57"), #if defined(CONFIG_KVM) || defined(CONFIG_HVF) ARM_CPU_TYPE_NAME("host"), -#endif +#endif /* CONFIG_KVM || CONFIG_HVF */ +#endif /* TARGET_AARCH64 */ ARM_CPU_TYPE_NAME("max"), NULL };
It's found that some of the CPU type names in the array of valid CPU types are invalid because their corresponding classes aren't registered, as reported by Peter Maydell. [gshan@gshan build]$ ./qemu-system-arm -machine virt -cpu cortex-a9 qemu-system-arm: Invalid CPU model: cortex-a9 The valid models are: cortex-a7, cortex-a15, (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), max Fix it by consolidating the array of valid CPU types. After it's applied, we have the following output when TCG is enabled. [gshan@gshan build]$ ./qemu-system-arm -machine virt -cpu cortex-a9 qemu-system-arm: Invalid CPU model: cortex-a9 The valid models are: cortex-a7, cortex-a15, max [gshan@gshan build]$ ./qemu-system-aarch64 -machine virt -cpu cortex-a9 qemu-system-aarch64: Invalid CPU model: cortex-a9 The valid models are: cortex-a7, cortex-a15, cortex-a35, cortex-a55, cortex-a72, cortex-a76, cortex-a710, a64fx, neoverse-n1, neoverse-v1, neoverse-n2, cortex-a53, cortex-a57, max Reported-by: Peter Maydell <peter.maydell@linaro.org> Fixes: fa8c617791 ("hw/arm/virt: Check CPU type in machine_run_board_init()") Signed-off-by: Gavin Shan <gshan@redhat.com> --- hw/arm/virt.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)