On Tue, Dec 19, 2017 at 4:43 PM, Peter Maydell <peter.mayd...@linaro.org> wrote: > On 20 December 2017 at 00:27, Alistair Francis > <alistair.fran...@xilinx.com> wrote: >> There are numorous QEMU machines that only have a single or a handful of >> valid CPU options. To simplyfy the management of specificying which CPU >> is/isn't valid let's create a property that can be set in the machine >> init. We can then check to see if the user supplied CPU is in that list >> or not. >> >> I have added the valid_cpu_types for some ARM machines only at the >> moment. >> >> Here is what specifying the CPUs looks like now: >> >> $ aarch64-softmmu/qemu-system-aarch64 -M netduino2 -kernel ./u-boot.elf >> -nographic -cpu "cortex-m3" -S >> QEMU 2.10.50 monitor - type 'help' for more information >> (qemu) info cpus >> * CPU #0: thread_id=24175 >> (qemu) q >> >> $ aarch64-softmmu/qemu-system-aarch64 -M netduino2 -kernel ./u-boot.elf >> -nographic -cpu "cortex-m4" -S >> QEMU 2.10.50 monitor - type 'help' for more information >> (qemu) q >> >> $ aarch64-softmmu/qemu-system-aarch64 -M netduino2 -kernel ./u-boot.elf >> -nographic -cpu "cortex-m5" -S >> qemu-system-aarch64: unable to find CPU model 'cortex-m5' >> >> $ aarch64-softmmu/qemu-system-aarch64 -M netduino2 -kernel ./u-boot.elf >> -nographic -cpu "cortex-a9" -S >> qemu-system-aarch64: Invalid CPU type: cortex-a9-arm-cpu >> The valid types are: cortex-m3-arm-cpu, cortex-m4-arm-cpu > > Thanks for this; we really should be more strict about > forbidding "won't work" combinations than we have > been in the past. > > In the last of these cases, I think that when we > list the invalid CPU type and the valid types > we should use the same names we want the user to > use on the command line, without the "-arm-cpu" > suffixes.
Hmm... That is a good point, it is confusing that they don't line up. The problem is that we are just doing a simple object_class_dynamic_cast() in hw/core/machine.c which I think (untested) requires us to have the full name in the valid cpu array. Alistair > > thanks > -- PMM