[PATCH 0/7] target/arm: Introduce cpu types max-v8 and max-v9

Richard Henderson posted 7 patches 1 month, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260806163939.328201-1-richard.henderson@linaro.org
Maintainers: Peter Maydell <peter.maydell@linaro.org>, Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>, Leif Lindholm <leif.lindholm@oss.qualcomm.com>, Fabiano Rosas <farosas@suse.de>, Laurent Vivier <lvivier@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>
There is a newer version of this series
target/arm/internals.h                        |   4 +-
hw/arm/sbsa-ref.c                             |   2 +
hw/arm/virt.c                                 |   2 +
target/arm/cpu-max.c                          |  14 +-
target/arm/cpu64.c                            |   2 +-
target/arm/tcg/cpu64.c                        | 408 +++++++++++-------
target/arm/tcg/stubs32.c                      |   2 +-
tests/qtest/arm-cpu-features.c                |   4 +-
docs/system/arm/emulation.rst                 |  11 +-
.../aarch64/test_virt_aarch64_off.py          |   4 +-
10 files changed, 269 insertions(+), 184 deletions(-)
[PATCH 0/7] target/arm: Introduce cpu types max-v8 and max-v9
Posted by Richard Henderson 1 month, 3 weeks ago
This is something that we've talked about for quite some time,
having separate "max" cpu types for Armv{8,9}, because Armv9
prohibits some deprecated Armv8 features.  Retaining all features
simultaneously has the potential to cause confusion.

r~

Richard Henderson (7):
  target/arm: Tidy cpu_max_initfn
  target/arm: Pass ARMCPU to aarch64_aa32_a57_init
  target/arm: Pass aarch64_enabled to aarch64_aa32_a57_init
  target/arm: Sink aarch64_aa32_a57_init into aarch64_max_tcg_initfn
  target/arm: Introduce cpu types max-v8 and max-v9
  target/arm: Use -cpu max-v8 with aarch64=off
  target/arm: Separate cpu types max-v8 and max-v9

 target/arm/internals.h                        |   4 +-
 hw/arm/sbsa-ref.c                             |   2 +
 hw/arm/virt.c                                 |   2 +
 target/arm/cpu-max.c                          |  14 +-
 target/arm/cpu64.c                            |   2 +-
 target/arm/tcg/cpu64.c                        | 408 +++++++++++-------
 target/arm/tcg/stubs32.c                      |   2 +-
 tests/qtest/arm-cpu-features.c                |   4 +-
 docs/system/arm/emulation.rst                 |  11 +-
 .../aarch64/test_virt_aarch64_off.py          |   4 +-
 10 files changed, 269 insertions(+), 184 deletions(-)

-- 
2.43.0
Re: [PATCH 0/7] target/arm: Introduce cpu types max-v8 and max-v9
Posted by Peter Maydell 1 month, 2 weeks ago
On Thu, 6 Aug 2026 at 17:41, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> This is something that we've talked about for quite some time,
> having separate "max" cpu types for Armv{8,9}, because Armv9
> prohibits some deprecated Armv8 features.  Retaining all features
> simultaneously has the potential to cause confusion.
>
> r~
>
> Richard Henderson (7):
>   target/arm: Tidy cpu_max_initfn
>   target/arm: Pass ARMCPU to aarch64_aa32_a57_init
>   target/arm: Pass aarch64_enabled to aarch64_aa32_a57_init
>   target/arm: Sink aarch64_aa32_a57_init into aarch64_max_tcg_initfn

I've taken these first four cleanup patches into target-arm.next.

thanks
-- PMM
Re: [PATCH 0/7] target/arm: Introduce cpu types max-v8 and max-v9
Posted by Peter Maydell 1 month, 2 weeks ago
On Wed, 12 Aug 2026 at 11:27, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Thu, 6 Aug 2026 at 17:41, Richard Henderson
> <richard.henderson@linaro.org> wrote:
> >
> > This is something that we've talked about for quite some time,
> > having separate "max" cpu types for Armv{8,9}, because Armv9
> > prohibits some deprecated Armv8 features.  Retaining all features
> > simultaneously has the potential to cause confusion.
> >
> > r~
> >
> > Richard Henderson (7):
> >   target/arm: Tidy cpu_max_initfn
> >   target/arm: Pass ARMCPU to aarch64_aa32_a57_init
> >   target/arm: Pass aarch64_enabled to aarch64_aa32_a57_init
> >   target/arm: Sink aarch64_aa32_a57_init into aarch64_max_tcg_initfn
>
> I've taken these first four cleanup patches into target-arm.next.

Turns out the first patch causes the cross-arm-kvm-only and
cross-arm-xen-only builds to fail:

/usr/lib/gcc-cross/aarch64-linux-gnu/14/../../../../aarch64-linux-gnu/bin/ld:
libsystem_arm.a.p/target_arm_cpu-max.c.o: in function
`cpu_max_initfn':
/builds/pm215/qemu/build/../target/arm/cpu-max.c:223:(.text+0x4c0):
undefined reference to `aarch64_max_tcg_initfn'

I think this is because we used to have the call to
aarch64_max_tcg_initfn() inside an "if (tcg_enabled())"
block, so the compiler was able to eliminate it in the
TCG-disabled config. Now we've dropped that, the call
is still present and the link fails.

I've dropped the series from target-arm.next.

-- PMM