blob: fb5b5413b9b3a8b5d46d6858202d400c55812f53 [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
Raul E Rangel99c84782021-10-08 13:10:38 -06005 select CPU_INFO_V2
Stefan Reinauer9d5e36e2015-04-27 13:40:16 -07006 help
7 This option uses common MP infrastructure for bringing up APs
8 in parallel. It additionally provides a more flexible mechanism
9 for sequencing the steps of bringing up the APs.
10
Aaron Durbinb21e3622016-12-07 00:32:19 -060011config PARALLEL_MP_AP_WORK
12 def_bool n
13 depends on PARALLEL_MP
14 help
15 Allow APs to do other work after initialization instead of going
16 to sleep.
Stefan Reinauer9d5e36e2015-04-27 13:40:16 -070017
Kyösti Mälkki41a2c732021-05-29 21:23:18 +030018config LEGACY_SMP_INIT
19 bool
20
Kyösti Mälkki176c8872021-05-29 20:33:22 +030021choice LAPIC_ACCESS_MODE
22 prompt "APIC operation mode"
23 default XAPIC_ONLY
24
25config XAPIC_ONLY
26 prompt "Set XAPIC mode"
27 bool
28
29config X2APIC_ONLY
30 prompt "Set X2APIC mode"
31 bool
32 depends on PARALLEL_MP
Kyösti Mälkki176c8872021-05-29 20:33:22 +030033
34config X2APIC_RUNTIME
35 prompt "Support both XAPIC and X2APIC"
36 bool
37 depends on PARALLEL_MP
Kyösti Mälkki176c8872021-05-29 20:33:22 +030038
39endchoice
40
Patrick Georgi0e9a9252009-10-06 20:48:07 +000041config UDELAY_LAPIC
42 bool
43 default n
44
Aaron Durbinfd8291c2013-04-29 17:18:49 -050045config LAPIC_MONOTONIC_TIMER
46 def_bool n
47 depends on UDELAY_LAPIC
Aaron Durbinfd8291c2013-04-29 17:18:49 -050048 help
Elyes HAOUASd6e96862016-08-21 10:12:15 +020049 Expose monotonic time using the local APIC.
Aaron Durbinfd8291c2013-04-29 17:18:49 -050050
Patrick Georgie135ac52012-11-20 11:53:47 +010051config UDELAY_LAPIC_FIXED_FSB
52 int
53
Ronald G. Minnich669c4a92009-08-29 03:00:51 +000054config UDELAY_TSC
55 bool
56 default n
57
Kyösti Mälkki0d6ddf82019-10-31 14:52:20 +020058config UNKNOWN_TSC_RATE
59 bool
60 default y if LAPIC_MONOTONIC_TIMER
Aaron Durbin8e73b5d2013-05-01 15:27:09 -050061
Aaron Durbine8501642013-04-29 22:22:55 -050062config TSC_MONOTONIC_TIMER
63 def_bool n
64 depends on UDELAY_TSC
Aaron Durbine8501642013-04-29 22:22:55 -050065 help
66 Expose monotonic time using the TSC.
67
Stefan Reinauer0db68202012-08-07 14:44:51 -070068config TSC_SYNC_LFENCE
69 bool
70 default n
71 help
72 The CPU driver should select this if the CPU needs
73 to execute an lfence instruction in order to synchronize
74 rdtsc. This is true for all modern AMD CPUs.
75
76config TSC_SYNC_MFENCE
77 bool
78 default n
79 help
80 The CPU driver should select this if the CPU needs
81 to execute an mfence instruction in order to synchronize
82 rdtsc. This is true for all modern Intel CPUs.
83
Arthur Heymans47be2d92019-10-12 17:32:09 +020084config SETUP_XIP_CACHE
85 bool
Arthur Heymans47be2d92019-10-12 17:32:09 +020086 depends on !NO_XIP_EARLY_STAGES
87 help
88 Select this option to set up an MTRR to cache XIP stages loaded
89 from the bootblock. This is useful on platforms lacking a
90 non-eviction mode and therefore need to be careful to avoid
91 eviction.
92
Stefan Reinauer8aedcbc2010-12-16 23:37:17 +000093config CPU_ADDR_BITS
94 int
95 default 36
96
97config LOGICAL_CPUS
98 bool
99 default y
100
Kyösti Mälkki4d372c72019-07-08 13:48:57 +0300101config HAVE_SMI_HANDLER
102 bool
103 default n
104 depends on (SMM_ASEG || SMM_TSEG)
105
Kyösti Mälkki8abf66e2019-07-08 09:56:00 +0300106config NO_SMM
Kyösti Mälkki4d372c72019-07-08 13:48:57 +0300107 bool
108 default n
109
Kyösti Mälkki8abf66e2019-07-08 09:56:00 +0300110config SMM_ASEG
Duncan Laurie8bb77232012-01-09 22:11:25 -0800111 bool
112 default n
Kyösti Mälkki8abf66e2019-07-08 09:56:00 +0300113 depends on !NO_SMM
114
115config SMM_TSEG
116 bool
117 default y
118 depends on !(NO_SMM || SMM_ASEG)
119
120if SMM_TSEG
Aaron Durbin50a34642013-01-03 17:38:47 -0600121
122config SMM_MODULE_HEAP_SIZE
123 hex
124 default 0x4000
Aaron Durbin50a34642013-01-03 17:38:47 -0600125 help
126 This option determines the size of the heap within the SMM handler
127 modules.
Aaron Durbin57686f82013-03-20 15:50:59 -0500128
Raul E Rangeld3b83932018-06-12 10:43:09 -0600129config SMM_MODULE_STACK_SIZE
130 hex
Patrick Rudolphed8d7772021-06-12 06:21:27 +0200131 default 0x800 if ARCH_RAMSTAGE_X86_64
Raul E Rangeld3b83932018-06-12 10:43:09 -0600132 default 0x400
Raul E Rangeld3b83932018-06-12 10:43:09 -0600133 help
134 This option determines the size of the stack within the SMM handler
135 modules.
136
Marshall Dawson46fc68472018-10-25 13:01:55 -0600137config SMM_STUB_STACK_SIZE
138 hex
139 default 0x400
Marshall Dawson46fc68472018-10-25 13:01:55 -0600140 help
141 This option determines the size of the stack within the SMM handler
142 modules.
143
Kyösti Mälkki8abf66e2019-07-08 09:56:00 +0300144endif
145
Patrick Georgice2564a2015-09-05 20:21:24 +0200146config SMM_LAPIC_REMAP_MITIGATION
147 bool
148 default y if NORTHBRIDGE_INTEL_I945
149 default y if NORTHBRIDGE_INTEL_GM45
Angel Pons95de2312020-02-17 13:08:53 +0100150 default y if NORTHBRIDGE_INTEL_IRONLAKE
Patrick Georgice2564a2015-09-05 20:21:24 +0200151 default n
152
Damien Zammit149c4c52015-11-28 21:27:05 +1100153config SERIALIZED_SMM_INITIALIZATION
154 bool
155 default n
156 help
157 On some CPUs, there is a race condition in SMM.
158 This can occur when both hyperthreads change SMM state
159 variables in parallel without coordination.
160 Setting this option serializes the SMM initialization
161 to avoid an ugly hang in the boot process at the cost
162 of a slightly longer boot time.
163
Aaron Durbin57686f82013-03-20 15:50:59 -0500164config X86_AMD_FIXED_MTRRS
165 bool
166 default n
167 help
168 This option informs the MTRR code to use the RdMem and WrMem fields
169 in the fixed MTRR MSRs.
Aaron Durbine0785c02013-10-21 12:15:29 -0500170
Marshall Dawson98f43a12019-08-05 16:18:56 -0600171config X86_AMD_INIT_SIPI
172 bool
173 default n
174 help
175 This option limits the number of SIPI signals sent during during the
176 common AP setup. Intel documentation specifies an INIT SIPI SIPI
Felix Held98fb72f2021-07-21 16:50:10 +0200177 sequence, however this doesn't work on some AMD platforms. These
178 newer AMD platforms don't need the 10ms wait between INIT and SIPI,
179 so skip that too to save some time.
Marshall Dawson98f43a12019-08-05 16:18:56 -0600180
Lee Leahyae738ac2016-07-24 08:03:37 -0700181config SOC_SETS_MSRS
182 bool
183 default n
184 help
185 The SoC requires different access methods for reading and writing
186 the MSRs. Use SoC specific routines to handle the MSR access.
Tim Wawrzynczak6fcc46d2021-04-19 13:47:36 -0600187
188config RESERVE_MTRRS_FOR_OS
189 bool
190 default n
191 help
192 This option allows a platform to reserve 2 MTRRs for the OS usage.
193 The Intel SDM documents that the the first 6 MTRRs are intended for
194 the system BIOS and the last 2 are to be reserved for OS usage.
195 However, modern OSes use PAT to control cacheability instead of
196 using MTRRs.
Raul E Rangelb2346a52021-09-22 14:56:51 -0600197
198config CPU_INFO_V2
199 bool
200 depends on PARALLEL_MP
201 help
202 Enables the new method of locating struct cpu_info. This new method
203 uses the %gs segment to locate the cpu_info pointer. The old method
204 relied on the stack being CONFIG_STACK_SIZE aligned.