diff mbox series

[RFC,v11,17/55] target/arm: kvm: add stubs for some helpers

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

Commit Message

Claudio Fontana March 23, 2021, 3:46 p.m. UTC
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

Comments

Richard Henderson March 24, 2021, 6:46 p.m. UTC | #1
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~
Richard Henderson March 24, 2021, 6:54 p.m. UTC | #2
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 mbox series

Patch

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}