blob: 86f31e05c7c1d219ad1fd1e9aa8f5ab8bb4c06d9 [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
Raul E Rangel99c84782021-10-08 13:10:38 -06004 select CPU_INFO_V2
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.
Arthur Heymans48fbf2f2021-11-26 14:50:42 +01009 The code also works for just initialising the BSP in case there
10 are no APs.
Stefan Reinauer9d5e36e2015-04-27 13:40:16 -070011
Aaron Durbinb21e3622016-12-07 00:32:19 -060012config PARALLEL_MP_AP_WORK
13 def_bool n
14 depends on PARALLEL_MP
15 help
16 Allow APs to do other work after initialization instead of going
17 to sleep.
Stefan Reinauer9d5e36e2015-04-27 13:40:16 -070018
Kyösti Mälkki41a2c732021-05-29 21:23:18 +030019config LEGACY_SMP_INIT
20 bool
21
Kyösti Mälkki176c8872021-05-29 20:33:22 +030022choice LAPIC_ACCESS_MODE
23 prompt "APIC operation mode"
24 default XAPIC_ONLY
25
26config XAPIC_ONLY
27 prompt "Set XAPIC mode"
28 bool
29
30config X2APIC_ONLY
31 prompt "Set X2APIC mode"
32 bool
33 depends on PARALLEL_MP
Kyösti Mälkki176c8872021-05-29 20:33:22 +030034
35config X2APIC_RUNTIME
36 prompt "Support both XAPIC and X2APIC"
37 bool
38 depends on PARALLEL_MP
Kyösti Mälkki176c8872021-05-29 20:33:22 +030039
40endchoice
41
Patrick Georgi0e9a9252009-10-06 20:48:07 +000042config UDELAY_LAPIC
43 bool
44 default n
45
Aaron Durbinfd8291c2013-04-29 17:18:49 -050046config LAPIC_MONOTONIC_TIMER
47 def_bool n
48 depends on UDELAY_LAPIC
Aaron Durbinfd8291c2013-04-29 17:18:49 -050049 help
Elyes HAOUASd6e96862016-08-21 10:12:15 +020050 Expose monotonic time using the local APIC.
Aaron Durbinfd8291c2013-04-29 17:18:49 -050051
Patrick Georgie135ac52012-11-20 11:53:47 +010052config UDELAY_LAPIC_FIXED_FSB
53 int
54
Ronald G. Minnich669c4a92009-08-29 03:00:51 +000055config UDELAY_TSC
56 bool
57 default n
58
Kyösti Mälkki0d6ddf82019-10-31 14:52:20 +020059config UNKNOWN_TSC_RATE
60 bool
61 default y if LAPIC_MONOTONIC_TIMER
Aaron Durbin8e73b5d2013-05-01 15:27:09 -050062
Aaron Durbine8501642013-04-29 22:22:55 -050063config TSC_MONOTONIC_TIMER
64 def_bool n
65 depends on UDELAY_TSC
Aaron Durbine8501642013-04-29 22:22:55 -050066 help
67 Expose monotonic time using the TSC.
68
Stefan Reinauer0db68202012-08-07 14:44:51 -070069config TSC_SYNC_LFENCE
70 bool
71 default n
72 help
73 The CPU driver should select this if the CPU needs
74 to execute an lfence instruction in order to synchronize
75 rdtsc. This is true for all modern AMD CPUs.
76
77config TSC_SYNC_MFENCE
78 bool
79 default n
80 help
81 The CPU driver should select this if the CPU needs
82 to execute an mfence instruction in order to synchronize
83 rdtsc. This is true for all modern Intel CPUs.
84
Arthur Heymans47be2d92019-10-12 17:32:09 +020085config SETUP_XIP_CACHE
86 bool
Arthur Heymans47be2d92019-10-12 17:32:09 +020087 depends on !NO_XIP_EARLY_STAGES
88 help
89 Select this option to set up an MTRR to cache XIP stages loaded
90 from the bootblock. This is useful on platforms lacking a
91 non-eviction mode and therefore need to be careful to avoid
92 eviction.
93
Stefan Reinauer8aedcbc2010-12-16 23:37:17 +000094config LOGICAL_CPUS
95 bool
96 default y
97
Kyösti Mälkki4d372c72019-07-08 13:48:57 +030098config HAVE_SMI_HANDLER
99 bool
100 default n
101 depends on (SMM_ASEG || SMM_TSEG)
102
Kyösti Mälkki8abf66e2019-07-08 09:56:00 +0300103config NO_SMM
Kyösti Mälkki4d372c72019-07-08 13:48:57 +0300104 bool
105 default n
106
Kyösti Mälkki8abf66e2019-07-08 09:56:00 +0300107config SMM_ASEG
Duncan Laurie8bb77232012-01-09 22:11:25 -0800108 bool
109 default n
Kyösti Mälkki8abf66e2019-07-08 09:56:00 +0300110 depends on !NO_SMM
111
112config SMM_TSEG
113 bool
114 default y
115 depends on !(NO_SMM || SMM_ASEG)
116
Kyösti Mälkki894f6f82022-01-29 14:05:58 +0200117config SMM_LEGACY_ASEG
118 bool
119 default y if HAVE_SMI_HANDLER && SMM_ASEG && LEGACY_SMP_INIT
120 help
121 SMM support without PARALLEL_MP, to be deprecated.
122
Kyösti Mälkki8abf66e2019-07-08 09:56:00 +0300123if SMM_TSEG
Aaron Durbin50a34642013-01-03 17:38:47 -0600124
125config SMM_MODULE_HEAP_SIZE
126 hex
127 default 0x4000
Aaron Durbin50a34642013-01-03 17:38:47 -0600128 help
129 This option determines the size of the heap within the SMM handler
130 modules.
Aaron Durbin57686f82013-03-20 15:50:59 -0500131
Raul E Rangeld3b83932018-06-12 10:43:09 -0600132config SMM_MODULE_STACK_SIZE
133 hex
Patrick Rudolphed8d7772021-06-12 06:21:27 +0200134 default 0x800 if ARCH_RAMSTAGE_X86_64
Raul E Rangeld3b83932018-06-12 10:43:09 -0600135 default 0x400
Raul E Rangeld3b83932018-06-12 10:43:09 -0600136 help
137 This option determines the size of the stack within the SMM handler
138 modules.
139
Marshall Dawson46fc68472018-10-25 13:01:55 -0600140config SMM_STUB_STACK_SIZE
141 hex
142 default 0x400
Marshall Dawson46fc68472018-10-25 13:01:55 -0600143 help
144 This option determines the size of the stack within the SMM handler
145 modules.
146
Kyösti Mälkki8abf66e2019-07-08 09:56:00 +0300147endif
148
Patrick Georgice2564a2015-09-05 20:21:24 +0200149config SMM_LAPIC_REMAP_MITIGATION
150 bool
151 default y if NORTHBRIDGE_INTEL_I945
152 default y if NORTHBRIDGE_INTEL_GM45
Angel Pons95de2312020-02-17 13:08:53 +0100153 default y if NORTHBRIDGE_INTEL_IRONLAKE
Patrick Georgice2564a2015-09-05 20:21:24 +0200154 default n
155
Aaron Durbin57686f82013-03-20 15:50:59 -0500156config X86_AMD_FIXED_MTRRS
157 bool
158 default n
159 help
160 This option informs the MTRR code to use the RdMem and WrMem fields
161 in the fixed MTRR MSRs.
Aaron Durbine0785c02013-10-21 12:15:29 -0500162
Subrata Banik9f91ced2021-07-28 15:38:32 +0530163config X86_INIT_NEED_1_SIPI
Marshall Dawson98f43a12019-08-05 16:18:56 -0600164 bool
165 default n
166 help
167 This option limits the number of SIPI signals sent during during the
168 common AP setup. Intel documentation specifies an INIT SIPI SIPI
Subrata Banik9f91ced2021-07-28 15:38:32 +0530169 sequence, however this doesn't work on some AMD and Intel platforms.
170 These newer AMD and Intel platforms don't need the 10ms wait between
171 INIT and SIPI, so skip that too to save some time.
Marshall Dawson98f43a12019-08-05 16:18:56 -0600172
Lee Leahyae738ac2016-07-24 08:03:37 -0700173config SOC_SETS_MSRS
174 bool
175 default n
176 help
177 The SoC requires different access methods for reading and writing
178 the MSRs. Use SoC specific routines to handle the MSR access.
Tim Wawrzynczak6fcc46d2021-04-19 13:47:36 -0600179
180config RESERVE_MTRRS_FOR_OS
181 bool
182 default n
183 help
184 This option allows a platform to reserve 2 MTRRs for the OS usage.
185 The Intel SDM documents that the the first 6 MTRRs are intended for
186 the system BIOS and the last 2 are to be reserved for OS usage.
187 However, modern OSes use PAT to control cacheability instead of
188 using MTRRs.
Raul E Rangelb2346a52021-09-22 14:56:51 -0600189
190config CPU_INFO_V2
191 bool
192 depends on PARALLEL_MP
193 help
194 Enables the new method of locating struct cpu_info. This new method
195 uses the %gs segment to locate the cpu_info pointer. The old method
196 relied on the stack being CONFIG_STACK_SIZE aligned.