blob: 99e33bb570fed278a0d69b51fe51839188553a18 [file] [log] [blame]
Stefan Reinauer9d5e36e2015-04-27 13:40:16 -07001config PARALLEL_MP
Kyösti Mälkki41a2c732021-05-29 21:23:18 +03002 def_bool y
3 depends on !LEGACY_SMP_INIT
4 depends on SMP
Stefan Reinauer9d5e36e2015-04-27 13:40:16 -07005 help
6 This option uses common MP infrastructure for bringing up APs
7 in parallel. It additionally provides a more flexible mechanism
8 for sequencing the steps of bringing up the APs.
9
Aaron Durbinb21e3622016-12-07 00:32:19 -060010config PARALLEL_MP_AP_WORK
11 def_bool n
12 depends on PARALLEL_MP
13 help
14 Allow APs to do other work after initialization instead of going
15 to sleep.
Stefan Reinauer9d5e36e2015-04-27 13:40:16 -070016
Kyösti Mälkki41a2c732021-05-29 21:23:18 +030017config LEGACY_SMP_INIT
18 bool
19
Kyösti Mälkki176c8872021-05-29 20:33:22 +030020choice LAPIC_ACCESS_MODE
21 prompt "APIC operation mode"
22 default XAPIC_ONLY
23
24config XAPIC_ONLY
25 prompt "Set XAPIC mode"
26 bool
27
28config X2APIC_ONLY
29 prompt "Set X2APIC mode"
30 bool
31 depends on PARALLEL_MP
Kyösti Mälkki176c8872021-05-29 20:33:22 +030032
33config X2APIC_RUNTIME
34 prompt "Support both XAPIC and X2APIC"
35 bool
36 depends on PARALLEL_MP
Kyösti Mälkki176c8872021-05-29 20:33:22 +030037
38endchoice
39
Patrick Georgi0e9a9252009-10-06 20:48:07 +000040config UDELAY_LAPIC
41 bool
42 default n
43
Aaron Durbinfd8291c2013-04-29 17:18:49 -050044config LAPIC_MONOTONIC_TIMER
45 def_bool n
46 depends on UDELAY_LAPIC
Aaron Durbinfd8291c2013-04-29 17:18:49 -050047 help
Elyes HAOUASd6e96862016-08-21 10:12:15 +020048 Expose monotonic time using the local APIC.
Aaron Durbinfd8291c2013-04-29 17:18:49 -050049
Patrick Georgie135ac52012-11-20 11:53:47 +010050config UDELAY_LAPIC_FIXED_FSB
51 int
52
Ronald G. Minnich669c4a92009-08-29 03:00:51 +000053config UDELAY_TSC
54 bool
55 default n
56
Kyösti Mälkki0d6ddf82019-10-31 14:52:20 +020057config UNKNOWN_TSC_RATE
58 bool
59 default y if LAPIC_MONOTONIC_TIMER
Aaron Durbin8e73b5d2013-05-01 15:27:09 -050060
Aaron Durbine8501642013-04-29 22:22:55 -050061config TSC_MONOTONIC_TIMER
62 def_bool n
63 depends on UDELAY_TSC
Aaron Durbine8501642013-04-29 22:22:55 -050064 help
65 Expose monotonic time using the TSC.
66
Stefan Reinauer0db68202012-08-07 14:44:51 -070067config TSC_SYNC_LFENCE
68 bool
69 default n
70 help
71 The CPU driver should select this if the CPU needs
72 to execute an lfence instruction in order to synchronize
73 rdtsc. This is true for all modern AMD CPUs.
74
75config TSC_SYNC_MFENCE
76 bool
77 default n
78 help
79 The CPU driver should select this if the CPU needs
80 to execute an mfence instruction in order to synchronize
81 rdtsc. This is true for all modern Intel CPUs.
82
Arthur Heymans47be2d92019-10-12 17:32:09 +020083config SETUP_XIP_CACHE
84 bool
Arthur Heymans47be2d92019-10-12 17:32:09 +020085 depends on !NO_XIP_EARLY_STAGES
86 help
87 Select this option to set up an MTRR to cache XIP stages loaded
88 from the bootblock. This is useful on platforms lacking a
89 non-eviction mode and therefore need to be careful to avoid
90 eviction.
91
Stefan Reinauer8aedcbc2010-12-16 23:37:17 +000092config CPU_ADDR_BITS
93 int
94 default 36
95
96config LOGICAL_CPUS
97 bool
98 default y
99
Kyösti Mälkki4d372c72019-07-08 13:48:57 +0300100config HAVE_SMI_HANDLER
101 bool
102 default n
103 depends on (SMM_ASEG || SMM_TSEG)
104
Kyösti Mälkki8abf66e2019-07-08 09:56:00 +0300105config NO_SMM
Kyösti Mälkki4d372c72019-07-08 13:48:57 +0300106 bool
107 default n
108
Kyösti Mälkki8abf66e2019-07-08 09:56:00 +0300109config SMM_ASEG
Duncan Laurie8bb77232012-01-09 22:11:25 -0800110 bool
111 default n
Kyösti Mälkki8abf66e2019-07-08 09:56:00 +0300112 depends on !NO_SMM
113
114config SMM_TSEG
115 bool
116 default y
117 depends on !(NO_SMM || SMM_ASEG)
118
119if SMM_TSEG
Aaron Durbin50a34642013-01-03 17:38:47 -0600120
121config SMM_MODULE_HEAP_SIZE
122 hex
123 default 0x4000
Aaron Durbin50a34642013-01-03 17:38:47 -0600124 help
125 This option determines the size of the heap within the SMM handler
126 modules.
Aaron Durbin57686f82013-03-20 15:50:59 -0500127
Raul E Rangeld3b83932018-06-12 10:43:09 -0600128config SMM_MODULE_STACK_SIZE
129 hex
Patrick Rudolphed8d7772021-06-12 06:21:27 +0200130 default 0x800 if ARCH_RAMSTAGE_X86_64
Raul E Rangeld3b83932018-06-12 10:43:09 -0600131 default 0x400
Raul E Rangeld3b83932018-06-12 10:43:09 -0600132 help
133 This option determines the size of the stack within the SMM handler
134 modules.
135
Marshall Dawson46fc68472018-10-25 13:01:55 -0600136config SMM_STUB_STACK_SIZE
137 hex
138 default 0x400
Marshall Dawson46fc68472018-10-25 13:01:55 -0600139 help
140 This option determines the size of the stack within the SMM handler
141 modules.
142
Kyösti Mälkki8abf66e2019-07-08 09:56:00 +0300143endif
144
Patrick Georgice2564a2015-09-05 20:21:24 +0200145config SMM_LAPIC_REMAP_MITIGATION
146 bool
147 default y if NORTHBRIDGE_INTEL_I945
148 default y if NORTHBRIDGE_INTEL_GM45
Angel Pons95de2312020-02-17 13:08:53 +0100149 default y if NORTHBRIDGE_INTEL_IRONLAKE
Patrick Georgice2564a2015-09-05 20:21:24 +0200150 default n
151
Damien Zammit149c4c52015-11-28 21:27:05 +1100152config SERIALIZED_SMM_INITIALIZATION
153 bool
154 default n
155 help
156 On some CPUs, there is a race condition in SMM.
157 This can occur when both hyperthreads change SMM state
158 variables in parallel without coordination.
159 Setting this option serializes the SMM initialization
160 to avoid an ugly hang in the boot process at the cost
161 of a slightly longer boot time.
162
Aaron Durbin57686f82013-03-20 15:50:59 -0500163config X86_AMD_FIXED_MTRRS
164 bool
165 default n
166 help
167 This option informs the MTRR code to use the RdMem and WrMem fields
168 in the fixed MTRR MSRs.
Aaron Durbine0785c02013-10-21 12:15:29 -0500169
Marshall Dawson98f43a12019-08-05 16:18:56 -0600170config X86_AMD_INIT_SIPI
171 bool
172 default n
173 help
174 This option limits the number of SIPI signals sent during during the
175 common AP setup. Intel documentation specifies an INIT SIPI SIPI
Felix Held98fb72f2021-07-21 16:50:10 +0200176 sequence, however this doesn't work on some AMD platforms. These
177 newer AMD platforms don't need the 10ms wait between INIT and SIPI,
178 so skip that too to save some time.
Marshall Dawson98f43a12019-08-05 16:18:56 -0600179
Lee Leahyae738ac2016-07-24 08:03:37 -0700180config SOC_SETS_MSRS
181 bool
182 default n
183 help
184 The SoC requires different access methods for reading and writing
185 the MSRs. Use SoC specific routines to handle the MSR access.
Tim Wawrzynczak6fcc46d2021-04-19 13:47:36 -0600186
187config RESERVE_MTRRS_FOR_OS
188 bool
189 default n
190 help
191 This option allows a platform to reserve 2 MTRRs for the OS usage.
192 The Intel SDM documents that the the first 6 MTRRs are intended for
193 the system BIOS and the last 2 are to be reserved for OS usage.
194 However, modern OSes use PAT to control cacheability instead of
195 using MTRRs.
Raul E Rangelb2346a52021-09-22 14:56:51 -0600196
197config CPU_INFO_V2
198 bool
199 depends on PARALLEL_MP
200 help
201 Enables the new method of locating struct cpu_info. This new method
202 uses the %gs segment to locate the cpu_info pointer. The old method
203 relied on the stack being CONFIG_STACK_SIZE aligned.