^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) Kernel driver abituguru
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) =======================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) Supported chips:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Abit uGuru revision 1 & 2 (Hardware Monitor part only)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) Prefix: 'abituguru'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Addresses scanned: ISA 0x0E0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) Datasheet: Not available, this driver is based on reverse engineering.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) A "Datasheet" has been written based on the reverse engineering it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) should be available in the same dir as this file under the name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) abituguru-datasheet.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) Note:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) The uGuru is a microcontroller with onboard firmware which programs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) it to behave as a hwmon IC. There are many different revisions of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) firmware and thus effectively many different revisions of the uGuru.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) Below is an incomplete list with which revisions are used for which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) Motherboards:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) - uGuru 1.00 ~ 1.24 (AI7, KV8-MAX3, AN7) [1]_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) - uGuru 2.0.0.0 ~ 2.0.4.2 (KV8-PRO)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) - uGuru 2.1.0.0 ~ 2.1.2.8 (AS8, AV8, AA8, AG8, AA8XE, AX8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) - uGuru 2.2.0.0 ~ 2.2.0.6 (AA8 Fatal1ty)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) - uGuru 2.3.0.0 ~ 2.3.0.9 (AN8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) - uGuru 3.0.0.0 ~ 3.0.x.x (AW8, AL8, AT8, NI8 SLI, AT8 32X, AN8 32X,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) AW9D-MAX) [2]_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) .. [1] For revisions 2 and 3 uGuru's the driver can autodetect the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) sensortype (Volt or Temp) for bank1 sensors, for revision 1 uGuru's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) this does not always work. For these uGuru's the autodetection can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) be overridden with the bank1_types module param. For all 3 known
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) revision 1 motherboards the correct use of this param is:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) bank1_types=1,1,0,0,0,0,0,2,0,0,0,0,2,0,0,1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) You may also need to specify the fan_sensors option for these boards
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) fan_sensors=5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) .. [2] There is a separate abituguru3 driver for these motherboards,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) the abituguru (without the 3 !) driver will not work on these
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) motherboards (and visa versa)!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) Authors:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) - Hans de Goede <j.w.r.degoede@hhs.nl>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) - (Initial reverse engineering done by Olle Sandberg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) <ollebull@gmail.com>)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) Module Parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) -----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) * force: bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) Force detection. Note this parameter only causes the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) detection to be skipped, and thus the insmod to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) succeed. If the uGuru can't be read the actual hwmon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) driver will not load and thus no hwmon device will get
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) registered.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) * bank1_types: int[]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) Bank1 sensortype autodetection override:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) * -1 autodetect (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) * 0 volt sensor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) * 1 temp sensor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) * 2 not connected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) * fan_sensors: int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) Tell the driver how many fan speed sensors there are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) on your motherboard. Default: 0 (autodetect).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) * pwms: int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) Tell the driver how many fan speed controls (fan
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) pwms) your motherboard has. Default: 0 (autodetect).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) * verbose: int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) How verbose should the driver be? (0-3):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) * 0 normal output
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) * 1 + verbose error reporting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) * 2 + sensors type probing info (default)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) * 3 + retryable error reporting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) Default: 2 (the driver is still in the testing phase)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) Notice: if you need any of the first three options above please insmod the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) driver with verbose set to 3 and mail me <j.w.r.degoede@hhs.nl> the output of:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) dmesg | grep abituguru
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) This driver supports the hardware monitoring features of the first and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) second revision of the Abit uGuru chip found on Abit uGuru featuring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) motherboards (most modern Abit motherboards).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) The first and second revision of the uGuru chip in reality is a Winbond
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) W83L950D in disguise (despite Abit claiming it is "a new microprocessor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) designed by the ABIT Engineers"). Unfortunately this doesn't help since the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) W83L950D is a generic microcontroller with a custom Abit application running
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) on it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) Despite Abit not releasing any information regarding the uGuru, Olle
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) Sandberg <ollebull@gmail.com> has managed to reverse engineer the sensor part
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) of the uGuru. Without his work this driver would not have been possible.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) Known Issues
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) ------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) The voltage and frequency control parts of the Abit uGuru are not supported.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) .. toctree::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) :maxdepth: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) abituguru-datasheet.rst