superio —
Super
I/O controller and bus driver
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):
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.
The
superio driver supports a multitude of Super
I/O controllers produced by Nuvoton, formerly known as Winbond, and ITE.
superio(9)
The
superio driver was written by
Andriy Gapon
<
[email protected]>.