Message ID | 20210323154639.23477-10-cfontana@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm cleanup experiment for kvm-only build | expand |
On 3/23/21 9:46 AM, Claudio Fontana wrote: > at least the armv7m one should go away with proper > configuration changes (only enabling possible boards for KVM). > > Signed-off-by: Claudio Fontana<cfontana@suse.de> > --- > target/arm/kvm/helper-stubs.c | 27 +++++++++++++++++++++++++++ > target/arm/kvm/meson.build | 3 +++ > target/arm/meson.build | 1 + > 3 files changed, 31 insertions(+) > create mode 100644 target/arm/kvm/helper-stubs.c > create mode 100644 target/arm/kvm/meson.build > > diff --git a/target/arm/kvm/helper-stubs.c b/target/arm/kvm/helper-stubs.c > new file mode 100644 > index 0000000000..8e952c91fa > --- /dev/null > +++ b/target/arm/kvm/helper-stubs.c > @@ -0,0 +1,27 @@ Hmm. Is this really kvm-specific, or should it just be tcg/tcg-stubs.c, added with: 'CONFIG_TCG', if_false: ? r~
On 3/23/21 9:46 AM, Claudio Fontana wrote: > +/* return the effective value of HCR_EL2. For KVM, always 0. */ > +uint64_t arm_hcr_el2_eff(CPUARMState *env) > +{ > + return 0; > +} Oh, amusingly, patches for kvm nested virtualization, https://patchew.org/QEMU/cover.1616052889.git.haibo.xu@linaro.org/ mean that the guest *can* run in EL2, and this always 0 comment isn't true. So we'll need to keep the original copy of this function in an accelerator agnostic place. r~
diff --git a/target/arm/kvm/helper-stubs.c b/target/arm/kvm/helper-stubs.c new file mode 100644 index 0000000000..8e952c91fa --- /dev/null +++ b/target/arm/kvm/helper-stubs.c @@ -0,0 +1,27 @@ +/* + * QEMU ARM KVM stubs for some helper functions + * + * Copyright 2021 SUSE LLC + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "cpu.h" + +/* return the effective value of HCR_EL2. For KVM, always 0. */ +uint64_t arm_hcr_el2_eff(CPUARMState *env) +{ + return 0; +} + +int fp_exception_el(CPUARMState *env, int cur_el) +{ + return 0; +} + +void write_v7m_exception(CPUARMState *env, uint32_t new_exc) +{ + g_assert_not_reached(); +} diff --git a/target/arm/kvm/meson.build b/target/arm/kvm/meson.build new file mode 100644 index 0000000000..1015fc0afb --- /dev/null +++ b/target/arm/kvm/meson.build @@ -0,0 +1,3 @@ +arm_ss.add(when: 'CONFIG_TCG', if_false: files( + 'helper-stubs.c', +)) diff --git a/target/arm/meson.build b/target/arm/meson.build index 7a6d0d6ba4..cd2ae221a6 100644 --- a/target/arm/meson.build +++ b/target/arm/meson.build @@ -34,6 +34,7 @@ arm_softmmu_ss.add(when: 'CONFIG_TCG', if_true: files( arm_user_ss = ss.source_set() subdir('tcg') +subdir('kvm') target_arch += {'arm': arm_ss} target_softmmu_arch += {'arm': arm_softmmu_ss}
at least the armv7m one should go away with proper configuration changes (only enabling possible boards for KVM). Signed-off-by: Claudio Fontana <cfontana@suse.de> --- target/arm/kvm/helper-stubs.c | 27 +++++++++++++++++++++++++++ target/arm/kvm/meson.build | 3 +++ target/arm/meson.build | 1 + 3 files changed, 31 insertions(+) create mode 100644 target/arm/kvm/helper-stubs.c create mode 100644 target/arm/kvm/meson.build