freebsd-dev/sys/x86
Marius Strobl 15f0034553 With the advent of interrupt remapping, Intel has repurposed bit 11
(now: Interrupt_Index[15]) and assigned the previously reserved bits
55:48 (Interrupt_Index[14:0] goes into 63:49 while Destination Field
used 63:56 and bit 48 now is Interrupt_Format) in the IO redirection
tables (see the VT-d specification, "5.1.5.1 I/OxAPIC Programming").
Thus, when not using interrupt remapping, ensure that all previously
reserved bits in the high part of the RTEs are zero instead of doing
a read-modify-write for their Destination Field bits only.
Otherwise, on machines based on Apollo Lake and its derivatives such
as Denverton, typically some of the previously preserved bits remain
set after boot when not employing interrupt remapping. The result is
that INTx interrupts are not getting delivered.
Note: With an AMD IOMMU, interrupt remapping apparently bypasses the
IO APIC altogether.

Submitted by:	loos (modulo comment)
Reviewed by:	jhb (modulo comment)
2017-12-28 21:46:09 +00:00
..
acpica Use resume_cpus() instead of restart_cpus() to resume from ACPI suspension. 2017-12-21 09:17:48 +00:00
bios sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
cpufreq Properly skip the first CPU. It only accidentally worked because the 2017-11-30 20:21:42 +00:00
include Introduce an architecture-agnostic <sys/_stdarg.h> to reduce 2017-12-25 20:54:00 +00:00
iommu sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
isa Further investigation shows this shouldn't have been added at all. 2017-12-24 17:59:48 +00:00
pci sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
x86 With the advent of interrupt remapping, Intel has repurposed bit 11 2017-12-28 21:46:09 +00:00
xen sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00