[Qemu-devel] [PATCH v2 0/5] Add a valid_cpu_types property

Alistair Francis posted 5 patches 6 years, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/cover.1507852977.git.alistair.francis@xilinx.com
Test checkpatch passed
Test docker passed
Test s390x passed
There is a newer version of this series
hw/arm/bcm2836.c     |  2 +-
hw/arm/netduino2.c   | 10 +++++++++-
hw/arm/raspi.c       |  7 +++++++
hw/arm/xilinx_zynq.c |  6 ++++++
hw/arm/xlnx-zcu102.c | 17 +++++++++++++++++
5 files changed, 40 insertions(+), 2 deletions(-)
[Qemu-devel] [PATCH v2 0/5] 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.

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

V2:
 - Rebase
 - Reorder patches
 - Add a Raspberry Pi 2 CPU fix
V1:
 - Small fixes to prepare a series instead of RFC
 - Add commit messages for the commits
 - Expand the machine support to ARM machines
RFC v2:
 - Rebase on Igor's work
 - Use more QEMUisms inside the code
 - List the supported machines in a NULL terminated array

Alistair Francis (5):
  netduino2: Specify the valid CPUs
  bcm2836: Use the Cortex-A7 instead of Cortex-A15
  raspi: Specify the valid CPUs
  xlnx-zcu102: Specify the valid CPUs
  xilinx_zynq: : Specify the valid CPUs

 hw/arm/bcm2836.c     |  2 +-
 hw/arm/netduino2.c   | 10 +++++++++-
 hw/arm/raspi.c       |  7 +++++++
 hw/arm/xilinx_zynq.c |  6 ++++++
 hw/arm/xlnx-zcu102.c | 17 +++++++++++++++++
 5 files changed, 40 insertions(+), 2 deletions(-)

-- 
2.11.0


Re: [Qemu-devel] [PATCH v2 0/5] Add a valid_cpu_types property
Posted by Igor Mammedov 6 years, 6 months ago
On Thu, 12 Oct 2017 17:07:23 -0700
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.
> 
> I have added the valid_cpu_types for some ARM machines only at the
> moment.
do you plan to complete work for other boards as well
so that new interface would replace current opencoded
checks across the tree?


> 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
> 
> V2:
>  - Rebase
>  - Reorder patches
>  - Add a Raspberry Pi 2 CPU fix
> V1:
>  - Small fixes to prepare a series instead of RFC
>  - Add commit messages for the commits
>  - Expand the machine support to ARM machines
> RFC v2:
>  - Rebase on Igor's work
>  - Use more QEMUisms inside the code
>  - List the supported machines in a NULL terminated array
> 
> Alistair Francis (5):
>   netduino2: Specify the valid CPUs
>   bcm2836: Use the Cortex-A7 instead of Cortex-A15
>   raspi: Specify the valid CPUs
>   xlnx-zcu102: Specify the valid CPUs
>   xilinx_zynq: : Specify the valid CPUs
> 
>  hw/arm/bcm2836.c     |  2 +-
>  hw/arm/netduino2.c   | 10 +++++++++-
>  hw/arm/raspi.c       |  7 +++++++
>  hw/arm/xilinx_zynq.c |  6 ++++++
>  hw/arm/xlnx-zcu102.c | 17 +++++++++++++++++
>  5 files changed, 40 insertions(+), 2 deletions(-)
> 


Re: [Qemu-devel] [PATCH v2 0/5] Add a valid_cpu_types property
Posted by Alistair Francis 6 years, 6 months ago
On Fri, Oct 13, 2017 at 1:54 AM, Igor Mammedov <imammedo@redhat.com> wrote:
> On Thu, 12 Oct 2017 17:07:23 -0700
> 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.
>>
>> I have added the valid_cpu_types for some ARM machines only at the
>> moment.
> do you plan to complete work for other boards as well
> so that new interface would replace current opencoded
> checks across the tree?

Ideally yes, it's just a matter of finding time to dig through the
other architectures.

Thanks,
Alistair

>
>
>> 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
>>
>> V2:
>>  - Rebase
>>  - Reorder patches
>>  - Add a Raspberry Pi 2 CPU fix
>> V1:
>>  - Small fixes to prepare a series instead of RFC
>>  - Add commit messages for the commits
>>  - Expand the machine support to ARM machines
>> RFC v2:
>>  - Rebase on Igor's work
>>  - Use more QEMUisms inside the code
>>  - List the supported machines in a NULL terminated array
>>
>> Alistair Francis (5):
>>   netduino2: Specify the valid CPUs
>>   bcm2836: Use the Cortex-A7 instead of Cortex-A15
>>   raspi: Specify the valid CPUs
>>   xlnx-zcu102: Specify the valid CPUs
>>   xilinx_zynq: : Specify the valid CPUs
>>
>>  hw/arm/bcm2836.c     |  2 +-
>>  hw/arm/netduino2.c   | 10 +++++++++-
>>  hw/arm/raspi.c       |  7 +++++++
>>  hw/arm/xilinx_zynq.c |  6 ++++++
>>  hw/arm/xlnx-zcu102.c | 17 +++++++++++++++++
>>  5 files changed, 40 insertions(+), 2 deletions(-)
>>
>