[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v8 07/10] hw/arm/sbsa-ref: add ITS support in SBSA GIC
From: |
Peter Maydell |
Subject: |
Re: [PATCH v8 07/10] hw/arm/sbsa-ref: add ITS support in SBSA GIC |
Date: |
Thu, 19 Aug 2021 14:27:19 +0100 |
On Thu, 12 Aug 2021 at 17:53, Shashi Mallela <shashi.mallela@linaro.org> wrote:
>
> Included creation of ITS as part of SBSA platform GIC
> initialization.
>
> Signed-off-by: Shashi Mallela <shashi.mallela@linaro.org>
> ---
> hw/arm/sbsa-ref.c | 79 ++++++++++++++++++++++++++++++++++++++++++++---
> 1 file changed, 75 insertions(+), 4 deletions(-)
>
> +static char *sbsa_get_version(Object *obj, Error **errp)
> +{
> + SBSAMachineState *sms = SBSA_MACHINE(obj);
> +
> + switch (sms->version) {
> + case SBSA_DEFAULT:
> + return g_strdup("default");
> + case SBSA_ITS:
> + return g_strdup("sbsaits");
> + default:
> + g_assert_not_reached();
> + }
> +}
> +
> +static void sbsa_set_version(Object *obj, const char *value, Error **errp)
> +{
> + SBSAMachineState *sms = SBSA_MACHINE(obj);
> +
> + if (!strcmp(value, "sbsaits")) {
> + sms->version = SBSA_ITS;
> + } else if (!strcmp(value, "default")) {
> + sms->version = SBSA_DEFAULT;
> + } else {
> + error_setg(errp, "Invalid version value");
> + error_append_hint(errp, "Valid values are default, sbsaits.\n");
> + }
> +}
>
> static void sbsa_ref_instance_init(Object *obj)
> {
> SBSAMachineState *sms = SBSA_MACHINE(obj);
>
> + sms->version = SBSA_ITS;
> sbsa_flash_create(sms);
> }
>
> @@ -850,6 +915,12 @@ static void sbsa_ref_class_init(ObjectClass *oc, void
> *data)
> mc->possible_cpu_arch_ids = sbsa_ref_possible_cpu_arch_ids;
> mc->cpu_index_to_instance_props = sbsa_ref_cpu_index_to_props;
> mc->get_default_cpu_node_id = sbsa_ref_get_default_cpu_node_id;
> +
> + object_class_property_add_str(oc, "version", sbsa_get_version,
> + sbsa_set_version);
> + object_class_property_set_description(oc, "version",
> + "Set the Version type. "
> + "Valid values are default &
> sbsaits");
This doesn't look right; where has it come from ?
If you want a command line switch to let the user say whether the
ITS should be present or not, you should use the same thing the
virt board does, which is a bool property "its".
If you want the sbsa-ref board to become a proper "versioned machine
type" such that users can say "-M sbsa-ref-6.1" and get the SBSA
board exactly as QEMU 6.1 supplied it, that looks completely different
(and is a heavy back-compatibility burden, so needs discussion about
whether now is the right time to do it), and probably is better not
tangled up with this patchseries.
thanks
-- PMM
- [PATCH v8 00/10] GICv3 LPI and ITS feature implementation, Shashi Mallela, 2021/08/12
- [PATCH v8 01/10] hw/intc: GICv3 ITS initial framework, Shashi Mallela, 2021/08/12
- [PATCH v8 02/10] hw/intc: GICv3 ITS register definitions added, Shashi Mallela, 2021/08/12
- [PATCH v8 05/10] hw/intc: GICv3 ITS Feature enablement, Shashi Mallela, 2021/08/12
- [PATCH v8 03/10] hw/intc: GICv3 ITS command queue framework, Shashi Mallela, 2021/08/12
- [PATCH v8 04/10] hw/intc: GICv3 ITS Command processing, Shashi Mallela, 2021/08/12
- [PATCH v8 09/10] hw/arm/virt: add ITS support in virt GIC, Shashi Mallela, 2021/08/12
- [PATCH v8 07/10] hw/arm/sbsa-ref: add ITS support in SBSA GIC, Shashi Mallela, 2021/08/12
- Re: [PATCH v8 07/10] hw/arm/sbsa-ref: add ITS support in SBSA GIC,
Peter Maydell <=
- [PATCH v8 08/10] tests/data/acpi/virt: Add IORT files for ITS, Shashi Mallela, 2021/08/12
- [PATCH v8 10/10] tests/data/acpi/virt: Update IORT files for ITS, Shashi Mallela, 2021/08/12
- [PATCH v8 06/10] hw/intc: GICv3 redistributor ITS processing, Shashi Mallela, 2021/08/12