SUPERIO(4)
π SUPERIO π
okay bestie, this is superio, section 4 of the Kernel Interfaces Manual, and she is that girl. a Super I/O controller + bus driver, fr fr. let's get into it π¦
β¨ NAME β¨
superio β Super I/O controller and bus driver π
πΈ SYNOPSIS πΈ
so to get this driver compiled into your kernel, you drop this line in your kernel configuration file:
device superio
OR, if you'd rather load her as a module at boot time (which, honestly, slay), you put this in loader.conf(5):
superio_load="YES"
π DESCRIPTION π
okay so picture this: Super I/O is an I/O controller that literally combines a bunch of low-bandwidth devices that otherwise have absolutely nothing to do with each other. it's giving β¨friend group of total strangersβ¨. a typical Super I/O can contain stuff like:
- 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 chillin' inside the Super I/O controller that can only be accessed or discovered through the controller's interface. iykyk.
now, some of these Super I/O devices have standardized interfaces. those ones either use well-known legacy resources, or they get advertised via ACPI, or honestly both. and they can be configured either using ISA bus hints or auto-configured by acpi(4). and the superio driver? not designed to interact with that kind of device, no cap. those babies get handled by their own respective drivers without any knowledge of the Super I/O specifics whatsoever. for instance, fdc(4) provides access to the floppy disk controller. periodt. πββοΈ
but THEN there are other Super I/O devices that don't have any standardized interface at all. drivers for those can be written using the facilities of the superio driver. so like, main character energy for driver authors π«Ά
the driver itself attaches to the ISA bus, because all supported controllers are accessed via LPC I/O ports.
and here's the unusual part, bestie β the superio driver is doing double duty π she's both a controller driver for a variety of Super I/O controllers and a bus driver for supported devices inside those controllers. not me being two things at once, iconic honestly.
π HARDWARE π
the superio driver supports a multitude of Super I/O controllers produced by:
- Nuvoton β formerly known as Winbond
- ITE... ok wait let me redo that: ITE π
π SEE ALSO π
π HISTORY π
the superio driver was written by Andriy Gapon <avg@FreeBSD.org>. king behavior, we love to see it π
that's the whole page, bestie!! she's from the Debian crew and this version is dated October 11, 2019, and of course the title up top is SUPERIO(4). go forth and configure responsibly ππ¦β¨
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- π the page's license: BSD-2-Clause-FreeBSD
- Copyright (c) 2019 Andriy Gapon <avg@FreeBSD.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms