.TH SUPERIOTOOL 8 "January 13, 2008"
.SH NAME
superiotool \- Super I/O detection tool
.SH SYNOPSIS
.B superiotool \fR[\fB\-dlVvh\fR] 
.SH DESCRIPTION
.B superiotool
is a GPL'd user-space utility which can
.PP
 * detect which Super I/O chip is soldered onto your mainboard,
.PP
 * at which configuration port it's located (usually 0x2e or 0x4e), and
.PP
 * dump all register contents of the Super I/O chip, together with the
   default values as per datasheet (to make comparing the values easy).
.PP
It is mainly used for coreboot development purposes (see coreboot.org
for details on coreboot), but it may also be useful for other things.
.PP
The list of supported Super I/O chips is available at:
.br
.B http://coreboot.org/Superiotool#Supported_devices
.SH OPTIONS
If no command line option is specified,
.B superiotool
merely tries to detect the Super I/O chip.
You must use the
.B "\-d"
option to dump the Super I/O register contents.
.TP
.B "\-d, \-\-dump"
Dump Super I/O registers (if the Super I/O chip is detected and
.B superiotool
supports the
.B "\-\-dump"
option for this chip). The output will look something like this:
.sp
.B "$ ./superiotool -d"
.br
Found SMSC FDC37N769 (id=0x28, rev=0x01) at 0x3f0
.br
Register dump:
.br
idx 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11...
.br
val 20 90 80 f4 00 00 ff 00 00 00 40 00 0e 28 01 00 00 00...
.br
def 28 9c 88 70 00 00 ff 00 00 00 00 00 02 28 NA 00 00 80...
.sp
The
.B idx
fields contain the register numbers/indexes of the Super I/O, the
.B val
fields contain the contents of the respective register as read from the
Super I/O, and the
.B def
fields contain the default values for the respective register, as specified
in the datasheet.
.sp
The numbers in the output are all in hex format, and some special values
may also occur:
.BR NA " stands for"
.I "not available"
(i.e., the datasheet doesn't specify a default value for the respective
register),
.BR RR " means"
.I reserved
(the datasheet explicitly marks this register as reserved), and
.BR MM " means"
.IR misc ,
which can mean several things. It's recommended to consult the datasheet for
detailed information about the
.BR MM " fields."
.TP
.B "\-l, \-\-list-supported"
List all Super I/O chips recognized by
.BR superiotool ". The phrase"
.BR (dump available)
following a chip name indicates that
.B superiotool
supports the
.B --dump
option for this chip.
.TP
.B "\-V, \-\-verbose"
Enable verbose mode. This option can be used together with the
.BR "\-d" " option."
.sp
The verbose output will not only list for which type of Super I/O the tool
is scanning, but also at which configuration port it's probing, and which
Super I/O initialization sequence is used. If no Super I/O was detected
in a probing run, the returned output will be shown, as it may be useful
for figuring out which (currently unrecognized) Super I/O chip this may be.
.TP
.B "\-v, \-\-version"
Show version information and exit.
.TP
.B "\-h, \-\-help"
Show a help text and exit.
.SH BUGS
Please report any bugs at http://tracker.coreboot.org/trac/coreboot/
or on the coreboot mailing list (http://coreboot.org/Mailinglist).
.SH AUTHORS
Please see the individual source code files and/or the README file.
.SH LICENCE
.B superiotool
is covered by the GNU General Public License (GPL), either version 2 of
the License, or (at your option) any later version.
.SH SEE ALSO
.BR sensors-detect (8)
