[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 2/2] hw/riscv/virt: Restrict ACLINT to TCG
From: |
Alistair Francis |
Subject: |
Re: [PATCH 2/2] hw/riscv/virt: Restrict ACLINT to TCG |
Date: |
Mon, 3 Jul 2023 12:47:18 +1000 |
On Thu, Jun 29, 2023 at 10:12 PM Philippe Mathieu-Daudé
<philmd@linaro.org> wrote:
>
> The Advanced Core Local Interruptor (ACLINT) device can
> only be used with TCG. Check for TCG enabled instead of
> KVM being not. Only add the property when TCG is used.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Thanks!
Applied to riscv-to-apply.next
Alistair
> ---
> docs/system/riscv/virt.rst | 1 +
> hw/riscv/virt.c | 18 ++++++++++--------
> 2 files changed, 11 insertions(+), 8 deletions(-)
>
> diff --git a/docs/system/riscv/virt.rst b/docs/system/riscv/virt.rst
> index b33f45e5b3..f9a2eac544 100644
> --- a/docs/system/riscv/virt.rst
> +++ b/docs/system/riscv/virt.rst
> @@ -93,6 +93,7 @@ The following machine-specific options are supported:
>
> When this option is "on", ACLINT devices will be emulated instead of
> SiFive CLINT. When not specified, this option is assumed to be "off".
> + This option is restricted to the TCG accelerator.
>
> - aia=[none|aplic|aplic-imsic]
>
> diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
> index 68ccd0bde1..cdb88a1529 100644
> --- a/hw/riscv/virt.c
> +++ b/hw/riscv/virt.c
> @@ -44,6 +44,7 @@
> #include "chardev/char.h"
> #include "sysemu/device_tree.h"
> #include "sysemu/sysemu.h"
> +#include "sysemu/tcg.h"
> #include "sysemu/kvm.h"
> #include "sysemu/tpm.h"
> #include "hw/pci/pci.h"
> @@ -776,7 +777,7 @@ static void create_fdt_sockets(RISCVVirtState *s, const
> MemMapEntry *memmap,
>
> g_free(clust_name);
>
> - if (!kvm_enabled()) {
> + if (tcg_enabled()) {
> if (s->have_aclint) {
> create_fdt_socket_aclint(s, memmap, socket,
> &intc_phandles[phandle_pos]);
> @@ -1370,7 +1371,7 @@ static void virt_machine_init(MachineState *machine)
> hart_count, &error_abort);
> sysbus_realize(SYS_BUS_DEVICE(&s->soc[i]), &error_fatal);
>
> - if (!kvm_enabled()) {
> + if (tcg_enabled()) {
> if (s->have_aclint) {
> if (s->aia_type == VIRT_AIA_TYPE_APLIC_IMSIC) {
> /* Per-socket ACLINT MTIMER */
> @@ -1682,12 +1683,13 @@ static void virt_machine_class_init(ObjectClass *oc,
> void *data)
> machine_class_allow_dynamic_sysbus_dev(mc, TYPE_TPM_TIS_SYSBUS);
> #endif
>
> - object_class_property_add_bool(oc, "aclint", virt_get_aclint,
> - virt_set_aclint);
> - object_class_property_set_description(oc, "aclint",
> - "Set on/off to enable/disable "
> - "emulating ACLINT devices");
> -
> + if (tcg_enabled()) {
> + object_class_property_add_bool(oc, "aclint", virt_get_aclint,
> + virt_set_aclint);
> + object_class_property_set_description(oc, "aclint",
> + "Set on/off to enable/disable "
> + "emulating ACLINT devices");
> + }
> object_class_property_add_str(oc, "aia", virt_get_aia,
> virt_set_aia);
> object_class_property_set_description(oc, "aia",
> --
> 2.38.1
>
>