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