SUPERIO(4)

NAME
superio - Super I/O controller and bus driver

SYNOPSIS
To compile this driver into the kernel, place the following line in your kernel configuration file:

device superio

Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):

    superio_load="YES"

DESCRIPTION
Super I/O is an I/O controller that combines various low-bandwidth devices that can be functionally unrelated otherwise. A typical Super I/O can contain devices such as
•   a floppy disk controller
•   a parallel port
•   a serial port
•   a PS/2 mouse and keyboard controller
•   a hardware monitoring controller
•   a watchdog timer
•   a controller for general purpose input-output

The superio driver provides support for devices residing in the Super I/O controller that can only be accessed or discovered using the controller's interface. Some of the Super I/O devices have standardized interfaces. Such devices either use well-known legacy resources or they are advertised via ACPI or both. They can be configured either using ISA bus hints or they are auto-configured by acpi(4). The superio driver is not designed to interact with that kind of devices. They can be handled by their respective drivers without any knowledge of the Super I/O specifics. For instance, fdc(4) provides access to the floppy disk controller.

There are other Super I/O devices that do not have any standardized interface. Drivers for those devices can be written using facilities of the superio driver.

The driver itself attaches to the ISA bus as all supported controllers are accessed via LPC I/O ports.

The superio driver is unusual as it is both a controller driver for a variety of Super I/O controllers and a bus driver for supported devices in those controllers.

HARDWARE
The superio driver supports a multitude of Super I/O controllers produced by Nuvoton, formerly known as Winbond, and ITE.

SEE ALSO
superio(9)

HISTORY
The superio driver was written by Andriy Gapon <avg@FreeBSD.org>.