Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F103471453
D21958.id63114.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
10 KB
Referenced Files
None
Subscribers
None
D21958.id63114.diff
View Options
Index: share/man/man4/Makefile
===================================================================
--- share/man/man4/Makefile
+++ share/man/man4/Makefile
@@ -504,6 +504,7 @@
ste.4 \
stf.4 \
stge.4 \
+ ${_superio.4} \
sym.4 \
syncache.4 \
syncer.4 \
@@ -816,6 +817,7 @@
_rr232x.4= rr232x.4
_speaker.4= speaker.4
_spkr.4= spkr.4
+_superio.4= superio.4
_tpm.4= tpm.4
_urtw.4= urtw.4
_viawd.4= viawd.4
Index: share/man/man4/superio.4
===================================================================
--- /dev/null
+++ share/man/man4/superio.4
@@ -0,0 +1,111 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+.\"
+.\" Copyright (c) 2019 Andriy Gapon <avg@FreeBSD.org>
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd October 10, 2019
+.Dt SUPERIO 4
+.Os
+.Sh NAME
+.Nm superio
+.Nd Super I/O controller and bus driver
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following line in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device superio"
+.Ed
+.Pp
+Alternatively, to load the driver as a
+module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+superio_load="YES"
+.Ed
+.Sh 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
+.Bl -bullet -compact
+.It
+a floppy disk controller
+.It
+a parallel port
+.It
+a serial port
+.It
+a PS/2 mouse and keyboard controller
+.It
+a hardware monitoring controller
+.It
+a watchdog timer
+.It
+a controller for general purpose input-output
+.El
+.Pp
+The
+.Nm
+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-aconfigured by
+.Xr acpi 4 .
+The
+.Nm
+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,
+.Xr fdc 4
+provides access to the floppy disk controller.
+.Pp
+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
+.Nm
+driver.
+.Pp
+The driver itself attaches to the ISA bus as all supported controllers are
+accessed via LPC I/O ports.
+.Pp
+The
+.Nm
+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.
+.Sh HARDWARE
+The
+.Nm
+driver supports a multitude of Super I/O controllers produced by Nuvoton,
+formerly known as Winbond, and ITE.
+.Sh SEE ALSO
+.Xr superio 9
+.Sh HISTORY
+The
+.Nm
+driver was written by
+.An Andriy Gapon Aq Mt avg@FreeBSD.org .
Index: share/man/man9/Makefile
===================================================================
--- share/man/man9/Makefile
+++ share/man/man9/Makefile
@@ -301,6 +301,7 @@
store.9 \
style.9 \
style.lua.9 \
+ ${_superio.9} \
swi.9 \
sx.9 \
syscall_helper_register.9 \
@@ -2308,5 +2309,24 @@
zone.9 uma_zone_set_maxcache.9 \
zone.9 uma_zone_set_warning.9 \
zone.9 uma_zsecond_create.9
+
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
+_superio.9= superio.9
+MLINKS+=superio.9 superio_devid.9 \
+ superio.9 superio_dev_disable.9 \
+ superio.9 superio_dev_enable.9 \
+ superio.9 superio_dev_enabled.9 \
+ superio.9 superio_find_dev.9 \
+ superio.9 superio_find_dev.9 \
+ superio.9 superio_get_dma.9 \
+ superio.9 superio_get_iobase.9 \
+ superio.9 superio_get_irq.9 \
+ superio.9 superio_get_ldn.9 \
+ superio.9 superio_get_type.9 \
+ superio.9 superio_read.9 \
+ superio.9 superio_revid.9 \
+ superio.9 superio_vendor.9 \
+ superio.9 superio_write.9
+.endif
.include <bsd.prog.mk>
Index: share/man/man9/superio.9
===================================================================
--- /dev/null
+++ share/man/man9/superio.9
@@ -0,0 +1,189 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+.\"
+.\" Copyright (c) 2019 Andriy Gapon <avg@FreeBSD.org>
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd October 10, 2019
+.Dt SUPERIO 9
+.Os
+.Sh NAME
+.Nm superio ,
+.Nm superio_devid ,
+.Nm superio_dev_disable ,
+.Nm superio_dev_enable ,
+.Nm superio_dev_enabled ,
+.Nm superio_find_dev ,
+.Nm superio_get_dma ,
+.Nm superio_get_iobase ,
+.Nm superio_get_irq ,
+.Nm superio_get_ldn ,
+.Nm superio_get_type ,
+.Nm superio_read ,
+.Nm superio_revid ,
+.Nm superio_vendor ,
+.Nm superio_write
+.Nd Super I/O bus interface
+.Sh SYNOPSIS
+.In sys/bus.h
+.In dev/superio/superio.h
+.Ft uint16_t
+.Fn superio_devid "device_t dev"
+.Ft void
+.Fn superio_dev_disable "device_t dev" "uint8_t mask"
+.Ft void
+.Fn superio_dev_enable "device_t dev" "uint8_t mask"
+.Ft bool
+.Fn superio_dev_enabled "device_t dev" "uint8_t mask"
+.Ft device_t
+.Fn superio_find_dev "device_t dev" "superio_dev_type_t type" "int ldn"
+.Ft uint8_t
+.Fn superio_get_dma "device_t dev"
+.Ft uint16_t
+.Fn superio_get_iobase "device_t dev"
+.Ft uint8_t
+.Fn superio_get_irq "device_t dev"
+.Ft uint8_t
+.Fn superio_get_ldn "device_t dev"
+.Ft superio_dev_type_t
+.Fn superio_get_type "device_t dev"
+.Ft uint8_t
+.Fn superio_read "device_t dev" "uint8_t reg"
+.Ft uint8_t
+.Fn superio_revid "device_t dev"
+.Ft superio_vendor_t
+.Fn superio_vendor "device_t dev"
+.Ft void
+.Fn superio_write "device_t dev" "uint8_t reg" "uint8_t val"
+.Sh DESCRIPTION
+The
+.Nm
+set of functions are used for managing Super I/O devices.
+The functions provide support for
+raw configuration access,
+locating devices,
+device information,
+and
+device configuration.
+.Ss The controller interface
+The
+.Fn superio_vendor
+function is used to get a vendor of the Super I/O controller
+.Fa dev .
+Possible return values are
+.Dv SUPERIO_VENDOR_ITE
+and
+.Dv SUPERIO_VENDOR_NUVOTON .
+.Pp
+The
+.Fn superio_devid
+function is used to get a device ID of the Super I/O controller
+.Fa dev .
+.Pp
+The
+.Fn superio_revid
+function is used to get a revision ID of the Super I/O controller
+.Fa dev .
+.Pp
+The
+.Fn superio_find_dev
+function is used to find a device on the
+.Xr superio 4
+bus, specified by
+.Fa dev ,
+that has the requested type and logical device number.
+Either of those, but not both, can be a wildcard.
+Supported types are
+.Dv SUPERIO_DEV_GPIO ,
+.Dv SUPERIO_DEV_HWM ,
+and
+.Dv SUPERIO_DEV_WDT .
+The wildcard value for
+.Fa type
+is
+.Dv SUPERIO_DEV_NONE .
+The wildcard value for
+.Fa ldn
+is -1.
+.Ss The device interface
+The
+.Fn superio_read
+function is used to read data from the Super I/O configuration register
+of the device
+.Fa dev .
+.Pp
+The
+.Fn superio_write
+function is used to write data to the Super I/O configuration register
+of the device
+.Fa dev .
+.Pp
+The
+.Fn superio_dev_enable ,
+.Fn superio_dev_disable ,
+and
+.Fn superio_dev_enabled
+functions are used to enable, disable, or check status of the device
+.Fa dev .
+The
+.Fa mask
+parameter selects sub-functions of a device that supports them.
+For devices that do not have sub-functions,
+.Fa mask
+should be set to 1.
+.Ss The accessor interface
+The
+.Fn superio_get_dma
+is used to get a DMA channel number configured for the device
+.Fa dev .
+.Pp
+The
+.Fn superio_get_iobase
+is used to get a base I/O port configured for the device
+.Fa dev .
+The device may expose additional or alternative configuration access via
+the I/O ports.
+.Pp
+The
+.Fn superio_get_irq
+is used to get an interrupt number configured for the device
+.Fa dev .
+.Pp
+The
+.Fn superio_get_ldn
+is used to get a Logical Device Number of the device
+.Fa dev .
+.Pp
+The
+.Fn superio_get_type
+is used to get a type of the device
+.Fa dev .
+.Sh SEE ALSO
+.Xr superio 4 ,
+.Xr device 9 ,
+.Xr driver 9
+.Sh AUTHORS
+This manual page was written by
+.An Andriy Gapon Mt avg@FreeBSD.org
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Nov 26, 11:23 AM (16 h, 54 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14860244
Default Alt Text
D21958.id63114.diff (10 KB)
Attached To
Mode
D21958: add manual pages for the superio driver and interface
Attached
Detach File
Event Timeline
Log In to Comment