freebsd-skq/sys/x86/include
Konstantin Belousov 4c918926cd Add x2APIC support. Enable it by default if CPU is capable. The
hw.x2apic_enable tunable allows disabling it from the loader prompt.

To closely repeat effects of the uncached memory ops when accessing
registers in the xAPIC mode, the x2APIC writes to MSRs are preceeded
by mfence, except for the EOI notifications.  This is probably too
strict, only ICR writes to send IPI require serialization to ensure
that other CPUs see the previous actions when IPI is delivered.  This
may be changed later.

In vmm justreturn IPI handler, call doreti_iret instead of doing iretd
inline, to handle corner conditions.

Note that the patch only switches LAPICs into x2APIC mode. It does not
enables FreeBSD to support > 255 CPUs, which requires parsing x2APIC
MADT entries and doing interrupts remapping, but is the required step
on the way.

Reviewed by:	neel
Tested by:	pho (real hardware), neel (on bhyve)
Discussed with:	jhb, grehan
Sponsored by:	The FreeBSD Foundation
MFC after:	2 months
2015-02-09 21:00:56 +00:00
..
_align.h
_inttypes.h
_limits.h
_stdint.h
_types.h Rename __wchar_t so it no longer conflicts with __wchar_t from clang 3.4 2014-04-01 14:46:11 +00:00
acpica_machdep.h x86/madt: make the interrupt override parser a public function 2014-08-04 08:58:50 +00:00
apicreg.h Add x2APIC support. Enable it by default if CPU is capable. The 2015-02-09 21:00:56 +00:00
apicvar.h Add x2APIC support. Enable it by default if CPU is capable. The 2015-02-09 21:00:56 +00:00
apm_bios.h
bus.h Update NetBSD Foundation copyrights to 2-clause BSD 2014-03-18 01:40:25 +00:00
busdma_impl.h Remove redundand declaration, fixing the build with gcc. 2013-10-29 07:25:54 +00:00
dump.h Factor out duplicated code from dumpsys() on each architecture into generic 2015-01-07 01:01:39 +00:00
elf.h
endian.h
fdt.h Retire machine/fdt.h as a header used by MI code, as its function is now 2014-01-05 18:46:58 +00:00
float.h
fpu.h Improve support for XSAVE with debuggers. 2014-11-21 20:53:17 +00:00
frame.h
init.h msi: add Xen MSI implementation 2014-09-30 16:46:45 +00:00
legacyvar.h Add support for managing PCI bus numbers. As with BARs and PCI-PCI bridge 2014-02-12 04:30:37 +00:00
mca.h
mptable.h Use fixed-width types for all fields in MP Table structures and pack 2013-12-11 21:19:04 +00:00
ofw_machdep.h Retire machine/fdt.h as a header used by MI code, as its function is now 2014-01-05 18:46:58 +00:00
pci_cfgreg.h
psl.h x86: Allow users to change PSL_RF via ptrace(PT_SETREGS...) 2013-11-14 15:37:20 +00:00
ptrace.h Improve support for XSAVE with debuggers. 2014-11-21 20:53:17 +00:00
pvclock.h Add interface to derive a TSC frequency from the pvclock 2015-02-04 08:33:04 +00:00
reg.h
segments.h Remove ia64. 2014-07-07 00:27:09 +00:00
setjmp.h
sigframe.h
signal.h
specialreg.h Add x2APIC support. Enable it by default if CPU is capable. The 2015-02-09 21:00:56 +00:00
stdarg.h Add a va_copy() to our fall-back stdarg implementation for use with lint(1) 2013-10-07 10:01:23 +00:00
sysarch.h
trap.h Remove references to an unused fasttrap probe hook, and remove the 2013-10-31 02:35:00 +00:00
ucontext.h
vdso.h
vmware.h Rework virtual machine hypervisor detection. 2014-10-28 19:17:44 +00:00