Skip to content

Commit

Permalink
aibs: Add ASUSTeK AI Booster ACPI ATK0110 sensors
Browse files Browse the repository at this point in the history
Submitted-by:   Constantine A. Murenin <cnst+dfly@bugmail.mojo.ru>
DragonFly bugs: <http://bugs.dragonflybsd.org/issue1529>
  • Loading branch information
Thomas Nikolajsen authored and Matthew Dillon committed Sep 29, 2009
1 parent 15aa993 commit 41a3075
Show file tree
Hide file tree
Showing 7 changed files with 633 additions and 1 deletion.
1 change: 1 addition & 0 deletions share/man/man4/Makefile
Expand Up @@ -20,6 +20,7 @@ MAN= aac.4 \
ahc.4 \
ahci.4 \
ahd.4 \
aibs.4 \
ale.4 \
altq.4 \
amd.4 \
Expand Down
222 changes: 222 additions & 0 deletions share/man/man4/aibs.4
@@ -0,0 +1,222 @@
.\" $OpenBSD: aibs.4,v 1.4 2009/07/30 06:30:45 jmc Exp $
.\"
.\" Copyright (c) 2009 Constantine A. Murenin <cnst+dfly@bugmail.mojo.ru>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd September 23, 2009
.Dt AIBS 4
.Os
.Sh NAME
.Nm aibs
.Nd "ASUSTeK AI Booster ACPI ATK0110 voltage, temperature and fan sensor"
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
kernel configuration file:
.Bd -ragged -offset indent
.Cd "device acpi"
.Cd "device aibs"
.Ed
.Pp
Alternatively, to load the driver as a
module at boot time, place the following lines in
.Xr loader.conf 5 :
.Bd -literal -offset indent
acpi_load="YES"
aibs_load="YES"
.Ed
.Sh DESCRIPTION
The
.Nm
driver provides support for the voltage, temperature and fan sensors
available through the
ATK0110
ASOC
ACPI
device
on ASUSTeK motherboards.
The number of sensors of each type,
as well as the description of each sensor,
varies according to the motherboard.
.Pp
The driver supports an arbitrary set of sensors,
provides descriptions regarding what each sensor is used for,
and reports whether each sensor is within the specifications
as defined by the motherboard manufacturer through ACPI.
.Pp
The
.Nm
driver supports sensor states as follows:
temperature sensors can have a state of
.Dv OK ,
.Dv WARN ,
.Dv CRIT
or
.Dv UNKNOWN ;
fan and voltage sensors can have a state of
.Dv OK
or
.Dv WARN
only.
Temperature sensors that have a reading of 0
are marked as invalid and their state is set to
.Dv UNKNOWN ,
whereas all other sensors are always assumed valid.
Temperature sensors have two upper limits
.Dv ( WARN
and
.Dv CRIT ) ,
fan sensors have either only the lower limit, or
one lower and one upper limit,
and voltage sensors always have a lower and an upper limit.
.Pp
Sensor values are made available through the
.Dv HW_SENSORS
.Xr sysctl 3
interface,
and can be monitored with the
.Xr systat 1
.Ar sensors
display,
.Xr sensorsd 8
and
.Xr sysctl 8
.Ar hw.sensors .
For example, on an Asus Stricker Extreme motherboard:
.Bd -literal -offset indent
$ sysctl hw.sensors.aibs0
hw.sensors.aibs0.temp0=31.00 degC (CPU Temperature), OK
hw.sensors.aibs0.temp1=43.00 degC (MB Temperature), OK
hw.sensors.aibs0.fan0=2490 RPM (CPU FAN Speed), OK
hw.sensors.aibs0.fan1=0 RPM (CHASSIS FAN Speed), WARNING
hw.sensors.aibs0.fan2=0 RPM (OPT1 FAN Speed), WARNING
hw.sensors.aibs0.fan3=0 RPM (OPT2 FAN Speed), WARNING
hw.sensors.aibs0.fan4=0 RPM (OPT3 FAN Speed), WARNING
hw.sensors.aibs0.fan5=0 RPM (OPT4 FAN Speed), WARNING
hw.sensors.aibs0.fan6=0 RPM (OPT5 FAN Speed), WARNING
hw.sensors.aibs0.fan7=0 RPM (PWR FAN Speed), WARNING
hw.sensors.aibs0.volt0=1.26 VDC (Vcore Voltage), OK
hw.sensors.aibs0.volt1=3.25 VDC ( +3.3 Voltage), OK
hw.sensors.aibs0.volt2=4.95 VDC ( +5.0 Voltage), OK
hw.sensors.aibs0.volt3=11.78 VDC (+12.0 Voltage), OK
hw.sensors.aibs0.volt4=1.23 VDC (1.2VHT Voltage), OK
hw.sensors.aibs0.volt5=1.50 VDC (SB CORE Voltage), OK
hw.sensors.aibs0.volt6=1.25 VDC (CPU VTT Voltage), OK
hw.sensors.aibs0.volt7=0.93 VDC (DDR2 TERM Voltage), OK
hw.sensors.aibs0.volt8=1.23 VDC (NB CORE Voltage), OK
hw.sensors.aibs0.volt9=1.87 VDC (MEMORY Voltage), OK
.Ed
.Pp
Generally, sensors provided by the
.Nm
driver may also be supported by a variety of other drivers,
such as
.Xr lm 4
or
.Xr it 4 .
The precise collection of
.Nm
sensors is comprised of the sensors
specifically utilised in the motherboard
design, which may be supported through
a combination of one or more physical hardware monitoring chips.
.Pp
The
.Nm
driver, however, provides the following advantages
when compared to the native hardware monitoring drivers:
.Bl -bullet
.It
Sensor values from
.Nm
are expected to be more reliable.
For example, voltage sensors in many hardware monitoring chips
can only sense voltage from 0 to 2 or 4 volts, and the excessive
voltage is removed by the resistors, which may vary with the motherboard
and with the voltage that is being sensed.
In
.Nm ,
the required resistor factors are provided by
the motherboard manufacturer through ACPI;
in the native drivers, the resistor factors
are encoded into the driver based on the chip manufacturer's recommendations.
In essence, sensor values from
.Nm
are very likely to be identical to the readings from the
Hardware Monitor screen in the BIOS.
.It
Sensor descriptions from
.Nm
are more likely to match the markings on the motherboard.
.It
Sensor status is supported by
.Nm .
The status is reported based on the acceptable range of values
for each individual sensor as suggested by the motherboard manufacturer.
For example, the threshold for the CPU temperature sensor is likely
to be significantly higher than that for the chassis temperature sensor.
.It
Support for newer chips in
.Nm .
Newer chips may miss a native driver,
but should be supported through
.Nm
regardless.
.El
.Pp
As a result, sensor readings from the actual
native hardware monitoring drivers
are redundant when
.Nm
is present, and
may be ignored as appropriate.
Whereas on
.Ox
the native drivers have to be specifically disabled should
their presence be judged unnecessary,
on
.Dx
the
.Xr lm 4
and
.Xr it 4
are not probed provided that
.Xr acpi 4
is configured and the system potentially supports
the hardware monitoring chip through ACPI.
.Sh SEE ALSO
.Xr systat 1 ,
.Xr sysctl 3 ,
.Xr acpi 4 ,
.Xr intro 4 ,
.Xr sensorsd 8 ,
.Xr sysctl 8
.Sh HISTORY
The
.Nm
driver first appeared in
.Ox 4.7
and
.Dx 2.5 .
.Sh AUTHORS
The
.Nm
driver was written for
.Ox
and
.Dx
by
.An Constantine A. Murenin Aq http://cnst.su/ ,
David R. Cheriton School of Computer Science,
University of Waterloo.
1 change: 1 addition & 0 deletions sys/conf/files
Expand Up @@ -1712,6 +1712,7 @@ ${OSACPI_MI_DIR}/acpi_asus/acpi_asus.c optional acpi_asus acpi
${OSACPI_MI_DIR}/acpi_toshiba/acpi_toshiba.c optional acpi_toshiba acpi
${OSACPI_MI_DIR}/acpi_thinkpad/acpi_thinkpad.c optional acpi_thinkpad acpi
${OSACPI_MI_DIR}/acpi_video/acpi_video.c optional acpi_video acpi
${OSACPI_MI_DIR}/aibs/atk0110.c optional aibs acpi

