HomeFreeBSD

vmm/amd: add ivhd device with a higher order

Description

vmm/amd: add ivhd device with a higher order

ivhd should attach after the root PCI bus and, thus, after the ACPI
Host-PCI bridge off which the bus hangs. This is because ivhd changes
PCI configuration of a PCI IOMMU device that is located on the root bus.
If the bus attaches after ivhd it clears the MSI portion of the
configuration. As a result IOMMU event interrupts would never be
delivered.

For regular ACPI devices the order is calculated as

ACPI_DEV_BASE_ORDER + level * 10

where level is a depth of the device in the ACPI namespace.
I expect the depth of the Host-PCI bridge to be two or three,
so ACPI_DEV_BASE_ORDER + 10 * 10 should be a sufficiently safe order
for ivhd.

This should fix the setup of the AMD-Vi event interrupt when vmm is
preloaded (as opposed to kldload-ed).

Details

Provenance
avgAuthored on
Parents
rS326537: amd-vi: clear event interrupt and overflow bits upon handling the interrupt
Branches
Unknown
Tags
Unknown