Kernel driver k10temp
=====================

Supported chips:
* AMD Family 10h processors:
  Socket F: Quad-Core/Six-Core/Embedded Opteron (but see below)
  Socket AM2+: Quad-Core Opteron, Phenom (II) X3/X4, Athlon X2 (but see below)
  Socket AM3: Quad-Core Opteron, Athlon/Phenom II X2/X3/X4, Sempron II
  Socket S1G3: Athlon II, Sempron, Turion II
* AMD Family 11h processors:
  Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra)
* AMD Family 12h processors: "Llano" (E2/A4/A6/A8-Series)
* AMD Family 14h processors: "Brazos" (C/E/G/Z-Series)
* AMD Family 15h processors: "Bulldozer"

  Prefix: 'k10temp'
  Addresses scanned: PCI space
  Datasheets:
  BIOS and Kernel Developer's Guide (BKDG) For AMD Family 10h Processors:
    http://support.amd.com/us/Processor_TechDocs/31116.pdf
  BIOS and Kernel Developer's Guide (BKDG) for AMD Family 11h Processors:
    http://support.amd.com/us/Processor_TechDocs/41256.pdf
  BIOS and Kernel Developer's Guide (BKDG) for AMD Family 12h Processors:
    http://support.amd.com/us/Processor_TechDocs/41131.pdf
  BIOS and Kernel Developer's Guide (BKDG) for AMD Family 14h Models 00h-0Fh Processors:
    http://support.amd.com/us/Processor_TechDocs/43170.pdf
  Revision Guide for AMD Family 10h Processors:
    http://support.amd.com/us/Processor_TechDocs/41322.pdf
  Revision Guide for AMD Family 11h Processors:
    http://support.amd.com/us/Processor_TechDocs/41788.pdf
  Revision Guide for AMD Family 12h Processors:
    http://support.amd.com/us/Processor_TechDocs/44739.pdf
  Revision Guide for AMD Family 14h Models 00h-0Fh Processors:
    http://support.amd.com/us/Processor_TechDocs/47534.pdf
  AMD Family 11h Processor Power and Thermal Data Sheet for Notebooks:
    http://support.amd.com/us/Processor_TechDocs/43373.pdf
  AMD Family 10h Server and Workstation Processor Power and Thermal Data Sheet:
    http://support.amd.com/us/Processor_TechDocs/43374.pdf
  AMD Family 10h Desktop Processor Power and Thermal Data Sheet:
    http://support.amd.com/us/Processor_TechDocs/43375.pdf

Author: Clemens Ladisch <clemens@ladisch.de>

Description
-----------

This driver permits reading of the internal temperature sensor of AMD
Family 10h/11h/12h/14h/15h processors.

All these processors have a sensor, but on those for Socket F or AM2+,
the sensor may return inconsistent values (erratum 319).  The driver
will refuse to load on these revisions unless you specify the "force=1"
module parameter.

Due to technical reasons, the driver can detect only the mainboard's
socket type, not the processor's actual capabilities.  Therefore, if you
are using an AM3 processor on an AM2+ mainboard, you can safely use the
"force=1" parameter.

There is one temperature measurement value, available as temp1_input in
sysfs. It is measured in degrees Celsius with a resolution of 1/8th degree.
Please note that it is defined as a relative value; to quote the AMD manual:

  Tctl is the processor temperature control value, used by the platform to
  control cooling systems. Tctl is a non-physical temperature on an
  arbitrary scale measured in degrees. It does _not_ represent an actual
  physical temperature like die or case temperature. Instead, it specifies
  the processor temperature relative to the point at which the system must
  supply the maximum cooling for the processor's specified maximum case
  temperature and maximum thermal power dissipation.

The maximum value for Tctl is available in the file temp1_max.

If the BIOS has enabled hardware temperature control, the threshold at
which the processor will throttle itself to avoid damage is available in
temp1_crit and temp1_crit_hyst.
