qemu-riscv
[Top][All Lists]
Advanced

[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
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]