[Qemu-devel] [RFC v2 0/2] Add a valid_cpu_types property

Alistair Francis posted 2 patches 6 years, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/cover.1506037164.git.alistair.francis@xilinx.com
Test checkpatch passed
Test docker passed
Test s390x passed
There is a newer version of this series
hw/arm/netduino2.c  | 10 +++++++++-
hw/core/machine.c   | 35 +++++++++++++++++++++++++++++++++++
include/hw/boards.h |  1 +
3 files changed, 45 insertions(+), 1 deletion(-)
[Qemu-devel] [RFC v2 0/2] Add a valid_cpu_types property
Posted by Alistair Francis 6 years, 6 months ago
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.

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: cortex-a9-arm-cpu
The valid options are: cortex-m3-arm-cpu, cortex-m4-arm-cpu

RFC v2:
 - Rebase on Igor's work
 - Use more QEMUisms inside the code
 - List the supported machines in a NULL terminated array

Alistair Francis (2):
  machine: Add a valid_cpu_types property
  netduino2: Specify the valid CPUs

 hw/arm/netduino2.c  | 10 +++++++++-
 hw/core/machine.c   | 35 +++++++++++++++++++++++++++++++++++
 include/hw/boards.h |  1 +
 3 files changed, 45 insertions(+), 1 deletion(-)

-- 
2.11.0


Re: [Qemu-devel] [RFC v2 0/2] Add a valid_cpu_types property
Posted by Alistair Francis 6 years, 5 months ago
On Thu, Sep 21, 2017 at 4:41 PM, Alistair Francis
<alistair.francis@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.
>
> 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: cortex-a9-arm-cpu
> The valid options are: cortex-m3-arm-cpu, cortex-m4-arm-cpu
>

Any comments on this?

Otherwise I'll prepare a patch series and start adding support for
more machines.

Thanks,
Alistair

> RFC v2:
>  - Rebase on Igor's work
>  - Use more QEMUisms inside the code
>  - List the supported machines in a NULL terminated array
>
> Alistair Francis (2):
>   machine: Add a valid_cpu_types property
>   netduino2: Specify the valid CPUs
>
>  hw/arm/netduino2.c  | 10 +++++++++-
>  hw/core/machine.c   | 35 +++++++++++++++++++++++++++++++++++
>  include/hw/boards.h |  1 +
>  3 files changed, 45 insertions(+), 1 deletion(-)
>
> --
> 2.11.0
>

Re: [Qemu-devel] [RFC v2 0/2] Add a valid_cpu_types property
Posted by Philippe Mathieu-Daudé 6 years, 5 months ago
Hi Alistair,

On 10/02/2017 03:42 PM, Alistair Francis wrote:
> On Thu, Sep 21, 2017 at 4:41 PM, Alistair Francis
> <alistair.francis@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.
>>
>> 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: cortex-a9-arm-cpu
>> The valid options are: cortex-m3-arm-cpu, cortex-m4-arm-cpu
>>
> 
> Any comments on this?

No negative comment, so far so good!

> 
> Otherwise I'll prepare a patch series and start adding support for
> more machines.

Yes please, I'm waiting your work get merged to continue some SoC 
cleanups/improvements.

> 
> Thanks,
> Alistair
> 
>> RFC v2:
>>   - Rebase on Igor's work
>>   - Use more QEMUisms inside the code
>>   - List the supported machines in a NULL terminated array
>>
>> Alistair Francis (2):
>>    machine: Add a valid_cpu_types property
>>    netduino2: Specify the valid CPUs
>>
>>   hw/arm/netduino2.c  | 10 +++++++++-
>>   hw/core/machine.c   | 35 +++++++++++++++++++++++++++++++++++
>>   include/hw/boards.h |  1 +
>>   3 files changed, 45 insertions(+), 1 deletion(-)
>>
>> --
>> 2.11.0
>>
>