On Thu, Apr 3, 2025 at 10:23 AM Zhang Chen <zhangc...@gmail.com> wrote: > > On Thu, Apr 3, 2025 at 2:43 AM Richard Henderson > <richard.hender...@linaro.org> wrote: > > > > On 4/2/25 06:54, Zhang Chen wrote: > > > Because of the CONFIG_TCG auto enabled, the cpu type "cortex-a15" > > > is mistakenly set to the default AARCH64 target. > > > > This is the correct backward compatible setting. > > In essence, it means that you *must* supply a -cpu argument. > > > > > > If the "-cpu" is required, the VM should not be started without this argument. > If yes, I will skip this patch and submit another one to make QEMU > refuse to start without this parameter. >
Ping... and let me explain this status, it is not just for the default value. 1. The cpu type "cortex-a15" is not the correct backward compatible setting for AARCH64 target. The ARM cortex-a15 is a 32 bit CPU based on ARMv7-A architecture. It can not boot for AARCH64 target. For example, the Apple M silicon can not boot with the default -cpu value. 2. Most of QEMU docs does not said user *must* supply a -cpu argument. https://www.qemu.org/docs/master/system/qemu-manpage.html Thanks Chen > Thanks > Chen > > > r~ > > > > > > > > Signed-off-by: Zhang Chen <zhangc...@gmail.com> > > > --- > > > hw/arm/virt.c | 5 +++-- > > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > > > index a96452f17a..63649e9543 100644 > > > --- a/hw/arm/virt.c > > > +++ b/hw/arm/virt.c > > > @@ -3178,9 +3178,10 @@ static void virt_machine_class_init(ObjectClass > > > *oc, void *data) > > > mc->cpu_index_to_instance_props = virt_cpu_index_to_props; > > > #ifdef CONFIG_TCG > > > mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-a15"); > > > -#else > > > +#ifdef TARGET_AARCH64 > > > mc->default_cpu_type = ARM_CPU_TYPE_NAME("max"); > > > -#endif > > > +#endif /* TARGET_AARCH64 */ > > > +#endif /* CONFIG_TCG */ > > > mc->valid_cpu_types = valid_cpu_types; > > > mc->get_default_cpu_node_id = virt_get_default_cpu_node_id; > > > mc->kvm_type = virt_kvm_type; > > > >