28f2e1
From 1b4a8daf695a81f18ba70bea91b199da215da4e1 Mon Sep 17 00:00:00 2001
28f2e1
From: Eric Auger <eric.auger@redhat.com>
28f2e1
Date: Wed, 5 Jan 2022 16:17:10 +0100
28f2e1
Subject: [PATCH 5/6] hw/arm/virt: Check no_tcg_its and minor style changes
28f2e1
28f2e1
RH-Author: Eric Auger <eric.auger@redhat.com>
28f2e1
RH-MergeRequest: 95: hw/arm/virt: Add virt-rhel8.6.0 machine type
28f2e1
RH-Commit: [5/5] 57e77446ff5a1a7efe152b2c907c0a0ca5487ab7
28f2e1
RH-Bugzilla: 2031039
28f2e1
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
28f2e1
RH-Acked-by: Andrew Jones <drjones@redhat.com>
28f2e1
RH-Acked-by: Gavin Shan <gshan@redhat.com>
28f2e1
28f2e1
branch: rhel-8.6.0
28f2e1
Brew: 42212069
28f2e1
Upstream: no
28f2e1
28f2e1
Truly allow TCG ITS instantiation according to the no_tcg_its
28f2e1
class flag. Otherwise it is always set to false.
28f2e1
28f2e1
We also take benefit of this patch to do some minor non
28f2e1
functional style changes to be closer to the upstream code.
28f2e1
28f2e1
Signed-off-by: Eric Auger <eric.auger@redhat.com>
28f2e1
---
28f2e1
 hw/arm/virt.c | 14 ++++++++++++--
28f2e1
 1 file changed, 12 insertions(+), 2 deletions(-)
28f2e1
28f2e1
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
28f2e1
index c9c17b9d45..dbf0a6d62f 100644
28f2e1
--- a/hw/arm/virt.c
28f2e1
+++ b/hw/arm/virt.c
28f2e1
@@ -3157,6 +3157,7 @@ static void rhel_machine_class_init(ObjectClass *oc, void *data)
28f2e1
                                           "in ACPI table header."
28f2e1
                                           "The string may be up to 6 bytes in size");
28f2e1
 
28f2e1
+
28f2e1
     object_class_property_add_str(oc, "x-oem-table-id",
28f2e1
                                   virt_get_oem_table_id,
28f2e1
                                   virt_set_oem_table_id);
28f2e1
@@ -3164,6 +3165,7 @@ static void rhel_machine_class_init(ObjectClass *oc, void *data)
28f2e1
                                           "Override the default value of field OEM Table ID "
28f2e1
                                           "in ACPI table header."
28f2e1
                                           "The string may be up to 8 bytes in size");
28f2e1
+
28f2e1
 }
28f2e1
 
28f2e1
 static void rhel_virt_instance_init(Object *obj)
28f2e1
@@ -3188,24 +3190,32 @@ static void rhel_virt_instance_init(Object *obj)
28f2e1
     } else {
28f2e1
         /* Default allows ITS instantiation */
28f2e1
         vms->its = true;
28f2e1
+
28f2e1
+        if (vmc->no_tcg_its) {
28f2e1
+            vms->tcg_its = false;
28f2e1
+        } else {
28f2e1
+            vms->tcg_its = true;
28f2e1
+        }
28f2e1
     }
28f2e1
 
28f2e1
     /* Default disallows iommu instantiation */
28f2e1
     vms->iommu = VIRT_IOMMU_NONE;
28f2e1
 
28f2e1
+    /* The default root bus is attached to iommu by default */
28f2e1
+    vms->default_bus_bypass_iommu = false;
28f2e1
+
28f2e1
     /* Default disallows RAS instantiation and is non-configurable for RHEL */
28f2e1
     vms->ras = false;
28f2e1
 
28f2e1
     /* MTE is disabled by default and non-configurable for RHEL */
28f2e1
     vms->mte = false;
28f2e1
 
28f2e1
-    vms->default_bus_bypass_iommu = false;
28f2e1
     vms->irqmap = a15irqmap;
28f2e1
 
28f2e1
     virt_flash_create(vms);
28f2e1
+
28f2e1
     vms->oem_id = g_strndup(ACPI_BUILD_APPNAME6, 6);
28f2e1
     vms->oem_table_id = g_strndup(ACPI_BUILD_APPNAME8, 8);
28f2e1
-
28f2e1
 }
28f2e1
 
28f2e1
 static const TypeInfo rhel_machine_info = {
28f2e1
-- 
28f2e1
2.27.0
28f2e1