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" (FX-Series), "Trinity", "Kaveri"
* AMD Family 16h processors: "Kabini", "Mullins"

  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/16h 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.
