xref: /openbmc/linux/drivers/cpufreq/Kconfig.x86 (revision 25b5a2a1)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# x86 CPU Frequency scaling drivers
4#
5
6config X86_INTEL_PSTATE
7	bool "Intel P state control"
8	depends on X86
9	select ACPI_PROCESSOR if ACPI
10	select ACPI_CPPC_LIB if X86_64 && ACPI && SCHED_MC_PRIO
11	select CPU_FREQ_GOV_PERFORMANCE
12	select CPU_FREQ_GOV_SCHEDUTIL if SMP
13	help
14	  This driver provides a P state for Intel core processors.
15	  The driver implements an internal governor and will become
16	  the scaling driver and governor for Sandy bridge processors.
17
18	  When this driver is enabled it will become the preferred
19	  scaling driver for Sandy bridge processors.
20
21	  If in doubt, say N.
22
23config X86_PCC_CPUFREQ
24	tristate "Processor Clocking Control interface driver"
25	depends on ACPI && ACPI_PROCESSOR
26	help
27	  This driver adds support for the PCC interface.
28
29	  For details, take a look at:
30	  <file:Documentation/admin-guide/pm/cpufreq_drivers.rst>.
31
32	  To compile this driver as a module, choose M here: the
33	  module will be called pcc-cpufreq.
34
35	  If in doubt, say N.
36
37config X86_AMD_PSTATE
38	bool "AMD Processor P-State driver"
39	depends on X86 && ACPI
40	select ACPI_PROCESSOR
41	select ACPI_CPPC_LIB if X86_64
42	select CPU_FREQ_GOV_SCHEDUTIL if SMP
43	help
44	  This driver adds a CPUFreq driver which utilizes a fine grain
45	  processor performance frequency control range instead of legacy
46	  performance levels. _CPC needs to be present in the ACPI tables
47	  of the system.
48
49	  For details, take a look at:
50	  <file:Documentation/admin-guide/pm/amd-pstate.rst>.
51
52	  If in doubt, say N.
53
54config X86_AMD_PSTATE_DEFAULT_MODE
55	int "AMD Processor P-State default mode"
56	depends on X86_AMD_PSTATE
57	default 3 if X86_AMD_PSTATE
58	range 1 4
59	help
60	  Select the default mode the amd-pstate driver will use on
61	  supported hardware.
62	  The value set has the following meanings:
63		1 -> Disabled
64		2 -> Passive
65		3 -> Active (EPP)
66		4 -> Guided
67
68	  For details, take a look at:
69	  <file:Documentation/admin-guide/pm/amd-pstate.rst>.
70
71config X86_AMD_PSTATE_UT
72	tristate "selftest for AMD Processor P-State driver"
73	depends on X86 && ACPI_PROCESSOR
74	default n
75	help
76	  This kernel module is used for testing. It's safe to say M here.
77
78	  It can also be built-in without X86_AMD_PSTATE enabled.
79	  Currently, only tests for amd-pstate are supported. If X86_AMD_PSTATE
80	  is set disabled, it can tell the users test can only run on amd-pstate
81	  driver, please set X86_AMD_PSTATE enabled.
82	  In the future, comparison tests will be added. It can set amd-pstate
83	  disabled and set acpi-cpufreq enabled to run test cases, then compare
84	  the test results.
85
86config X86_ACPI_CPUFREQ
87	tristate "ACPI Processor P-States driver"
88	depends on ACPI_PROCESSOR
89	help
90	  This driver adds a CPUFreq driver which utilizes the ACPI
91	  Processor Performance States.
92	  This driver also supports Intel Enhanced Speedstep and newer
93	  AMD CPUs.
94
95	  To compile this driver as a module, choose M here: the
96	  module will be called acpi-cpufreq.
97
98	  For details, take a look at <file:Documentation/cpu-freq/>.
99
100	  If in doubt, say N.
101
102config X86_ACPI_CPUFREQ_CPB
103	default y
104	bool "Legacy cpb sysfs knob support for AMD CPUs"
105	depends on X86_ACPI_CPUFREQ && CPU_SUP_AMD
106	help
107	  The powernow-k8 driver used to provide a sysfs knob called "cpb"
108	  to disable the Core Performance Boosting feature of AMD CPUs. This
109	  file has now been superseded by the more generic "boost" entry.
110
111	  By enabling this option the acpi_cpufreq driver provides the old
112	  entry in addition to the new boost ones, for compatibility reasons.
113
114config ELAN_CPUFREQ
115	tristate "AMD Elan SC400 and SC410"
116	depends on MELAN
117	help
118	  This adds the CPUFreq driver for AMD Elan SC400 and SC410
119	  processors.
120
121	  You need to specify the processor maximum speed as boot
122	  parameter: elanfreq=maxspeed (in kHz) or as module
123	  parameter "max_freq".
124
125	  For details, take a look at <file:Documentation/cpu-freq/>.
126
127	  If in doubt, say N.
128
129config SC520_CPUFREQ
130	tristate "AMD Elan SC520"
131	depends on MELAN
132	help
133	  This adds the CPUFreq driver for AMD Elan SC520 processor.
134
135	  For details, take a look at <file:Documentation/cpu-freq/>.
136
137	  If in doubt, say N.
138
139
140config X86_POWERNOW_K6
141	tristate "AMD Mobile K6-2/K6-3 PowerNow!"
142	depends on X86_32
143	help
144	  This adds the CPUFreq driver for mobile AMD K6-2+ and mobile
145	  AMD K6-3+ processors.
146
147	  For details, take a look at <file:Documentation/cpu-freq/>.
148
149	  If in doubt, say N.
150
151config X86_POWERNOW_K7
152	tristate "AMD Mobile Athlon/Duron PowerNow!"
153	depends on X86_32
154	help
155	  This adds the CPUFreq driver for mobile AMD K7 mobile processors.
156
157	  For details, take a look at <file:Documentation/cpu-freq/>.
158
159	  If in doubt, say N.
160
161config X86_POWERNOW_K7_ACPI
162	bool
163	depends on X86_POWERNOW_K7 && ACPI_PROCESSOR
164	depends on !(X86_POWERNOW_K7 = y && ACPI_PROCESSOR = m)
165	depends on X86_32
166	default y
167
168config X86_POWERNOW_K8
169	tristate "AMD Opteron/Athlon64 PowerNow!"
170	depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ
171	help
172	  This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors.
173	  Support for K10 and newer processors is now in acpi-cpufreq.
174
175	  To compile this driver as a module, choose M here: the
176	  module will be called powernow-k8.
177
178	  For details, take a look at <file:Documentation/cpu-freq/>.
179
180config X86_AMD_FREQ_SENSITIVITY
181	tristate "AMD frequency sensitivity feedback powersave bias"
182	depends on CPU_FREQ_GOV_ONDEMAND && X86_ACPI_CPUFREQ && CPU_SUP_AMD
183	help
184	  This adds AMD-specific powersave bias function to the ondemand
185	  governor, which allows it to make more power-conscious frequency
186	  change decisions based on feedback from hardware (available on AMD
187	  Family 16h and above).
188
189	  Hardware feedback tells software how "sensitive" to frequency changes
190	  the CPUs' workloads are. CPU-bound workloads will be more sensitive
191	  -- they will perform better as frequency increases. Memory/IO-bound
192	  workloads will be less sensitive -- they will not necessarily perform
193	  better as frequency increases.
194
195	  If in doubt, say N.
196
197config X86_GX_SUSPMOD
198	tristate "Cyrix MediaGX/NatSemi Geode Suspend Modulation"
199	depends on X86_32 && PCI
200	help
201	 This add the CPUFreq driver for NatSemi Geode processors which
202	 support suspend modulation.
203
204	 For details, take a look at <file:Documentation/cpu-freq/>.
205
206	 If in doubt, say N.
207
208config X86_SPEEDSTEP_CENTRINO
209	tristate "Intel Enhanced SpeedStep (deprecated)"
210	select X86_SPEEDSTEP_CENTRINO_TABLE if X86_32
211	depends on X86_32 || (X86_64 && ACPI_PROCESSOR)
212	help
213	  This is deprecated and this functionality is now merged into
214	  acpi_cpufreq (X86_ACPI_CPUFREQ). Use that driver instead of
215	  speedstep_centrino.
216	  This adds the CPUFreq driver for Enhanced SpeedStep enabled
217	  mobile CPUs.  This means Intel Pentium M (Centrino) CPUs
218	  or 64bit enabled Intel Xeons.
219
220	  To compile this driver as a module, choose M here: the
221	  module will be called speedstep-centrino.
222
223	  For details, take a look at <file:Documentation/cpu-freq/>.
224
225	  If in doubt, say N.
226
227config X86_SPEEDSTEP_CENTRINO_TABLE
228	bool "Built-in tables for Banias CPUs"
229	depends on X86_32 && X86_SPEEDSTEP_CENTRINO
230	default y
231	help
232	  Use built-in tables for Banias CPUs if ACPI encoding
233	  is not available.
234
235	  If in doubt, say N.
236
237config X86_SPEEDSTEP_ICH
238	tristate "Intel Speedstep on ICH-M chipsets (ioport interface)"
239	depends on X86_32
240	help
241	  This adds the CPUFreq driver for certain mobile Intel Pentium III
242	  (Coppermine), all mobile Intel Pentium III-M (Tualatin) and all
243	  mobile Intel Pentium 4 P4-M on systems which have an Intel ICH2,
244	  ICH3 or ICH4 southbridge.
245
246	  For details, take a look at <file:Documentation/cpu-freq/>.
247
248	  If in doubt, say N.
249
250config X86_SPEEDSTEP_SMI
251	tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)"
252	depends on X86_32
253	help
254	  This adds the CPUFreq driver for certain mobile Intel Pentium III
255	  (Coppermine), all mobile Intel Pentium III-M (Tualatin)
256	  on systems which have an Intel 440BX/ZX/MX southbridge.
257
258	  For details, take a look at <file:Documentation/cpu-freq/>.
259
260	  If in doubt, say N.
261
262config X86_P4_CLOCKMOD
263	tristate "Intel Pentium 4 clock modulation"
264	help
265	  This adds the CPUFreq driver for Intel Pentium 4 / XEON
266	  processors.  When enabled it will lower CPU temperature by skipping
267	  clocks.
268
269	  This driver should be only used in exceptional
270	  circumstances when very low power is needed because it causes severe
271	  slowdowns and noticeable latencies.  Normally Speedstep should be used
272	  instead.
273
274	  To compile this driver as a module, choose M here: the
275	  module will be called p4-clockmod.
276
277	  For details, take a look at <file:Documentation/cpu-freq/>.
278
279	  Unless you are absolutely sure say N.
280
281config X86_CPUFREQ_NFORCE2
282	tristate "nVidia nForce2 FSB changing"
283	depends on X86_32
284	help
285	  This adds the CPUFreq driver for FSB changing on nVidia nForce2
286	  platforms.
287
288	  For details, take a look at <file:Documentation/cpu-freq/>.
289
290	  If in doubt, say N.
291
292config X86_LONGRUN
293	tristate "Transmeta LongRun"
294	depends on X86_32
295	help
296	  This adds the CPUFreq driver for Transmeta Crusoe and Efficeon processors
297	  which support LongRun.
298
299	  For details, take a look at <file:Documentation/cpu-freq/>.
300
301	  If in doubt, say N.
302
303config X86_LONGHAUL
304	tristate "VIA Cyrix III Longhaul"
305	depends on X86_32 && ACPI_PROCESSOR
306	help
307	  This adds the CPUFreq driver for VIA Samuel/CyrixIII,
308	  VIA Cyrix Samuel/C3, VIA Cyrix Ezra and VIA Cyrix Ezra-T
309	  processors.
310
311	  For details, take a look at <file:Documentation/cpu-freq/>.
312
313	  If in doubt, say N.
314
315config X86_E_POWERSAVER
316	tristate "VIA C7 Enhanced PowerSaver (DANGEROUS)"
317	depends on X86_32 && ACPI_PROCESSOR
318	help
319	  This adds the CPUFreq driver for VIA C7 processors.  However, this driver
320	  does not have any safeguards to prevent operating the CPU out of spec
321	  and is thus considered dangerous.  Please use the regular ACPI cpufreq
322	  driver, enabled by CONFIG_X86_ACPI_CPUFREQ.
323
324	  If in doubt, say N.
325
326comment "shared options"
327
328config X86_SPEEDSTEP_LIB
329	tristate
330	default (X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD)
331
332config X86_SPEEDSTEP_RELAXED_CAP_CHECK
333	bool "Relaxed speedstep capability checks"
334	depends on X86_32 && (X86_SPEEDSTEP_SMI || X86_SPEEDSTEP_ICH)
335	help
336	  Don't perform all checks for a speedstep capable system which would
337	  normally be done. Some ancient or strange systems, though speedstep
338	  capable, don't always indicate that they are speedstep capable. This
339	  option lets the probing code bypass some of those checks if the
340	  parameter "relaxed_check=1" is passed to the module.
341
342