mbox series

[RFC,v2,0/2] Add a valid_cpu_types property

Message ID cover.1506037164.git.alistair.francis@xilinx.com
Headers show
Series Add a valid_cpu_types property | expand

Message

Alistair Francis Sept. 21, 2017, 11:41 p.m. UTC
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(-)

Comments

Alistair Francis Oct. 2, 2017, 6:42 p.m. UTC | #1
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
>
Philippe Mathieu-Daudé Oct. 2, 2017, 7:41 p.m. UTC | #2
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
>>
>