linux/Documentation/cpu-freq/user-guide.txt
<<
>>
Prefs
   1     CPU frequency and voltage scaling code in the Linux(TM) kernel
   2
   3
   4                         L i n u x    C P U F r e q
   5
   6                             U S E R   G U I D E
   7
   8
   9                    Dominik Brodowski  <linux@brodo.de>
  10
  11
  12
  13   Clock scaling allows you to change the clock speed of the CPUs on the
  14    fly. This is a nice method to save battery power, because the lower
  15            the clock speed, the less power the CPU consumes.
  16
  17
  18Contents:
  19---------
  201. Supported Architectures and Processors
  211.1 ARM
  221.2 x86
  231.3 sparc64
  241.4 ppc
  251.5 SuperH
  261.6 Blackfin
  27
  282. "Policy" / "Governor"?
  292.1 Policy
  302.2 Governor
  31
  323. How to change the CPU cpufreq policy and/or speed
  333.1 Preferred interface: sysfs
  343.2 Deprecated interfaces
  35
  36
  37
  381. Supported Architectures and Processors
  39=========================================
  40
  411.1 ARM
  42-------
  43
  44The following ARM processors are supported by cpufreq:
  45
  46ARM Integrator
  47ARM-SA1100
  48ARM-SA1110
  49Intel PXA
  50
  51
  521.2 x86
  53-------
  54
  55The following processors for the x86 architecture are supported by cpufreq:
  56
  57AMD Elan - SC400, SC410
  58AMD mobile K6-2+
  59AMD mobile K6-3+
  60AMD mobile Duron
  61AMD mobile Athlon
  62AMD Opteron
  63AMD Athlon 64
  64Cyrix Media GXm
  65Intel mobile PIII and Intel mobile PIII-M on certain chipsets
  66Intel Pentium 4, Intel Xeon
  67Intel Pentium M (Centrino)
  68National Semiconductors Geode GX
  69Transmeta Crusoe
  70Transmeta Efficeon
  71VIA Cyrix 3 / C3
  72various processors on some ACPI 2.0-compatible systems [*]
  73
  74[*] Only if "ACPI Processor Performance States" are available
  75to the ACPI<->BIOS interface.
  76
  77
  781.3 sparc64
  79-----------
  80
  81The following processors for the sparc64 architecture are supported by
  82cpufreq:
  83
  84UltraSPARC-III
  85
  86
  871.4 ppc
  88-------
  89
  90Several "PowerBook" and "iBook2" notebooks are supported.
  91
  92
  931.5 SuperH
  94----------
  95
  96The following SuperH processors are supported by cpufreq:
  97
  98SH-3
  99SH-4
 100
 1011.6 Blackfin
 102------------
 103
 104The following Blackfin processors are supported by cpufreq:
 105
 106BF522, BF523, BF524, BF525, BF526, BF527, Rev 0.1 or higher
 107BF531, BF532, BF533, Rev 0.3 or higher
 108BF534, BF536, BF537, Rev 0.2 or higher
 109BF561, Rev 0.3 or higher
 110BF542, BF544, BF547, BF548, BF549, Rev 0.1 or higher
 111
 112
 1132. "Policy" / "Governor" ?
 114==========================
 115
 116Some CPU frequency scaling-capable processor switch between various
 117frequencies and operating voltages "on the fly" without any kernel or
 118user involvement. This guarantees very fast switching to a frequency
 119which is high enough to serve the user's needs, but low enough to save
 120power.
 121
 122
 1232.1 Policy
 124----------
 125
 126On these systems, all you can do is select the lower and upper
 127frequency limit as well as whether you want more aggressive
 128power-saving or more instantly available processing power.
 129
 130
 1312.2 Governor
 132------------
 133
 134On all other cpufreq implementations, these boundaries still need to
 135be set. Then, a "governor" must be selected. Such a "governor" decides
 136what speed the processor shall run within the boundaries. One such
 137"governor" is the "userspace" governor. This one allows the user - or
 138a yet-to-implement userspace program - to decide what specific speed
 139the processor shall run at.
 140
 141
 1423. How to change the CPU cpufreq policy and/or speed
 143====================================================
 144
 1453.1 Preferred Interface: sysfs
 146------------------------------
 147
 148The preferred interface is located in the sysfs filesystem. If you
 149mounted it at /sys, the cpufreq interface is located in a subdirectory
 150"cpufreq" within the cpu-device directory
 151(e.g. /sys/devices/system/cpu/cpu0/cpufreq/ for the first CPU).
 152
 153cpuinfo_min_freq :              this file shows the minimum operating
 154                                frequency the processor can run at(in kHz) 
 155cpuinfo_max_freq :              this file shows the maximum operating
 156                                frequency the processor can run at(in kHz) 
 157scaling_driver :                this file shows what cpufreq driver is
 158                                used to set the frequency on this CPU
 159
 160scaling_available_governors :   this file shows the CPUfreq governors
 161                                available in this kernel. You can see the
 162                                currently activated governor in
 163
 164scaling_governor,               and by "echoing" the name of another
 165                                governor you can change it. Please note
 166                                that some governors won't load - they only
 167                                work on some specific architectures or
 168                                processors.
 169
 170cpuinfo_cur_freq :              Current speed of the CPU, in KHz.
 171
 172scaling_available_frequencies : List of available frequencies, in KHz.
 173
 174scaling_min_freq and
 175scaling_max_freq                show the current "policy limits" (in
 176                                kHz). By echoing new values into these
 177                                files, you can change these limits.
 178                                NOTE: when setting a policy you need to
 179                                first set scaling_max_freq, then
 180                                scaling_min_freq.
 181
 182affected_cpus :                 List of CPUs that require software coordination
 183                                of frequency.
 184
 185related_cpus :                  List of CPUs that need some sort of frequency
 186                                coordination, whether software or hardware.
 187
 188scaling_driver :                Hardware driver for cpufreq.
 189
 190scaling_cur_freq :              Current frequency of the CPU, in KHz.
 191
 192If you have selected the "userspace" governor which allows you to
 193set the CPU operating frequency to a specific value, you can read out
 194the current frequency in
 195
 196scaling_setspeed.               By "echoing" a new frequency into this
 197                                you can change the speed of the CPU,
 198                                but only within the limits of
 199                                scaling_min_freq and scaling_max_freq.
 200                                
 201
 2023.2 Deprecated Interfaces
 203-------------------------
 204
 205Depending on your kernel configuration, you might find the following 
 206cpufreq-related files:
 207/proc/cpufreq
 208/proc/sys/cpu/*/speed
 209/proc/sys/cpu/*/speed-min
 210/proc/sys/cpu/*/speed-max
 211
 212These are files for deprecated interfaces to cpufreq, which offer far
 213less functionality. Because of this, these interfaces aren't described
 214here.
 215
 216
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.