VT-d: Tylersburg isoch DMAR unit with no TLB space
authorJan Beulich <jbeulich@suse.com>
Tue, 12 Oct 2021 09:57:08 +0000 (11:57 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 12 Oct 2021 09:57:08 +0000 (11:57 +0200)
commitd3b05f9b16d6ba9c550c3a35ac11ed292bf87f68
tree6ccdc85dd30dc2493255df2de219b0d9b1702dc6
parent2d7f191b392e3efaf4f6e18e14b0b3c43a9e268b
VT-d: Tylersburg isoch DMAR unit with no TLB space

BIOSes, when enabling the dedicated DMAR unit for the sound device,
need to also set a non-zero number of TLB entries in a respective
system management register (VTISOCHCTRL). At least one BIOS is known
to fail to do so, causing the VT-d engine to deadlock when used.

Vaguely based on Linux'es e0fc7e0b4b5e ("intel-iommu: Yet another BIOS
workaround: Isoch DMAR unit with no TLB space").

To limit message string redundancy, fold parts with the IGD quirk logic.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
xen/drivers/passthrough/vtd/extern.h
xen/drivers/passthrough/vtd/iommu.c
xen/drivers/passthrough/vtd/quirks.c