# ACPICA code
${ACPICA_DIR}/debugger/dbcmds.c optional acpi acpi_debug
Expand Down
1 change: 1 addition & 0 deletions sys/config/LINT
Expand Up @@ -2663,6 +2663,7 @@ device acpi_asus # Asus laptop support
device acpi_thinkpad # ThinkPad support
device acpi_toshiba # Toshiba laptop support
device acpi_video # ACPI video extensions
device aibs # ASUSTeK AI Booster (ACPI ASOC ATK0110)
device pmtimer # adjust the system clock after resume

# DRM options:
Expand Down
2 changes: 1 addition & 1 deletion sys/dev/acpica5/Makefile
Expand Up @@ -115,7 +115,7 @@ acpi_wakecode.h: acpi_wakecode.S
${MAKE} -f ${SYSDIR}/${OSACPI_MD_DIR}/Makefile \
MAKESRCPATH=${SYSDIR}/${OSACPI_MD_DIR}

SUBDIR= acpi_asus acpi_thinkpad acpi_toshiba acpi_video
SUBDIR= acpi_asus acpi_thinkpad acpi_toshiba acpi_video aibs
all: ${PROG} ${SUBDIR}

.include <bsd.kmod.mk>
6 changes: 6 additions & 0 deletions sys/dev/acpica5/aibs/Makefile
@@ -0,0 +1,6 @@
KMOD= aibs
CFLAGS+= -I${.OBJDIR}/.. -I${.CURDIR}/..
SRCS= atk0110.c
SRCS+= opt_acpi.h bus_if.h device_if.h

.include <bsd.kmod.mk>

0 comments on commit 41a3075

Please sign in to comment.