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
  34
  35
  36
  371. Supported Architectures and Processors
  38=========================================
  39
  401.1 ARM
  41-------
  42
  43The following ARM processors are supported by cpufreq:
  44
  45ARM Integrator
  46ARM-SA1100
  47ARM-SA1110
  48Intel PXA
  49
  50
  511.2 x86
  52-------
  53
  54The following processors for the x86 architecture are supported by cpufreq:
  55
  56AMD Elan - SC400, SC410
  57AMD mobile K6-2+
  58AMD mobile K6-3+
  59AMD mobile Duron
  60AMD mobile Athlon
  61AMD Opteron
  62AMD Athlon 64
  63Cyrix Media GXm
  64Intel mobile PIII and Intel mobile PIII-M on certain chipsets
  65Intel Pentium 4, Intel Xeon
  66Intel Pentium M (Centrino)
  67National Semiconductors Geode GX
  68Transmeta Crusoe
  69Transmeta Efficeon
  70VIA Cyrix 3 / C3
  71various processors on some ACPI 2.0-compatible systems [*]
  72
  73[*] Only if "ACPI Processor Performance States" are available
  74to the ACPI<->BIOS interface.
  75
  76
  771.3 sparc64
  78-----------
  79
  80The following processors for the sparc64 architecture are supported by
  81cpufreq:
  82
  83UltraSPARC-III
  84
  85
  861.4 ppc
  87-------
  88
  89Several "PowerBook" and "iBook2" notebooks are supported.
  90
  91
  921.5 SuperH
  93----------
  94
  95All SuperH processors supporting rate rounding through the clock
  96framework are supported by cpufreq.
  97
  981.6 Blackfin
  99------------
 100
 101The following Blackfin processors are supported by cpufreq:
 102
 103BF522, BF523, BF524, BF525, BF526, BF527, Rev 0.1 or higher
 104BF531, BF532, BF533, Rev 0.3 or higher
 105BF534, BF536, BF537, Rev 0.2 or higher
 106BF561, Rev 0.3 or higher
 107BF542, BF544, BF547, BF548, BF549, Rev 0.1 or higher
 108
 109
 1102. "Policy" / "Governor" ?
 111==========================
 112
 113Some CPU frequency scaling-capable processor switch between various
 114frequencies and operating voltages "on the fly" without any kernel or
 115user involvement. This guarantees very fast switching to a frequency
 116which is high enough to serve the user's needs, but low enough to save
 117power.
 118
 119
 1202.1 Policy
 121----------
 122
 123On these systems, all you can do is select the lower and upper
 124frequency limit as well as whether you want more aggressive
 125power-saving or more instantly available processing power.
 126
 127
 1282.2 Governor
 129------------
 130
 131On all other cpufreq implementations, these boundaries still need to
 132be set. Then, a "governor" must be selected. Such a "governor" decides
 133what speed the processor shall run within the boundaries. One such
 134"governor" is the "userspace" governor. This one allows the user - or
 135a yet-to-implement userspace program - to decide what specific speed
 136the processor shall run at.
 137
 138
 1393. How to change the CPU cpufreq policy and/or speed
 140====================================================
 141
 1423.1 Preferred Interface: sysfs
 143------------------------------
 144
 145The preferred interface is located in the sysfs filesystem. If you
 146mounted it at /sys, the cpufreq interface is located in a subdirectory
 147"cpufreq" within the cpu-device directory
 148(e.g. /sys/devices/system/cpu/cpu0/cpufreq/ for the first CPU).
 149
 150cpuinfo_min_freq :              this file shows the minimum operating
 151                                frequency the processor can run at(in kHz) 
 152cpuinfo_max_freq :              this file shows the maximum operating
 153                                frequency the processor can run at(in kHz) 
 154cpuinfo_transition_latency      The time it takes on this CPU to
 155                                switch between two frequencies in nano
 156                                seconds. If unknown or known to be
 157                                that high that the driver does not
 158                                work with the ondemand governor, -1
 159                                (CPUFREQ_ETERNAL) will be returned.
 160                                Using this information can be useful
 161                                to choose an appropriate polling
 162                                frequency for a kernel governor or
 163                                userspace daemon. Make sure to not
 164                                switch the frequency too often
 165                                resulting in performance loss.
 166scaling_driver :                this file shows what cpufreq driver is
 167                                used to set the frequency on this CPU
 168
 169scaling_available_governors :   this file shows the CPUfreq governors
 170                                available in this kernel. You can see the
 171                                currently activated governor in
 172
 173scaling_governor,               and by "echoing" the name of another
 174                                governor you can change it. Please note
 175                                that some governors won't load - they only
 176                                work on some specific architectures or
 177                                processors.
 178
 179cpuinfo_cur_freq :              Current frequency of the CPU as obtained from
 180                                the hardware, in KHz. This is the frequency
 181                                the CPU actually runs at.
 182
 183scaling_available_frequencies : List of available frequencies, in KHz.
 184
 185scaling_min_freq and
 186scaling_max_freq                show the current "policy limits" (in
 187                                kHz). By echoing new values into these
 188                                files, you can change these limits.
 189                                NOTE: when setting a policy you need to
 190                                first set scaling_max_freq, then
 191                                scaling_min_freq.
 192
 193affected_cpus :                 List of CPUs that require software coordination
 194                                of frequency.
 195
 196related_cpus :                  List of CPUs that need some sort of frequency
 197                                coordination, whether software or hardware.
 198
 199scaling_driver :                Hardware driver for cpufreq.
 200
 201scaling_cur_freq :              Current frequency of the CPU as determined by
 202                                the governor and cpufreq core, in KHz. This is
 203                                the frequency the kernel thinks the CPU runs
 204                                at.
 205
 206bios_limit :                    If the BIOS tells the OS to limit a CPU to
 207                                lower frequencies, the user can read out the
 208                                maximum available frequency from this file.
 209                                This typically can happen through (often not
 210                                intended) BIOS settings, restrictions
 211                                triggered through a service processor or other
 212                                BIOS/HW based implementations.
 213                                This does not cover thermal ACPI limitations
 214                                which can be detected through the generic
 215                                thermal driver.
 216
 217If you have selected the "userspace" governor which allows you to
 218set the CPU operating frequency to a specific value, you can read out
 219the current frequency in
 220
 221scaling_setspeed.               By "echoing" a new frequency into this
 222                                you can change the speed of the CPU,
 223                                but only within the limits of
 224                                scaling_min_freq and scaling_max_freq.
 225
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.