On Thu, Apr 24, 2025 at 5:58 PM Philippe Mathieu-Daudé <phi...@linaro.org> wrote: > > On 24/4/25 10:56, Zhang Chen wrote: > > 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. > > IIUC it was meant to be backward compatible for KVM (as in "not TCG"), > HVF was not a thing for ARM at this time. > > > 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. > > A respin of this series might help you, I'll try to remember to Cc you: > https://lore.kernel.org/qemu-devel/b883f0ef-6131-4335-b273-90fd3d8cc...@linaro.org/ >
Thanks Philippe, your patch fix the same issue and looks good for me. Let's drop this patch. Thanks Chen > > 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; > >>> > >>> > > >