|
From: | Zenghui Yu |
Subject: | Re: [PATCH 1/2] hw/arm/virt: Consolidate GIC finalize logic |
Date: | Wed, 21 Dec 2022 11:35:29 +0800 |
User-agent: | Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 |
On 2022/12/21 7:04, Alexander Graf wrote:
diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h index c7dd59d7f1..365d19f7a3 100644 --- a/include/hw/arm/virt.h +++ b/include/hw/arm/virt.h @@ -109,12 +109,12 @@ typedef enum VirtMSIControllerType { } VirtMSIControllerType;typedef enum VirtGICType {- VIRT_GIC_VERSION_MAX, - VIRT_GIC_VERSION_HOST, - VIRT_GIC_VERSION_2, - VIRT_GIC_VERSION_3, - VIRT_GIC_VERSION_4, - VIRT_GIC_VERSION_NOSEL, + VIRT_GIC_VERSION_MAX = 0, + VIRT_GIC_VERSION_HOST = 1, + VIRT_GIC_VERSION_NOSEL = 2, + VIRT_GIC_VERSION_2 = (1 << 2), + VIRT_GIC_VERSION_3 = (1 << 3), + VIRT_GIC_VERSION_4 = (1 << 4),
This would break the ACPI case. When building the MADT, we currently write the raw vms->gic_version value into "GIC version" field of the GICD structure. This happens to work because VIRT_GIC_VERSION_x == x (by luck, I think). We may need to fix build_madt() before this change. |static void |build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) |{ | /* GIC version */ | build_append_int_noprefix(table_data, vms->gic_version, 1);
[Prev in Thread] | Current Thread | [Next in Thread] |