Print this page
11967 need TAA mitigation
Portions contributed by: Robert Mustacchi <rm@fingolfin.org>
Reviewed by: Dan McDonald <danmcd@joyent.com>
*** 25,35 ****
/*
* Copyright (c) 2010, Intel Corporation.
* All rights reserved.
*/
/*
! * Copyright 2019 Joyent, Inc.
* Copyright 2012 Jens Elkner <jel+illumos@cs.uni-magdeburg.de>
* Copyright 2012 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
* Copyright 2014 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
* Copyright 2018 Nexenta Systems, Inc.
*/
--- 25,35 ----
/*
* Copyright (c) 2010, Intel Corporation.
* All rights reserved.
*/
/*
! * Copyright 2020 Joyent, Inc.
* Copyright 2012 Jens Elkner <jel+illumos@cs.uni-magdeburg.de>
* Copyright 2012 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
* Copyright 2014 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
* Copyright 2018 Nexenta Systems, Inc.
*/
*** 462,471 ****
--- 462,474 ----
#define IA32_ARCH_CAP_IBRS_ALL 0x0002
#define IA32_ARCH_CAP_RSBA 0x0004
#define IA32_ARCH_CAP_SKIP_L1DFL_VMENTRY 0x0008
#define IA32_ARCH_CAP_SSB_NO 0x0010
#define IA32_ARCH_CAP_MDS_NO 0x0020
+ #define IA32_ARCH_CAP_IF_PSCHANGE_MC_NO 0x0040
+ #define IA32_ARCH_CAP_TSX_CTRL 0x0080
+ #define IA32_ARCH_CAP_TAA_NO 0x0100
/*
* Intel Speculation related MSRs
*/
#define MSR_IA32_SPEC_CTRL 0x48
*** 478,487 ****
--- 481,497 ----
#define MSR_IA32_FLUSH_CMD 0x10b
#define IA32_FLUSH_CMD_L1D 0x01
/*
+ * Intel TSX Control MSRs
+ */
+ #define MSR_IA32_TSX_CTRL 0x122
+ #define IA32_TSX_CTRL_RTM_DISABLE 0x01
+ #define IA32_TSX_CTRL_CPUID_CLEAR 0x02
+
+ /*
* Intel Thermal MSRs
*/
#define MSR_IA32_THERM_INTERRUPT 0x19b
#define IA32_THERM_INTERRUPT_HIGH_IE 0x00000001
#define IA32_THERM_INTERRUPT_LOW_IE 0x00000002
*** 681,690 ****
--- 691,702 ----
#define X86FSET_AMD_PCEC 92
#define X86FSET_MD_CLEAR 93
#define X86FSET_MDS_NO 94
#define X86FSET_CORE_THERMAL 95
#define X86FSET_PKG_THERMAL 96
+ #define X86FSET_TSX_CTRL 97
+ #define X86FSET_TAA_NO 98
/*
* Intel Deep C-State invariant TSC in leaf 0x80000007.
*/
#define CPUID_TSC_CSTATE_INVARIANCE (0x100)
*** 1042,1052 ****
#if !defined(_ASM)
#if defined(_KERNEL) || defined(_KMEMUSER)
! #define NUM_X86_FEATURES 97
extern uchar_t x86_featureset[];
extern void free_x86_featureset(void *featureset);
extern boolean_t is_x86_feature(void *featureset, uint_t feature);
extern void add_x86_feature(void *featureset, uint_t feature);
--- 1054,1064 ----
#if !defined(_ASM)
#if defined(_KERNEL) || defined(_KMEMUSER)
! #define NUM_X86_FEATURES 99
extern uchar_t x86_featureset[];
extern void free_x86_featureset(void *featureset);
extern boolean_t is_x86_feature(void *featureset, uint_t feature);
extern void add_x86_feature(void *featureset, uint_t feature);