freebsd-nq/sys/amd64
Konstantin Belousov 2343757338 Align IA32_ARCH_CAP MSR definitions and use with SDM rev. 068.
SDM rev. 068 was released yesterday and it contains the description of
the MSR 0x10a IA32_ARCH_CAP. This change adds symbolic definitions for
all bits present in the document, and decode them in the CPU
identification lines printed on boot.

But also, the document defines SSB_NO as bit 4, while FreeBSD used but
2 to detect the need to work-around Speculative Store Bypass
issue.  Change code to use the bit from SDM.

Similarly, the document describes bit 3 as an indicator that L1TF
issue is not present, in particular, no L1D flush is needed on
VMENTRY.  We used RDCL_NO to avoid flushing, and again I changed the
code to follow new spec from SDM.

In fact my Apollo Lake machine with latest ucode shows this:
    IA32_ARCH_CAPS=0x19<RDCL_NO,SKIP_L1DFL_VME,SSB_NO>

Reviewed by:	bwidawsk
Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
Differential revision:	https://reviews.freebsd.org/D18006
2018-11-16 21:27:11 +00:00
..
acpica
amd64 amd64: handle small memset buffers with overlapping stores 2018-11-16 00:44:22 +00:00
cloudabi32
cloudabi64
conf Add ZFS to amd64 NOTES to catch future breakage of static linking 2018-11-13 23:08:46 +00:00
ia32 amd64: flush L1 data cache on syscall return with an error. 2018-10-20 23:17:24 +00:00
include Add a custom implementation of cpu_lock_delay() for x86. 2018-11-05 22:54:03 +00:00
linux Regenerated assorted syscall related files after: 2018-10-09 20:42:17 +00:00
linux32 Fix builds with COMPAT_LINUX32 in the kernel config. 2018-11-06 15:29:44 +00:00
pci Do not flush cache for PCIe config window. 2018-10-18 20:49:16 +00:00
sgx
vmm Align IA32_ARCH_CAP MSR definitions and use with SDM rev. 068. 2018-11-16 21:27:11 +00:00
Makefile