* [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines
@ 2025-10-17 13:07 Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 01/20] hw/arm/virt: Remove deprecated virt-4.1 machine Philippe Mathieu-Daudé
` (20 more replies)
0 siblings, 21 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:07 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
Remove the deprecated virt-4.1 up to virt-7.2 machines,
which are older than 6 years. Remove resulting dead code.
Philippe Mathieu-Daudé (20):
hw/arm/virt: Remove deprecated virt-4.1 machine
hw/arm/virt: Remove VirtMachineClass::no_ged field
hw/arm/virt: Remove deprecated virt-4.2 machine
hw/arm/virt: Remove VirtMachineClass::kvm_no_adjvtime field
hw/arm/virt: Remove deprecated virt-5.0 machine
hw/arm/virt: Remove VirtMachineClass::acpi_expose_flash field
hw/arm/virt: Remove deprecated virt-5.1 machine
hw/arm/virt: Remove VirtMachineClass::no_kvm_steal_time field
hw/arm/virt: Remove deprecated virt-5.2 machine
hw/arm/virt: Remove VirtMachineClass::no_secure_gpio field
hw/arm/virt: Remove deprecated virt-6.0 machine
hw/arm/virt: Remove deprecated virt-6.1 machine
hw/arm/virt: Remove VirtMachineClass::no_tcg_its field
hw/arm/virt: Remove VirtMachineClass::no_cpu_topology field
hw/arm/virt: Remove deprecated virt-6.2 machine
hw/arm/virt: Remove VirtMachineClass::no_tcg_lpa2 field
hw/arm/virt: Remove deprecated virt-7.0 machine
hw/arm/virt: Remove deprecated virt-7.1 machine
hw/arm/virt: Remove VirtMachineClass::no_highmem_compact field
hw/arm/virt: Remove deprecated virt-7.2 machine
include/hw/arm/virt.h | 11 --
hw/arm/virt-acpi-build.c | 37 +------
hw/arm/virt.c | 228 ++++++++-------------------------------
3 files changed, 50 insertions(+), 226 deletions(-)
--
2.51.0
^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH 01/20] hw/arm/virt: Remove deprecated virt-4.1 machine
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 02/20] hw/arm/virt: Remove VirtMachineClass::no_ged field Philippe Mathieu-Daudé
` (19 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
This machine has been supported for a period of more than 6 years.
According to our versioned machine support policy (see commit
ce80c4fa6ff "docs: document special exception for machine type
deprecation & removal") it can now be removed.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/arm/virt.c | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 175023897a7..ed81f3fe8d8 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3701,14 +3701,3 @@ static void virt_machine_4_2_options(MachineClass *mc)
vmc->kvm_no_adjvtime = true;
}
DEFINE_VIRT_MACHINE(4, 2)
-
-static void virt_machine_4_1_options(MachineClass *mc)
-{
- VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
-
- virt_machine_4_2_options(mc);
- compat_props_add(mc->compat_props, hw_compat_4_1, hw_compat_4_1_len);
- vmc->no_ged = true;
- mc->auto_enable_numa_with_memhp = false;
-}
-DEFINE_VIRT_MACHINE(4, 1)
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 02/20] hw/arm/virt: Remove VirtMachineClass::no_ged field
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 01/20] hw/arm/virt: Remove deprecated virt-4.1 machine Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 03/20] hw/arm/virt: Remove deprecated virt-4.2 machine Philippe Mathieu-Daudé
` (18 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
The VirtMachineClass::no_ged field was only used by virt-4.1
machine, which got removed. Remove it as now unused.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/arm/virt.h | 1 -
hw/arm/virt.c | 3 +--
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h
index 04a09af3540..993872bb680 100644
--- a/include/hw/arm/virt.h
+++ b/include/hw/arm/virt.h
@@ -123,7 +123,6 @@ struct VirtMachineClass {
MachineClass parent;
bool no_tcg_its;
bool no_highmem_compact;
- bool no_ged; /* Machines < 4.2 have no support for ACPI GED device */
bool kvm_no_adjvtime;
bool no_kvm_steal_time;
bool acpi_expose_flash;
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index ed81f3fe8d8..2eda2d43974 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -2210,7 +2210,6 @@ static void machvirt_init(MachineState *machine)
int n, virt_max_cpus;
bool firmware_loaded;
bool aarch64 = true;
- bool has_ged = !vmc->no_ged;
unsigned int smp_cpus = machine->smp.cpus;
unsigned int max_cpus = machine->smp.max_cpus;
@@ -2512,7 +2511,7 @@ static void machvirt_init(MachineState *machine)
create_pcie(vms);
create_cxl_host_reg_region(vms);
- if (has_ged && aarch64 && firmware_loaded && virt_is_acpi_enabled(vms)) {
+ if (aarch64 && firmware_loaded && virt_is_acpi_enabled(vms)) {
vms->acpi_dev = create_acpi_ged(vms);
vms->generic_error_notifier.notify = virt_generic_error_req;
notifier_list_add(&acpi_generic_error_notifiers,
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 03/20] hw/arm/virt: Remove deprecated virt-4.2 machine
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 01/20] hw/arm/virt: Remove deprecated virt-4.1 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 02/20] hw/arm/virt: Remove VirtMachineClass::no_ged field Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 04/20] hw/arm/virt: Remove VirtMachineClass::kvm_no_adjvtime field Philippe Mathieu-Daudé
` (17 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
This machine has been supported for a period of more than 6 years.
According to our versioned machine support policy (see commit
ce80c4fa6ff "docs: document special exception for machine type
deprecation & removal") it can now be removed.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/arm/virt.c | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 2eda2d43974..b781a218019 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3690,13 +3690,3 @@ static void virt_machine_5_0_options(MachineClass *mc)
mc->auto_enable_numa_with_memdev = false;
}
DEFINE_VIRT_MACHINE(5, 0)
-
-static void virt_machine_4_2_options(MachineClass *mc)
-{
- VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
-
- virt_machine_5_0_options(mc);
- compat_props_add(mc->compat_props, hw_compat_4_2, hw_compat_4_2_len);
- vmc->kvm_no_adjvtime = true;
-}
-DEFINE_VIRT_MACHINE(4, 2)
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 04/20] hw/arm/virt: Remove VirtMachineClass::kvm_no_adjvtime field
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (2 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 03/20] hw/arm/virt: Remove deprecated virt-4.2 machine Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 05/20] hw/arm/virt: Remove deprecated virt-5.0 machine Philippe Mathieu-Daudé
` (16 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
The VirtMachineClass::kvm_no_adjvtime field was only used by the
virt-4.2 machine, which got removed. Remove it as now unused, but
keep the ARMCPU homonym property.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/arm/virt.h | 1 -
hw/arm/virt.c | 5 -----
2 files changed, 6 deletions(-)
diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h
index 993872bb680..c77a33f6df2 100644
--- a/include/hw/arm/virt.h
+++ b/include/hw/arm/virt.h
@@ -123,7 +123,6 @@ struct VirtMachineClass {
MachineClass parent;
bool no_tcg_its;
bool no_highmem_compact;
- bool kvm_no_adjvtime;
bool no_kvm_steal_time;
bool acpi_expose_flash;
bool no_secure_gpio;
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index b781a218019..ffbddb711f6 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -2362,11 +2362,6 @@ static void machvirt_init(MachineState *machine)
object_property_set_bool(cpuobj, "has_el2", false, NULL);
}
- if (vmc->kvm_no_adjvtime &&
- object_property_find(cpuobj, "kvm-no-adjvtime")) {
- object_property_set_bool(cpuobj, "kvm-no-adjvtime", true, NULL);
- }
-
if (vmc->no_kvm_steal_time &&
object_property_find(cpuobj, "kvm-steal-time")) {
object_property_set_bool(cpuobj, "kvm-steal-time", false, NULL);
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 05/20] hw/arm/virt: Remove deprecated virt-5.0 machine
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (3 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 04/20] hw/arm/virt: Remove VirtMachineClass::kvm_no_adjvtime field Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 06/20] hw/arm/virt: Remove VirtMachineClass::acpi_expose_flash field Philippe Mathieu-Daudé
` (15 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
This machine has been supported for a period of more than 6 years.
According to our versioned machine support policy (see commit
ce80c4fa6ff "docs: document special exception for machine type
deprecation & removal") it can now be removed.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/arm/virt.c | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index ffbddb711f6..953b2e5a94f 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3673,15 +3673,3 @@ static void virt_machine_5_1_options(MachineClass *mc)
vmc->no_kvm_steal_time = true;
}
DEFINE_VIRT_MACHINE(5, 1)
-
-static void virt_machine_5_0_options(MachineClass *mc)
-{
- VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
-
- virt_machine_5_1_options(mc);
- compat_props_add(mc->compat_props, hw_compat_5_0, hw_compat_5_0_len);
- mc->numa_mem_supported = true;
- vmc->acpi_expose_flash = true;
- mc->auto_enable_numa_with_memdev = false;
-}
-DEFINE_VIRT_MACHINE(5, 0)
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 06/20] hw/arm/virt: Remove VirtMachineClass::acpi_expose_flash field
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (4 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 05/20] hw/arm/virt: Remove deprecated virt-5.0 machine Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 07/20] hw/arm/virt: Remove deprecated virt-5.1 machine Philippe Mathieu-Daudé
` (14 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
The VirtMachineClass::acpi_expose_flash field was only used by
the virt-5.0 machine, which got removed (see commit 2c1fb4d5c01
"hw/arm/virt-acpi-build: Only expose flash on older machine types"
for more context). Remove it as now unused.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/arm/virt.h | 1 -
hw/arm/virt-acpi-build.c | 28 ----------------------------
2 files changed, 29 deletions(-)
diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h
index c77a33f6df2..ba16acb8626 100644
--- a/include/hw/arm/virt.h
+++ b/include/hw/arm/virt.h
@@ -124,7 +124,6 @@ struct VirtMachineClass {
bool no_tcg_its;
bool no_highmem_compact;
bool no_kvm_steal_time;
- bool acpi_expose_flash;
bool no_secure_gpio;
/* Machines < 6.2 have no support for describing cpu topology to guest */
bool no_cpu_topology;
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
index 8bb6b605154..5db5baa7cf3 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi-build.c
@@ -99,30 +99,6 @@ static void acpi_dsdt_add_uart(Aml *scope, const MemMapEntry *uart_memmap,
aml_append(scope, dev);
}
-static void acpi_dsdt_add_flash(Aml *scope, const MemMapEntry *flash_memmap)
-{
- Aml *dev, *crs;
- hwaddr base = flash_memmap->base;
- hwaddr size = flash_memmap->size / 2;
-
- dev = aml_device("FLS0");
- aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0015")));
- aml_append(dev, aml_name_decl("_UID", aml_int(0)));
-
- crs = aml_resource_template();
- aml_append(crs, aml_memory32_fixed(base, size, AML_READ_WRITE));
- aml_append(dev, aml_name_decl("_CRS", crs));
- aml_append(scope, dev);
-
- dev = aml_device("FLS1");
- aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0015")));
- aml_append(dev, aml_name_decl("_UID", aml_int(1)));
- crs = aml_resource_template();
- aml_append(crs, aml_memory32_fixed(base + size, size, AML_READ_WRITE));
- aml_append(dev, aml_name_decl("_CRS", crs));
- aml_append(scope, dev);
-}
-
static void build_acpi0017(Aml *table)
{
Aml *dev, *scope, *method;
@@ -1011,7 +987,6 @@ static void build_fadt_rev6(GArray *table_data, BIOSLinker *linker,
static void
build_dsdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms)
{
- VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms);
Aml *scope, *dsdt;
MachineState *ms = MACHINE(vms);
const MemMapEntry *memmap = vms->memmap;
@@ -1036,9 +1011,6 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms)
acpi_dsdt_add_uart(scope, &memmap[VIRT_UART1],
(irqmap[VIRT_UART1] + ARM_SPI_BASE), 1);
}
- if (vmc->acpi_expose_flash) {
- acpi_dsdt_add_flash(scope, &memmap[VIRT_FLASH]);
- }
fw_cfg_acpi_dsdt_add(scope, &memmap[VIRT_FW_CFG]);
virtio_acpi_dsdt_add(scope, memmap[VIRT_MMIO].base, memmap[VIRT_MMIO].size,
(irqmap[VIRT_MMIO] + ARM_SPI_BASE),
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 07/20] hw/arm/virt: Remove deprecated virt-5.1 machine
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (5 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 06/20] hw/arm/virt: Remove VirtMachineClass::acpi_expose_flash field Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 08/20] hw/arm/virt: Remove VirtMachineClass::no_kvm_steal_time field Philippe Mathieu-Daudé
` (13 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
This machine has been supported for a period of more than 6 years.
According to our versioned machine support policy (see commit
ce80c4fa6ff "docs: document special exception for machine type
deprecation & removal") it can now be removed.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/arm/virt.c | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 953b2e5a94f..b7ea180bcf0 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3663,13 +3663,3 @@ static void virt_machine_5_2_options(MachineClass *mc)
vmc->no_secure_gpio = true;
}
DEFINE_VIRT_MACHINE(5, 2)
-
-static void virt_machine_5_1_options(MachineClass *mc)
-{
- VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
-
- virt_machine_5_2_options(mc);
- compat_props_add(mc->compat_props, hw_compat_5_1, hw_compat_5_1_len);
- vmc->no_kvm_steal_time = true;
-}
-DEFINE_VIRT_MACHINE(5, 1)
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 08/20] hw/arm/virt: Remove VirtMachineClass::no_kvm_steal_time field
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (6 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 07/20] hw/arm/virt: Remove deprecated virt-5.1 machine Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 09/20] hw/arm/virt: Remove deprecated virt-5.2 machine Philippe Mathieu-Daudé
` (12 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
The VirtMachineClass::no_kvm_steal_time field was only used by
the virt-5.1 machine, which got removed. Remove it as now unused,
but keep the ARMCPU "kvm-steal-time" property.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/arm/virt.h | 1 -
hw/arm/virt.c | 5 -----
2 files changed, 6 deletions(-)
diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h
index ba16acb8626..96f3569c290 100644
--- a/include/hw/arm/virt.h
+++ b/include/hw/arm/virt.h
@@ -123,7 +123,6 @@ struct VirtMachineClass {
MachineClass parent;
bool no_tcg_its;
bool no_highmem_compact;
- bool no_kvm_steal_time;
bool no_secure_gpio;
/* Machines < 6.2 have no support for describing cpu topology to guest */
bool no_cpu_topology;
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index b7ea180bcf0..cd0df096de9 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -2362,11 +2362,6 @@ static void machvirt_init(MachineState *machine)
object_property_set_bool(cpuobj, "has_el2", false, NULL);
}
- if (vmc->no_kvm_steal_time &&
- object_property_find(cpuobj, "kvm-steal-time")) {
- object_property_set_bool(cpuobj, "kvm-steal-time", false, NULL);
- }
-
if (vmc->no_tcg_lpa2 && object_property_find(cpuobj, "lpa2")) {
object_property_set_bool(cpuobj, "lpa2", false, NULL);
}
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 09/20] hw/arm/virt: Remove deprecated virt-5.2 machine
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (7 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 08/20] hw/arm/virt: Remove VirtMachineClass::no_kvm_steal_time field Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 10/20] hw/arm/virt: Remove VirtMachineClass::no_secure_gpio field Philippe Mathieu-Daudé
` (11 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
This machine has been supported for a period of more than 6 years.
According to our versioned machine support policy (see commit
ce80c4fa6ff "docs: document special exception for machine type
deprecation & removal") it can now be removed.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/arm/virt.c | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index cd0df096de9..e49af505431 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3648,13 +3648,3 @@ static void virt_machine_6_0_options(MachineClass *mc)
compat_props_add(mc->compat_props, hw_compat_6_0, hw_compat_6_0_len);
}
DEFINE_VIRT_MACHINE(6, 0)
-
-static void virt_machine_5_2_options(MachineClass *mc)
-{
- VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
-
- virt_machine_6_0_options(mc);
- compat_props_add(mc->compat_props, hw_compat_5_2, hw_compat_5_2_len);
- vmc->no_secure_gpio = true;
-}
-DEFINE_VIRT_MACHINE(5, 2)
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 10/20] hw/arm/virt: Remove VirtMachineClass::no_secure_gpio field
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (8 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 09/20] hw/arm/virt: Remove deprecated virt-5.2 machine Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 11/20] hw/arm/virt: Remove deprecated virt-6.0 machine Philippe Mathieu-Daudé
` (10 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
The VirtMachineClass::no_secure_gpio field was
only used by virt-5.2 machine, which got removed.
Remove it as now unused.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/arm/virt.h | 1 -
hw/arm/virt.c | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h
index 96f3569c290..c5ccd6ec9ea 100644
--- a/include/hw/arm/virt.h
+++ b/include/hw/arm/virt.h
@@ -123,7 +123,6 @@ struct VirtMachineClass {
MachineClass parent;
bool no_tcg_its;
bool no_highmem_compact;
- bool no_secure_gpio;
/* Machines < 6.2 have no support for describing cpu topology to guest */
bool no_cpu_topology;
bool no_tcg_lpa2;
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index e49af505431..33c0034b030 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -2510,7 +2510,7 @@ static void machvirt_init(MachineState *machine)
create_gpio_devices(vms, VIRT_GPIO, sysmem);
}
- if (vms->secure && !vmc->no_secure_gpio) {
+ if (vms->secure) {
create_gpio_devices(vms, VIRT_SECURE_GPIO, secure_sysmem);
}
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 11/20] hw/arm/virt: Remove deprecated virt-6.0 machine
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (9 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 10/20] hw/arm/virt: Remove VirtMachineClass::no_secure_gpio field Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 12/20] hw/arm/virt: Remove deprecated virt-6.1 machine Philippe Mathieu-Daudé
` (9 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
This machine has been supported for a period of more than 6 years.
According to our versioned machine support policy (see commit
ce80c4fa6ff "docs: document special exception for machine type
deprecation & removal") it can now be removed.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/arm/virt.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 33c0034b030..f928a73272d 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3641,10 +3641,3 @@ static void virt_machine_6_1_options(MachineClass *mc)
vmc->no_tcg_its = true;
}
DEFINE_VIRT_MACHINE(6, 1)
-
-static void virt_machine_6_0_options(MachineClass *mc)
-{
- virt_machine_6_1_options(mc);
- compat_props_add(mc->compat_props, hw_compat_6_0, hw_compat_6_0_len);
-}
-DEFINE_VIRT_MACHINE(6, 0)
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 12/20] hw/arm/virt: Remove deprecated virt-6.1 machine
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (10 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 11/20] hw/arm/virt: Remove deprecated virt-6.0 machine Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 13/20] hw/arm/virt: Remove VirtMachineClass::no_tcg_its field Philippe Mathieu-Daudé
` (8 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
This machine has been supported for a period of more than 6 years.
According to our versioned machine support policy (see commit
ce80c4fa6ff "docs: document special exception for machine type
deprecation & removal") it can now be removed.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/arm/virt.c | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index f928a73272d..f23283e6ddd 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3627,17 +3627,3 @@ static void virt_machine_6_2_options(MachineClass *mc)
vmc->no_tcg_lpa2 = true;
}
DEFINE_VIRT_MACHINE(6, 2)
-
-static void virt_machine_6_1_options(MachineClass *mc)
-{
- VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
-
- virt_machine_6_2_options(mc);
- compat_props_add(mc->compat_props, hw_compat_6_1, hw_compat_6_1_len);
- mc->smp_props.prefer_sockets = true;
- vmc->no_cpu_topology = true;
-
- /* qemu ITS was introduced with 6.2 */
- vmc->no_tcg_its = true;
-}
-DEFINE_VIRT_MACHINE(6, 1)
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 13/20] hw/arm/virt: Remove VirtMachineClass::no_tcg_its field
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (11 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 12/20] hw/arm/virt: Remove deprecated virt-6.1 machine Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 14/20] hw/arm/virt: Remove VirtMachineClass::no_cpu_topology field Philippe Mathieu-Daudé
` (7 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
The VirtMachineClass::no_tcg_its field was only used by the
virt-6.1 machine, which got removed. Remove it as now unused,
along with the VirtMachineState::tcg_its field.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/arm/virt.h | 2 --
hw/arm/virt.c | 12 ++++--------
2 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h
index c5ccd6ec9ea..21d91a43d8b 100644
--- a/include/hw/arm/virt.h
+++ b/include/hw/arm/virt.h
@@ -121,7 +121,6 @@ typedef enum VirtGICType {
struct VirtMachineClass {
MachineClass parent;
- bool no_tcg_its;
bool no_highmem_compact;
/* Machines < 6.2 have no support for describing cpu topology to guest */
bool no_cpu_topology;
@@ -144,7 +143,6 @@ struct VirtMachineState {
bool highmem_mmio;
bool highmem_redists;
bool its;
- bool tcg_its;
bool virt;
bool ras;
bool mte;
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index f23283e6ddd..3e7858d6e11 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -735,7 +735,7 @@ static void create_its(VirtMachineState *vms)
DeviceState *dev;
assert(vms->its);
- if (!kvm_irqchip_in_kernel() && !vms->tcg_its) {
+ if (!kvm_irqchip_in_kernel()) {
/*
* Do nothing if ITS is neither supported by the host nor emulated by
* the machine.
@@ -857,11 +857,9 @@ static void create_gic(VirtMachineState *vms, MemoryRegion *mem)
redist_region_count);
if (!kvm_irqchip_in_kernel()) {
- if (vms->tcg_its) {
- object_property_set_link(OBJECT(vms->gic), "sysmem",
- OBJECT(mem), &error_fatal);
- qdev_prop_set_bit(vms->gic, "has-lpi", true);
- }
+ object_property_set_link(OBJECT(vms->gic), "sysmem",
+ OBJECT(mem), &error_fatal);
+ qdev_prop_set_bit(vms->gic, "has-lpi", true);
} else if (vms->virt) {
qdev_prop_set_uint32(vms->gic, "maintenance-interrupt-id",
ARCH_GIC_MAINT_IRQ);
@@ -3471,8 +3469,6 @@ static void virt_instance_init(Object *obj)
/* Default allows ITS instantiation */
vms->its = true;
- /* Allow ITS emulation if the machine version supports it */
- vms->tcg_its = !vmc->no_tcg_its;
/* Default disallows iommu instantiation */
vms->iommu = VIRT_IOMMU_NONE;
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 14/20] hw/arm/virt: Remove VirtMachineClass::no_cpu_topology field
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (12 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 13/20] hw/arm/virt: Remove VirtMachineClass::no_tcg_its field Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 15/20] hw/arm/virt: Remove deprecated virt-6.2 machine Philippe Mathieu-Daudé
` (6 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
The VirtMachineClass::no_cpu_topology field was
only used by virt-6.1 machine, which got removed.
Remove it as now unused.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/arm/virt.h | 2 -
hw/arm/virt-acpi-build.c | 9 ++---
hw/arm/virt.c | 85 +++++++++++++++++++---------------------
3 files changed, 43 insertions(+), 53 deletions(-)
diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h
index 21d91a43d8b..ca2e59ec569 100644
--- a/include/hw/arm/virt.h
+++ b/include/hw/arm/virt.h
@@ -122,8 +122,6 @@ typedef enum VirtGICType {
struct VirtMachineClass {
MachineClass parent;
bool no_highmem_compact;
- /* Machines < 6.2 have no support for describing cpu topology to guest */
- bool no_cpu_topology;
bool no_tcg_lpa2;
bool no_ns_el2_virt_timer_irq;
bool no_nested_smmu;
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
index 5db5baa7cf3..8d40570c1e3 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi-build.c
@@ -1110,7 +1110,6 @@ static const AcpiNotificationSourceId hest_ghes_notify_10_0[] = {
static
void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables)
{
- VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms);
GArray *table_offsets;
unsigned dsdt, xsdt;
GArray *tables_blob = tables->table_data;
@@ -1134,11 +1133,9 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables)
acpi_add_table(table_offsets, tables_blob);
build_madt(tables_blob, tables->linker, vms);
- if (!vmc->no_cpu_topology) {
- acpi_add_table(table_offsets, tables_blob);
- build_pptt(tables_blob, tables->linker, ms,
- vms->oem_id, vms->oem_table_id);
- }
+ acpi_add_table(table_offsets, tables_blob);
+ build_pptt(tables_blob, tables->linker, ms,
+ vms->oem_id, vms->oem_table_id);
acpi_add_table(table_offsets, tables_blob);
build_gtdt(tables_blob, tables->linker, vms);
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 3e7858d6e11..4243da3c87e 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -431,7 +431,6 @@ static void fdt_add_cpu_nodes(const VirtMachineState *vms)
int cpu;
int addr_cells = 1;
const MachineState *ms = MACHINE(vms);
- const VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms);
int smp_cpus = ms->smp.cpus;
/*
@@ -488,57 +487,53 @@ static void fdt_add_cpu_nodes(const VirtMachineState *vms)
ms->possible_cpus->cpus[cs->cpu_index].props.node_id);
}
- if (!vmc->no_cpu_topology) {
- qemu_fdt_setprop_cell(ms->fdt, nodename, "phandle",
- qemu_fdt_alloc_phandle(ms->fdt));
- }
+ qemu_fdt_setprop_cell(ms->fdt, nodename, "phandle",
+ qemu_fdt_alloc_phandle(ms->fdt));
g_free(nodename);
}
- if (!vmc->no_cpu_topology) {
- /*
- * Add vCPU topology description through fdt node cpu-map.
- *
- * See Linux Documentation/devicetree/bindings/cpu/cpu-topology.txt
- * In a SMP system, the hierarchy of CPUs can be defined through
- * four entities that are used to describe the layout of CPUs in
- * the system: socket/cluster/core/thread.
- *
- * A socket node represents the boundary of system physical package
- * and its child nodes must be one or more cluster nodes. A system
- * can contain several layers of clustering within a single physical
- * package and cluster nodes can be contained in parent cluster nodes.
- *
- * Note: currently we only support one layer of clustering within
- * each physical package.
- */
- qemu_fdt_add_subnode(ms->fdt, "/cpus/cpu-map");
+ /*
+ * Add vCPU topology description through fdt node cpu-map.
+ *
+ * See Linux Documentation/devicetree/bindings/cpu/cpu-topology.txt
+ * In a SMP system, the hierarchy of CPUs can be defined through
+ * four entities that are used to describe the layout of CPUs in
+ * the system: socket/cluster/core/thread.
+ *
+ * A socket node represents the boundary of system physical package
+ * and its child nodes must be one or more cluster nodes. A system
+ * can contain several layers of clustering within a single physical
+ * package and cluster nodes can be contained in parent cluster nodes.
+ *
+ * Note: currently we only support one layer of clustering within
+ * each physical package.
+ */
+ qemu_fdt_add_subnode(ms->fdt, "/cpus/cpu-map");
- for (cpu = smp_cpus - 1; cpu >= 0; cpu--) {
- char *cpu_path = g_strdup_printf("/cpus/cpu@%d", cpu);
- char *map_path;
+ for (cpu = smp_cpus - 1; cpu >= 0; cpu--) {
+ char *cpu_path = g_strdup_printf("/cpus/cpu@%d", cpu);
+ char *map_path;
- if (ms->smp.threads > 1) {
- map_path = g_strdup_printf(
- "/cpus/cpu-map/socket%d/cluster%d/core%d/thread%d",
- cpu / (ms->smp.clusters * ms->smp.cores * ms->smp.threads),
- (cpu / (ms->smp.cores * ms->smp.threads)) % ms->smp.clusters,
- (cpu / ms->smp.threads) % ms->smp.cores,
- cpu % ms->smp.threads);
- } else {
- map_path = g_strdup_printf(
- "/cpus/cpu-map/socket%d/cluster%d/core%d",
- cpu / (ms->smp.clusters * ms->smp.cores),
- (cpu / ms->smp.cores) % ms->smp.clusters,
- cpu % ms->smp.cores);
- }
- qemu_fdt_add_path(ms->fdt, map_path);
- qemu_fdt_setprop_phandle(ms->fdt, map_path, "cpu", cpu_path);
-
- g_free(map_path);
- g_free(cpu_path);
+ if (ms->smp.threads > 1) {
+ map_path = g_strdup_printf(
+ "/cpus/cpu-map/socket%d/cluster%d/core%d/thread%d",
+ cpu / (ms->smp.clusters * ms->smp.cores * ms->smp.threads),
+ (cpu / (ms->smp.cores * ms->smp.threads)) % ms->smp.clusters,
+ (cpu / ms->smp.threads) % ms->smp.cores,
+ cpu % ms->smp.threads);
+ } else {
+ map_path = g_strdup_printf(
+ "/cpus/cpu-map/socket%d/cluster%d/core%d",
+ cpu / (ms->smp.clusters * ms->smp.cores),
+ (cpu / ms->smp.cores) % ms->smp.clusters,
+ cpu % ms->smp.cores);
}
+ qemu_fdt_add_path(ms->fdt, map_path);
+ qemu_fdt_setprop_phandle(ms->fdt, map_path, "cpu", cpu_path);
+
+ g_free(map_path);
+ g_free(cpu_path);
}
}
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 15/20] hw/arm/virt: Remove deprecated virt-6.2 machine
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (13 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 14/20] hw/arm/virt: Remove VirtMachineClass::no_cpu_topology field Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 16/20] hw/arm/virt: Remove VirtMachineClass::no_tcg_lpa2 field Philippe Mathieu-Daudé
` (5 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
This machine has been supported for a period of more than 6 years.
According to our versioned machine support policy (see commit
ce80c4fa6ff "docs: document special exception for machine type
deprecation & removal") it can now be removed.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/arm/virt.c | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 4243da3c87e..d9ec61e7354 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3608,13 +3608,3 @@ static void virt_machine_7_0_options(MachineClass *mc)
compat_props_add(mc->compat_props, hw_compat_7_0, hw_compat_7_0_len);
}
DEFINE_VIRT_MACHINE(7, 0)
-
-static void virt_machine_6_2_options(MachineClass *mc)
-{
- VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
-
- virt_machine_7_0_options(mc);
- compat_props_add(mc->compat_props, hw_compat_6_2, hw_compat_6_2_len);
- vmc->no_tcg_lpa2 = true;
-}
-DEFINE_VIRT_MACHINE(6, 2)
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 16/20] hw/arm/virt: Remove VirtMachineClass::no_tcg_lpa2 field
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (14 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 15/20] hw/arm/virt: Remove deprecated virt-6.2 machine Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 17/20] hw/arm/virt: Remove deprecated virt-7.0 machine Philippe Mathieu-Daudé
` (4 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
The VirtMachineClass::no_tcg_lpa2 field was
only used by virt-7.1 machine, which got removed.
Remove it as now unused.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/arm/virt.h | 1 -
hw/arm/virt.c | 4 ----
2 files changed, 5 deletions(-)
diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h
index ca2e59ec569..ddbd2d78209 100644
--- a/include/hw/arm/virt.h
+++ b/include/hw/arm/virt.h
@@ -122,7 +122,6 @@ typedef enum VirtGICType {
struct VirtMachineClass {
MachineClass parent;
bool no_highmem_compact;
- bool no_tcg_lpa2;
bool no_ns_el2_virt_timer_irq;
bool no_nested_smmu;
};
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index d9ec61e7354..eb0e0e1bee3 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -2355,10 +2355,6 @@ static void machvirt_init(MachineState *machine)
object_property_set_bool(cpuobj, "has_el2", false, NULL);
}
- if (vmc->no_tcg_lpa2 && object_property_find(cpuobj, "lpa2")) {
- object_property_set_bool(cpuobj, "lpa2", false, NULL);
- }
-
if (object_property_find(cpuobj, "reset-cbar")) {
object_property_set_int(cpuobj, "reset-cbar",
vms->memmap[VIRT_CPUPERIPHS].base,
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 17/20] hw/arm/virt: Remove deprecated virt-7.0 machine
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (15 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 16/20] hw/arm/virt: Remove VirtMachineClass::no_tcg_lpa2 field Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 18/20] hw/arm/virt: Remove deprecated virt-7.1 machine Philippe Mathieu-Daudé
` (3 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
This machine has been supported for a period of more than 6 years.
According to our versioned machine support policy (see commit
ce80c4fa6ff "docs: document special exception for machine type
deprecation & removal") it can now be removed.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/arm/virt.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index eb0e0e1bee3..7218badc8c7 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3597,10 +3597,3 @@ static void virt_machine_7_1_options(MachineClass *mc)
vmc->no_highmem_compact = true;
}
DEFINE_VIRT_MACHINE(7, 1)
-
-static void virt_machine_7_0_options(MachineClass *mc)
-{
- virt_machine_7_1_options(mc);
- compat_props_add(mc->compat_props, hw_compat_7_0, hw_compat_7_0_len);
-}
-DEFINE_VIRT_MACHINE(7, 0)
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 18/20] hw/arm/virt: Remove deprecated virt-7.1 machine
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (16 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 17/20] hw/arm/virt: Remove deprecated virt-7.0 machine Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 19/20] hw/arm/virt: Remove VirtMachineClass::no_highmem_compact field Philippe Mathieu-Daudé
` (2 subsequent siblings)
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
This machine has been supported for a period of more than 6 years.
According to our versioned machine support policy (see commit
ce80c4fa6ff "docs: document special exception for machine type
deprecation & removal") it can now be removed.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/arm/virt.c | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 7218badc8c7..4a8a2a91b07 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3586,14 +3586,3 @@ static void virt_machine_7_2_options(MachineClass *mc)
compat_props_add(mc->compat_props, hw_compat_7_2, hw_compat_7_2_len);
}
DEFINE_VIRT_MACHINE(7, 2)
-
-static void virt_machine_7_1_options(MachineClass *mc)
-{
- VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
-
- virt_machine_7_2_options(mc);
- compat_props_add(mc->compat_props, hw_compat_7_1, hw_compat_7_1_len);
- /* Compact layout for high memory regions was introduced with 7.2 */
- vmc->no_highmem_compact = true;
-}
-DEFINE_VIRT_MACHINE(7, 1)
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 19/20] hw/arm/virt: Remove VirtMachineClass::no_highmem_compact field
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (17 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 18/20] hw/arm/virt: Remove deprecated virt-7.1 machine Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 20/20] hw/arm/virt: Remove deprecated virt-7.2 machine Philippe Mathieu-Daudé
2025-10-17 13:18 ` [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Daniel P. Berrangé
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
The VirtMachineClass::no_highmem_compact field was
only used by virt-7.1 machine, which got removed.
Remove it as now unused.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
include/hw/arm/virt.h | 1 -
hw/arm/virt.c | 3 +--
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h
index ddbd2d78209..0d2a951cf08 100644
--- a/include/hw/arm/virt.h
+++ b/include/hw/arm/virt.h
@@ -121,7 +121,6 @@ typedef enum VirtGICType {
struct VirtMachineClass {
MachineClass parent;
- bool no_highmem_compact;
bool no_ns_el2_virt_timer_irq;
bool no_nested_smmu;
};
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 4a8a2a91b07..651ad4b5f63 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3438,7 +3438,6 @@ static void virt_machine_class_init(ObjectClass *oc, const void *data)
static void virt_instance_init(Object *obj)
{
VirtMachineState *vms = VIRT_MACHINE(obj);
- VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms);
/* EL3 is disabled by default on virt: this makes us consistent
* between KVM and TCG for this board, and it also allows us to
@@ -3451,7 +3450,7 @@ static void virt_instance_init(Object *obj)
/* High memory is enabled by default */
vms->highmem = true;
- vms->highmem_compact = !vmc->no_highmem_compact;
+ vms->highmem_compact = true;
vms->gic_version = VIRT_GIC_VERSION_NOSEL;
vms->highmem_ecam = true;
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 20/20] hw/arm/virt: Remove deprecated virt-7.2 machine
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (18 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 19/20] hw/arm/virt: Remove VirtMachineClass::no_highmem_compact field Philippe Mathieu-Daudé
@ 2025-10-17 13:08 ` Philippe Mathieu-Daudé
2025-10-17 13:18 ` [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Daniel P. Berrangé
20 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:08 UTC (permalink / raw)
To: qemu-devel
Cc: Michael S. Tsirkin, Igor Mammedov, Andrew Jones, Ani Sinha,
qemu-arm, Shannon Zhao, Peter Maydell,
Philippe Mathieu-Daudé
This machine has been supported for a period of more than 6 years.
According to our versioned machine support policy (see commit
ce80c4fa6ff "docs: document special exception for machine type
deprecation & removal") it can now be removed.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/arm/virt.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 651ad4b5f63..2da5b014e2a 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3578,10 +3578,3 @@ static void virt_machine_8_0_options(MachineClass *mc)
compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
}
DEFINE_VIRT_MACHINE(8, 0)
-
-static void virt_machine_7_2_options(MachineClass *mc)
-{
- virt_machine_8_0_options(mc);
- compat_props_add(mc->compat_props, hw_compat_7_2, hw_compat_7_2_len);
-}
-DEFINE_VIRT_MACHINE(7, 2)
--
2.51.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
` (19 preceding siblings ...)
2025-10-17 13:08 ` [PATCH 20/20] hw/arm/virt: Remove deprecated virt-7.2 machine Philippe Mathieu-Daudé
@ 2025-10-17 13:18 ` Daniel P. Berrangé
2025-10-17 13:39 ` Philippe Mathieu-Daudé
20 siblings, 1 reply; 23+ messages in thread
From: Daniel P. Berrangé @ 2025-10-17 13:18 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Michael S. Tsirkin, Igor Mammedov, Andrew Jones,
Ani Sinha, qemu-arm, Shannon Zhao, Peter Maydell
On Fri, Oct 17, 2025 at 03:07:59PM +0200, Philippe Mathieu-Daudé wrote:
> Remove the deprecated virt-4.1 up to virt-7.2 machines,
> which are older than 6 years. Remove resulting dead code.
Nope, that's too aggressive here too. Only the 4.1/4.2 machines
can be removed. The others are all still reported as being valid
machines with '-machine help' - they'll be automatically removed
from that list once their expiry release cycle is started.
>
> Philippe Mathieu-Daudé (20):
> hw/arm/virt: Remove deprecated virt-4.1 machine
> hw/arm/virt: Remove VirtMachineClass::no_ged field
> hw/arm/virt: Remove deprecated virt-4.2 machine
> hw/arm/virt: Remove VirtMachineClass::kvm_no_adjvtime field
> hw/arm/virt: Remove deprecated virt-5.0 machine
> hw/arm/virt: Remove VirtMachineClass::acpi_expose_flash field
> hw/arm/virt: Remove deprecated virt-5.1 machine
> hw/arm/virt: Remove VirtMachineClass::no_kvm_steal_time field
> hw/arm/virt: Remove deprecated virt-5.2 machine
> hw/arm/virt: Remove VirtMachineClass::no_secure_gpio field
> hw/arm/virt: Remove deprecated virt-6.0 machine
> hw/arm/virt: Remove deprecated virt-6.1 machine
> hw/arm/virt: Remove VirtMachineClass::no_tcg_its field
> hw/arm/virt: Remove VirtMachineClass::no_cpu_topology field
> hw/arm/virt: Remove deprecated virt-6.2 machine
> hw/arm/virt: Remove VirtMachineClass::no_tcg_lpa2 field
> hw/arm/virt: Remove deprecated virt-7.0 machine
> hw/arm/virt: Remove deprecated virt-7.1 machine
> hw/arm/virt: Remove VirtMachineClass::no_highmem_compact field
> hw/arm/virt: Remove deprecated virt-7.2 machine
>
> include/hw/arm/virt.h | 11 --
> hw/arm/virt-acpi-build.c | 37 +------
> hw/arm/virt.c | 228 ++++++++-------------------------------
> 3 files changed, 50 insertions(+), 226 deletions(-)
>
> --
> 2.51.0
>
>
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines
2025-10-17 13:18 ` [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Daniel P. Berrangé
@ 2025-10-17 13:39 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-17 13:39 UTC (permalink / raw)
To: Daniel P. Berrangé
Cc: qemu-devel, Michael S. Tsirkin, Igor Mammedov, Andrew Jones,
Ani Sinha, qemu-arm, Shannon Zhao, Peter Maydell
On 17/10/25 15:18, Daniel P. Berrangé wrote:
> On Fri, Oct 17, 2025 at 03:07:59PM +0200, Philippe Mathieu-Daudé wrote:
>> Remove the deprecated virt-4.1 up to virt-7.2 machines,
>> which are older than 6 years. Remove resulting dead code.
>
> Nope, that's too aggressive here too. Only the 4.1/4.2 machines
> can be removed. The others are all still reported as being valid
> machines with '-machine help' - they'll be automatically removed
> from that list once their expiry release cycle is started.
Right :/
>>
>> Philippe Mathieu-Daudé (20):
>> hw/arm/virt: Remove deprecated virt-4.1 machine
>> hw/arm/virt: Remove VirtMachineClass::no_ged field
>> hw/arm/virt: Remove deprecated virt-4.2 machine
>> hw/arm/virt: Remove VirtMachineClass::kvm_no_adjvtime field
So please only consider these 4 patches to review then.
Thanks,
Phil.
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2025-10-17 13:40 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-17 13:07 [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 01/20] hw/arm/virt: Remove deprecated virt-4.1 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 02/20] hw/arm/virt: Remove VirtMachineClass::no_ged field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 03/20] hw/arm/virt: Remove deprecated virt-4.2 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 04/20] hw/arm/virt: Remove VirtMachineClass::kvm_no_adjvtime field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 05/20] hw/arm/virt: Remove deprecated virt-5.0 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 06/20] hw/arm/virt: Remove VirtMachineClass::acpi_expose_flash field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 07/20] hw/arm/virt: Remove deprecated virt-5.1 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 08/20] hw/arm/virt: Remove VirtMachineClass::no_kvm_steal_time field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 09/20] hw/arm/virt: Remove deprecated virt-5.2 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 10/20] hw/arm/virt: Remove VirtMachineClass::no_secure_gpio field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 11/20] hw/arm/virt: Remove deprecated virt-6.0 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 12/20] hw/arm/virt: Remove deprecated virt-6.1 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 13/20] hw/arm/virt: Remove VirtMachineClass::no_tcg_its field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 14/20] hw/arm/virt: Remove VirtMachineClass::no_cpu_topology field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 15/20] hw/arm/virt: Remove deprecated virt-6.2 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 16/20] hw/arm/virt: Remove VirtMachineClass::no_tcg_lpa2 field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 17/20] hw/arm/virt: Remove deprecated virt-7.0 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 18/20] hw/arm/virt: Remove deprecated virt-7.1 machine Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 19/20] hw/arm/virt: Remove VirtMachineClass::no_highmem_compact field Philippe Mathieu-Daudé
2025-10-17 13:08 ` [PATCH 20/20] hw/arm/virt: Remove deprecated virt-7.2 machine Philippe Mathieu-Daudé
2025-10-17 13:18 ` [PATCH 00/20] hw/arm/virt: Remove virt-4.1 -> virt-7.2 machines Daniel P. Berrangé
2025-10-17 13:39 ` Philippe Mathieu-Daudé
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).