summaryrefslogtreecommitdiff
path: root/src/soc/intel/common/block/cpu/Kconfig
blob: d42824c4cee5a7f44ef2db7e7a2c4a12fe4ac1c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
config SOC_INTEL_COMMON_BLOCK_CPU
	bool
	default n
	help
	  This option selects Intel Common CPU Model support code
	  which provides various CPU related APIs which are common
	  between all Intel Processor families. Common CPU code is supported
	  for SOCs starting from SKL,KBL,APL, and future.

config SOC_INTEL_COMMON_BLOCK_CPU_MPINIT
	bool
	default n
	help
	  This option selects Intel Common CPU MP Init code. In
	  this common MP Init mechanism, the MP Init is occurring before
	  calling FSP Silicon Init. Hence, MP Init will be pulled to
	  BS_DEV_INIT_CHIPS Entry. And on Exit of BS_DEV_INIT, it is
	  ensured that all MTRRs are re-programmed based on the DRAM
	  resource settings.

config SOC_INTEL_COMMON_BLOCK_CPU_SMMRELOCATE
	bool
	depends on SOC_INTEL_COMMON_BLOCK_CPU

config SOC_INTEL_COMMON_BLOCK_CAR
	bool
	default n
	help
	  This option allows you to select how cache-as-ram (CAR) is set up.

config INTEL_CAR_NEM
	bool
	default n
	help
	  Traditionally, CAR is set up by using Non-Evict mode. This method
	  does not allow CAR and cache to co-exist, because cache fills are
	  blocked in NEM.

config INTEL_CAR_CQOS
	bool
	default n
	help
	  Cache Quality of Service allows more fine-grained control of cache
	  usage. As result, it is possible to set up a portion of L2 cache for
	  CAR and use the remainder for actual caching.

config INTEL_CAR_NEM_ENHANCED
	bool
	default n
	help
	  A current limitation of NEM (Non-Evict mode) is that code and data sizes
	  are derived from the requirement to not write out any modified cache line.
	  With NEM, if there is no physical memory behind the cached area,
	  the modified data will be lost and NEM results will be inconsistent.
	  ENHANCED NEM guarantees that modified data is always
	  kept in cache while clean data is replaced.

config CAR_HAS_SF_MASKS
	bool
	depends on INTEL_CAR_NEM_ENHANCED
	help
	  In the case of non-inclusive cache architecture Snoop Filter MSR
	  IA32_L3_SF_MASK_x programming is required along with the data ways.
	  This is applicable for TGL and beyond.

config SF_MASK_2WAYS_PER_BIT
	bool
	depends on INTEL_CAR_NEM_ENHANCED
	help
	  In the case of non-inclusive cache architecture when two ways in
	  the SF mask are controlled by one bit of the SF QoS register.
	  This is applicable for TGL alone.

config COS_MAPPED_TO_MSB
	bool
	depends on INTEL_CAR_NEM_ENHANCED
	help
	  On TGL and JSL platform the class of service configuration
	  is mapped to MSB of MSR IA32_PQR_ASSOC.

config CAR_HAS_L3_PROTECTED_WAYS
	bool
	depends on INTEL_CAR_NEM_ENHANCED
	help
	  On ADL and onwards platform has a newer requirement to protect
	  L3 ways in Non-Inclusive eNEM mode. Hence, MSR 0xc85 is to program
	  the data ways.

config USE_INTEL_FSP_MP_INIT
	bool "Perform MP Initialization by FSP"
	default n
	depends on !USE_INTEL_FSP_TO_CALL_COREBOOT_PUBLISH_MP_PPI
	help
	  This option allows FSP to perform multiprocessor initialization.

config USE_INTEL_FSP_TO_CALL_COREBOOT_PUBLISH_MP_PPI
	bool "Perform MP Initialization by FSP using coreboot MP PPI service"
	default y if MP_SERVICES_PPI
	default n
	help
	  This option allows FSP to make use of MP services PPI published by
	  coreboot to perform multiprocessor initialization.

config CPU_SUPPORTS_INTEL_TME
	bool
	default n
	help
	  Select this if the SoC supports Intel Total Memory Encryption (TME).

config INTEL_TME
	bool "Total Memory Encryption (TME)/Multi-key TME (MKTME)"
	depends on CPU_SUPPORTS_INTEL_TME
	default y
	help
	 Enable Total Memory Encryption (TME)/Multi-key TME (MKTME). The spec is
	 available at "https://software.intel.com/sites/default/files/managed/a5
	 /16/Multi-Key-Total-Memory-Encryption-Spec.pdf". If CPU supports TME,
	 it would get enabled. If CPU supports MKTME, this same config option
	 enables MKTME.

config CPU_XTAL_HZ
	int
	help
	  Base clock which virtually everything runs on.

config CPU_SUPPORTS_PM_TIMER_EMULATION
	bool
	default n
	help
	  Select this if the SoC's ucode supports PM ACPI timer emulation (Common
	  timer Copy), which is required to be able to disable the TCO PM ACPI
	  timer for power saving.

config SOC_INTEL_NO_BOOTGUARD_MSR
	bool
	help
	  Select this on platforms that do not support Bootguard related MSRs
	  0x139, MSR_BC_PBEC and 0x13A, MSR_BOOT_GUARD_SACM_INFO.

config SOC_INTEL_DISABLE_POWER_LIMITS
	bool
	default n
	help
	  Select this if the Running Average Power Limits (RAPL) algorithm
	  for constant power management is not needed.

config SOC_INTEL_SET_MIN_CLOCK_RATIO
	bool
	depends on !SOC_INTEL_DISABLE_POWER_LIMITS
	default n
	help
	  If the power budget of the mainboard is limited, it can be useful to
	  limit the CPU power dissipation at the cost of performance by setting
	  the lowest possible CPU clock. Enable this option if you need smallest
	  possible CPU clock. This setting can be overruled by the OS if it has an
	  p-state driver which can adjust the clock to its need.

config HAVE_HYPERTHREADING
	def_bool n

config FSP_HYPERTHREADING
	bool "Enable Hyper-Threading"
	depends on HAVE_HYPERTHREADING
	default y