amd_iommu: report x2APIC support to the operating system
commit328a11a08a70ca9e565cee807eb74e1e59e1b5d9
authorBui Quang Minh <minhquangbui99@gmail.com>
Thu, 11 Jan 2024 15:44:03 +0000 (11 22:44 +0700)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 14 Feb 2024 11:09:32 +0000 (14 06:09 -0500)
tree833e1c3b1714887ee3a1961699fa6dd1cbc7f343
parent595cd6fd9dffe51ef3fdb3077979a87ff2947b1f
amd_iommu: report x2APIC support to the operating system

This commit adds XTSup configuration to let user choose to whether enable
this feature or not. When XTSup is enabled, additional bytes in IRTE with
enabled guest virtual VAPIC are used to support 32-bit destination id.

Additionally, this commit exports IVHD type 0x11 besides the old IVHD type
0x10 in ACPI table. IVHD type 0x10 does not report full set of IOMMU
features only the legacy ones, so operating system (e.g. Linux) may only
detects x2APIC support if IVHD type 0x11 is available. The IVHD type 0x10
is kept so that old operating system that only parses type 0x10 can detect
the IOMMU device.

Besides, an amd_iommu-stub.c file is created to provide the definition for
amdvi_extended_feature_register when CONFIG_AMD_IOMMU=n. This function is
used by acpi-build.c to get the extended feature register value for
building the ACPI table. When CONFIG_AMD_IOMMU=y, this function is defined
in amd_iommu.c.

Signed-off-by: Bui Quang Minh <minhquangbui99@gmail.com>
Message-Id: <20240111154404.5333-7-minhquangbui99@gmail.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/i386/acpi-build.c
hw/i386/amd_iommu-stub.c [new file with mode: 0644]
hw/i386/amd_iommu.c
hw/i386/amd_iommu.h
hw/i386/meson.build