SUPERIO(4)
π SUPERIO(4) π
okay so bestie, listen up β this is the Super I/O controller and bus driver page from section 4 of the manual, and honestly it's giving main character energy because this driver is out here doing TWO jobs at once. let me break it down for you π«Ά
β¨ SYNOPSIS β¨
so you wanna get this driver into your kernel? say less. drop this line into your kernel config file:
device superio
or, if you'd rather load it as a module at boot time (iconic of you), put this in loader.conf(5):
superio_load="YES"
πΈ DESCRIPTION πΈ
okay so a Super I/O is this I/O controller that literally combines a bunch of low-bandwidth devices that otherwise have like, zero relationship to each other. it's the friend group that makes no sense but somehow works. 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 supports the devices living inside the Super I/O controller that you can only access or discover through the controller's own interface. no cap. π
some of these Super I/O devices have standardized interfaces β they either use well-known legacy resources, or they're advertised via ACPI, or both, bestie. they can be configured with ISA bus hints or auto-configured by acpi(4). and here's the thing: the superio driver is not designed to interact with that kind of device. those get handled by their own drivers without needing to know anything about the Super I/O specifics β like, for instance, fdc(4) gives you access to the floppy disk controller. slay.
but then there's the other Super I/O devices that don't have any standardized interface. drivers for those? you write them using the facilities of the superio driver. periodt.
the driver itself attaches to the ISA bus, because all supported controllers are accessed via LPC I/O ports. the way this driver is both a controller driver for a whole variety of Super I/O controllers and a bus driver for the supported devices inside them? unusual. iconic. highkey obsessed. π¦
π HARDWARE π
the superio driver supports a multitude of Super I/O controllers made by Nuvoton (formerly known as Winbond) and ITE, namely:
- Fintek F81803
- Fintek F81865
- Nuvoton NCT5104D/NCT6102D/NCT6106D rev. A and B+
- Nuvoton NCT5585D
- Nuvoton NCT6116D
- Nuvoton NCT6775
- Nuvoton NCT6776
- Nuvoton NCT6779
- Nuvoton NCT6791
- Nuvoton NCT6792
- Nuvoton NCT6793
- Nuvoton NCT6795
- Nuvoton NCT6796D-E
- Winbond 83627HF/F/HG/G/S/THF/EHF/DHG/UHG/DHG-P
- Winbond 83637HF
- Winbond 83667HG/HG-B
- Winbond 83687THF
- Winbond 83697HF/UG
look at that list. it ate. π₯
π SEE ALSO π
π HISTORY π
the superio driver was written by Andriy Gapon <avg@FreeBSD.org>. we love a legend. π
okay that's the whole vibe bestie β huge shoutout to the Debian gang for this page, dated October 11, 2019, and that's the SUPERIO(4) tea for today πβ¨
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- nixpkgs unstable: source
- π the page's license: BSD-2-Clause
- Copyright (c) 2019 Andriy Gapon <avg@FreeBSD.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms