aboutsummaryrefslogtreecommitdiff
path: root/share/man/man4
diff options
context:
space:
mode:
Diffstat (limited to 'share/man/man4')
-rw-r--r--share/man/man4/Makefile52
-rw-r--r--share/man/man4/aac.410
-rw-r--r--share/man/man4/aacraid.412
-rw-r--r--share/man/man4/acpi_wmi.461
-rw-r--r--share/man/man4/ahc.410
-rw-r--r--share/man/man4/ahd.46
-rw-r--r--share/man/man4/ata.44
-rw-r--r--share/man/man4/aw_gpio.4 (renamed from share/man/man4/man4.arm/aw_gpio.4)0
-rw-r--r--share/man/man4/aw_mmc.4 (renamed from share/man/man4/man4.arm/aw_mmc.4)4
-rw-r--r--share/man/man4/aw_rtc.4 (renamed from share/man/man4/man4.arm/aw_rtc.4)0
-rw-r--r--share/man/man4/aw_sid.4 (renamed from share/man/man4/man4.arm/aw_sid.4)0
-rw-r--r--share/man/man4/aw_spi.4 (renamed from share/man/man4/man4.arm/aw_spi.4)0
-rw-r--r--share/man/man4/aw_syscon.4 (renamed from share/man/man4/man4.arm/aw_syscon.4)0
-rw-r--r--share/man/man4/blackhole.47
-rw-r--r--share/man/man4/bridge.4177
-rw-r--r--share/man/man4/capsicum.447
-rw-r--r--share/man/man4/cdceem.47
-rw-r--r--share/man/man4/cxgbe.45
-rw-r--r--share/man/man4/ddb.412
-rw-r--r--share/man/man4/dtrace_dtrace.4191
-rw-r--r--share/man/man4/dtrace_fbt.4332
-rw-r--r--share/man/man4/dtrace_kinst.412
-rw-r--r--share/man/man4/dtrace_lockstat.44
-rw-r--r--share/man/man4/dtrace_profile.4129
-rw-r--r--share/man/man4/epair.445
-rw-r--r--share/man/man4/gif.4171
-rw-r--r--share/man/man4/gpio.46
-rw-r--r--share/man/man4/gpioled.415
-rw-r--r--share/man/man4/gve.48
-rw-r--r--share/man/man4/hwt.4144
-rw-r--r--share/man/man4/ice.4972
-rw-r--r--share/man/man4/iflib.414
-rw-r--r--share/man/man4/ioat.42
-rw-r--r--share/man/man4/ip.42
-rw-r--r--share/man/man4/iwlwifi.417
-rw-r--r--share/man/man4/iwx.42
-rw-r--r--share/man/man4/le.44
-rw-r--r--share/man/man4/linprocfs.44
-rw-r--r--share/man/man4/linsysfs.44
-rw-r--r--share/man/man4/linuxkpi.442
-rw-r--r--share/man/man4/linuxkpi_wlan.4134
-rw-r--r--share/man/man4/mac_do.420
-rw-r--r--share/man/man4/man4.aarch64/Makefile6
-rw-r--r--share/man/man4/man4.aarch64/armv8crypto.42
-rw-r--r--share/man/man4/man4.aarch64/enetc.42
-rw-r--r--share/man/man4/man4.aarch64/felix.42
-rw-r--r--share/man/man4/man4.aarch64/rk_gpio.42
-rw-r--r--share/man/man4/man4.aarch64/rk_grf.42
-rw-r--r--share/man/man4/man4.aarch64/rk_grf_gpio.42
-rw-r--r--share/man/man4/man4.aarch64/rk_i2c.42
-rw-r--r--share/man/man4/man4.aarch64/rk_pinctrl.42
-rw-r--r--share/man/man4/man4.arm/Makefile6
-rw-r--r--share/man/man4/man4.arm/am335x_dmtpps.42
-rw-r--r--share/man/man4/man4.arm/bcm283x_pwm.42
-rw-r--r--share/man/man4/man4.arm/devcfg.42
-rw-r--r--share/man/man4/man4.arm/imx6_ahci.42
-rw-r--r--share/man/man4/man4.arm/imx6_snvs.42
-rw-r--r--share/man/man4/man4.arm/imx_spi.42
-rw-r--r--share/man/man4/man4.arm/imx_wdog.42
-rw-r--r--share/man/man4/man4.arm/mge.42
-rw-r--r--share/man/man4/man4.arm/ti_adc.42
-rw-r--r--share/man/man4/man4.powerpc/abtn.42
-rw-r--r--share/man/man4/man4.powerpc/adb.42
-rw-r--r--share/man/man4/man4.powerpc/akbd.42
-rw-r--r--share/man/man4/man4.powerpc/ams.42
-rw-r--r--share/man/man4/man4.powerpc/cuda.42
-rw-r--r--share/man/man4/man4.powerpc/dtsec.42
-rw-r--r--share/man/man4/man4.powerpc/llan.42
-rw-r--r--share/man/man4/man4.powerpc/pmu.42
-rw-r--r--share/man/man4/man4.powerpc/smu.42
-rw-r--r--share/man/man4/man4.powerpc/snd_ai2s.42
-rw-r--r--share/man/man4/man4.powerpc/snd_davbus.42
-rw-r--r--share/man/man4/man4.powerpc/tsec.42
-rw-r--r--share/man/man4/md.44
-rw-r--r--share/man/man4/mlx.424
-rw-r--r--share/man/man4/mmcsd.411
-rw-r--r--share/man/man4/mpr.44
-rw-r--r--share/man/man4/mrsas.4199
-rw-r--r--share/man/man4/mtw.478
-rw-r--r--share/man/man4/nda.412
-rw-r--r--share/man/man4/ng_patch.413
-rw-r--r--share/man/man4/nvd.46
-rw-r--r--share/man/man4/nvdimm.42
-rw-r--r--share/man/man4/pci.413
-rw-r--r--share/man/man4/pf.452
-rw-r--r--share/man/man4/pfsync.432
-rw-r--r--share/man/man4/puc.4321
-rw-r--r--share/man/man4/qlnxe.42
-rw-r--r--share/man/man4/qlxgb.42
-rw-r--r--share/man/man4/qlxgbe.42
-rw-r--r--share/man/man4/qlxge.42
-rw-r--r--share/man/man4/random.413
-rw-r--r--share/man/man4/rights.413
-rw-r--r--share/man/man4/rtw88.429
-rw-r--r--share/man/man4/rtw89.427
-rw-r--r--share/man/man4/sa.411
-rw-r--r--share/man/man4/sdhci.444
-rw-r--r--share/man/man4/sfxge.42
-rw-r--r--share/man/man4/smartpqi.42
-rw-r--r--share/man/man4/snd_dummy.417
-rw-r--r--share/man/man4/snd_hda.425
-rw-r--r--share/man/man4/snd_uaudio.436
-rw-r--r--share/man/man4/sume.42
-rw-r--r--share/man/man4/syncache.429
-rw-r--r--share/man/man4/tap.415
-rw-r--r--share/man/man4/tcp.439
-rw-r--r--share/man/man4/thunderbolt.422
-rw-r--r--share/man/man4/tun.415
-rw-r--r--share/man/man4/u2f.496
-rw-r--r--share/man/man4/uchcom.483
-rw-r--r--share/man/man4/udbc.4132
-rw-r--r--share/man/man4/ufshci.4181
-rw-r--r--share/man/man4/uftdi.4119
-rw-r--r--share/man/man4/umass.481
-rw-r--r--share/man/man4/umb.427
-rw-r--r--share/man/man4/usbhid.410
-rw-r--r--share/man/man4/vt.450
-rw-r--r--share/man/man4/vtnet.4186
-rw-r--r--share/man/man4/watchdog.462
-rw-r--r--share/man/man4/wlan.47
-rw-r--r--share/man/man4/wlan_ccmp.41
-rw-r--r--share/man/man4/wlan_gcmp.472
-rw-r--r--share/man/man4/wlan_tkip.41
-rw-r--r--share/man/man4/wlan_wep.41
-rw-r--r--share/man/man4/wsp.472
125 files changed, 4112 insertions, 947 deletions
diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile
index ed39aafebbc3..e94e832a3f94 100644
--- a/share/man/man4/Makefile
+++ b/share/man/man4/Makefile
@@ -1,10 +1,16 @@
.include <src.opts.mk>
+MANGROUPS= MAN
+MANPACKAGE= kernel-man
+
# If you add a new file here, please consider adding an entry to the
# hardware notes template (website/archetypes/release/hardware.adoc in
# the doc repository); otherwise the automatically generated hardware
# notes will not include your driver.
+# If you enable a driver for a different architecture, please remember
+# to update the arch specifier in the document title of the manual.
+
MAN= aac.4 \
aacraid.4 \
acpi.4 \
@@ -58,12 +64,17 @@ MAN= aac.4 \
atkbdc.4 \
${_atopcase.4} \
atp.4 \
- ${_atf_test_case.4} \
${_atrtc.4} \
${_attimer.4} \
audit.4 \
auditpipe.4 \
aue.4 \
+ ${_aw_gpio.4} \
+ ${_aw_mmc.4} \
+ ${_aw_rtc.4} \
+ ${_aw_sid.4} \
+ ${_aw_spi.4} \
+ ${_aw_syscon.4} \
axe.4 \
axge.4 \
axp.4 \
@@ -213,6 +224,7 @@ MAN= aac.4 \
${_hv_vmbus.4} \
${_hv_vss.4} \
hwpmc.4 \
+ ${_hwt.4} \
${_hwpstate_intel.4} \
i2ctinyusb.4 \
iavf.4 \
@@ -290,6 +302,8 @@ MAN= aac.4 \
linprocfs.4 \
linsysfs.4 \
${_linux.4} \
+ linuxkpi.4 \
+ linuxkpi_wlan.4 \
liquidio.4 \
lm75.4 \
lo.4 \
@@ -581,6 +595,7 @@ MAN= aac.4 \
tdfx.4 \
termios.4 \
textdump.4 \
+ thunderbolt.4 \
ti.4 \
timecounters.4 \
tmpfs.4 \
@@ -589,8 +604,10 @@ MAN= aac.4 \
tty.4 \
tun.4 \
tws.4 \
+ u2f.4 \
udp.4 \
udplite.4 \
+ ${_ufshci.4} \
unionfs.4 \
ure.4 \
vale.4 \
@@ -625,6 +642,7 @@ MAN= aac.4 \
wlan_acl.4 \
wlan_amrr.4 \
wlan_ccmp.4 \
+ wlan_gcmp.4 \
wlan_tkip.4 \
wlan_wep.4 \
wlan_xauth.4 \
@@ -742,7 +760,6 @@ MLINKS+=lge.4 if_lge.4
MLINKS+=lo.4 loop.4
MLINKS+=lp.4 plip.4
MLINKS+=malo.4 if_malo.4
-MLINKS+=md.4 vn.4
MLINKS+=mem.4 kmem.4
MLINKS+=mfi.4 mfi_linux.4 \
mfi.4 mfip.4
@@ -840,7 +857,7 @@ _cpuctl.4= cpuctl.4
_dpms.4= dpms.4
_ftgpio.4= ftgpio.4
_ftwd.4= ftwd.4
-_hn.4= _hn.4
+_hn.4= hn.4
_hpt27xx.4= hpt27xx.4
_hptiop.4= hptiop.4
_hptmv.4= hptmv.4
@@ -923,6 +940,21 @@ _vmm.4= vmm.4
.endif
.endif
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "aarch64"
+_hwt.4= hwt.4
+.if ${MACHINE_CPUARCH} == "amd64"
+MLINKS+=hwt.4 intel_pt.4
+.endif
+.if ${MACHINE_CPUARCH} == "aarch64"
+MLINKS+=hwt.4 coresight.4
+MLINKS+=hwt.4 spe.4
+.endif
+.endif
+
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "aarch64"
+_ufshci.4= ufshci.4
+.endif
+
.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \
${MACHINE_CPUARCH} == "aarch64"
_gve.4= gve.4
@@ -936,6 +968,12 @@ _vmx.4= vmx.4
.if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "aarch64" || \
${MACHINE_CPUARCH} == "riscv"
+_aw_gpio.4= aw_gpio.4
+_aw_mmc.4= aw_mmc.4
+_aw_rtc.4= aw_rtc.4
+_aw_sid.4= aw_sid.4
+_aw_spi.4= aw_spi.4
+_aw_syscon.4= aw_syscon.4
_cgem.4= cgem.4
MLINKS+=cgem.4 if_cgem.4
.endif
@@ -965,11 +1003,14 @@ _ccd.4= ccd.4
.if ${MK_CDDL} != "no"
_dtrace_provs= dtrace_audit.4 \
+ dtrace_dtrace.4 \
+ dtrace_fbt.4 \
dtrace_io.4 \
dtrace_ip.4 \
dtrace_kinst.4 \
dtrace_lockstat.4 \
dtrace_proc.4 \
+ dtrace_profile.4 \
dtrace_sched.4 \
dtrace_sctp.4 \
dtrace_tcp.4 \
@@ -1001,9 +1042,11 @@ MAN+= mlx5io.4
.endif
.if ${MK_TESTS} != "no"
+MANGROUPS+= TESTS
ATF= ${SRCTOP}/contrib/atf
.PATH: ${ATF}/doc
-_atf_test_case.4= atf-test-case.4
+TESTS= atf-test-case.4
+TESTSPACKAGE= tests
.endif
.if ${MK_PF} != "no"
@@ -1035,6 +1078,7 @@ MAN+= \
ucom.4 \
ucycom.4 \
udav.4 \
+ udbc.4 \
udbp.4 \
udl.4 \
uep.4 \
diff --git a/share/man/man4/aac.4 b/share/man/man4/aac.4
index 7a7d0350dcdb..f4b431cc6b4f 100644
--- a/share/man/man4/aac.4
+++ b/share/man/man4/aac.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2000 Scott Long
.\" All rights reserved.
.\"
@@ -21,7 +24,7 @@
.\" 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.
-.Dd July 10, 2009
+.Dd September 29, 2025
.Dt AAC 4
.Os
.Sh NAME
@@ -83,9 +86,10 @@ Linux-compatible
interface for the management device will be enabled and will allow
Linux-based management applications to control the card.
.Sh HARDWARE
-Controllers supported by the
+The
.Nm
-driver include:
+driver supports the following Parallel SCSI, SATA, and 3G SAS
+RAID controllers from the Adaptec AAC family:
.Pp
.Bl -bullet -compact
.It
diff --git a/share/man/man4/aacraid.4 b/share/man/man4/aacraid.4
index 3bf683ac40c8..0f64f36c493a 100644
--- a/share/man/man4/aacraid.4
+++ b/share/man/man4/aacraid.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2013 Achim Leubner
.\" All rights reserved.
.\"
@@ -21,12 +24,12 @@
.\" 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.
-.Dd June 19, 2015
+.Dd September 29, 2025
.Dt AACRAID 4
.Os
.Sh NAME
.Nm aacraid
-.Nd Adaptec AACRAID Controller driver
+.Nd Adaptec Series 6/7/8 6G and 12G SAS+SATA RAID controller driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -78,9 +81,10 @@ Linux-compatible
interface for the management device will be enabled and will allow
Linux-based management applications to control the card.
.Sh HARDWARE
-Controllers supported by the
+The
.Nm
-driver include:
+driver supports the following
+Adaptec 6G and 12G SAS/SATA RAID controllers:
.Pp
.Bl -bullet -compact
.It
diff --git a/share/man/man4/acpi_wmi.4 b/share/man/man4/acpi_wmi.4
index 9ad14ed7892a..e5c5517ba4ac 100644
--- a/share/man/man4/acpi_wmi.4
+++ b/share/man/man4/acpi_wmi.4
@@ -1,3 +1,6 @@
+.\"-
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2009 Michael Gmelin
.\" All rights reserved.
.\"
@@ -22,47 +25,45 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd September 5, 2019
+.Dd June 12, 2025
.Dt ACPI_WMI 4
.Os
.Sh NAME
.Nm acpi_wmi
-.Nd "ACPI to WMI mapping driver"
+.Nd ACPI to WMI mapping 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 acpi_wmi"
-.Ed
+.Pp
+.Dl Cd "device acpi_wmi"
.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
-acpi_wmi_load="YES"
-.Ed
+.Pp
+.Dl acpi_wmi_load="YES"
.Sh DESCRIPTION
The
.Nm
driver provides an interface for vendor specific WMI implementations
-(e.g. HP and Acer laptops).
-It creates /dev/wmistat%d, which can be read to get
-information about GUIDs found in the system.
+.Pq e.g. HP and Acer laptops .
+It creates
+.Pa /dev/wmistat%d ,
+which can be read to get information about GUIDs found in the system.
.Sh FILES
.Bl -tag -width /dev/wmistat%d -compact
.It Pa /dev/wmistat%d
-WMI status device.
+WMI status devices.
.El
.Sh SYSCTLS
The following sysctl node is currently implemented:
-.Bl -tag
+.Bl -tag -width "dev.acpi_wmi.%d.bmof"
.It Va dev.acpi_wmi.%d.bmof
-Managed Object Format (MOF) blob.
-You can obtain human readable output by bmf2mof in bmfdec tool.
-(https://github.com/pali/bmfdec)
+binary Managed Object Format (MOF) buffer
.El
.Sh EXAMPLES
+Read GUIDs from the first WMI interface found in the system:
.Bd -literal
# cat /dev/wmistat0
GUID INST EXPE METH STR EVENT OID
@@ -78,7 +79,14 @@ GUID INST EXPE METH STR EVENT OID
{8232DE3D-663D-4327-A8F4-E293ADB9BF05} 0 NO NO NO NO BG
{8F1F6436-9F42-42C8-BADC-0E9424F20C9A} 0 NO NO NO NO BH
{8F1F6435-9F42-42C8-BADC-0E9424F20C9A} 0 NO NO NO NO BI
-# sysctl -b dev.acpi_wmi.0.bmof |bmf2mof
+.Ed
+.Pp
+Read first WMI interface description with
+.Sy bmf2mof
+from
+.Pa ports/converters/bmfdec :
+.Bd -literal
+# sysctl -b dev.acpi_wmi.0.bmof | bmf2mof
[abstract]
class Lenovo_BIOSElement {
};
@@ -91,10 +99,15 @@ class Lenovo_BiosSetting : Lenovo_BiosElement {
[WmiDataId(1), Description("BIOS setting")] String CurrentSetting;
};
...
-
.Ed
.Sh SEE ALSO
.Xr acpi 4
+.Sh STANDARDS
+.Rs
+.%T Windows Instrumentation: WMI and ACPI
+.%I Microsoft Corporation
+.%U https://github.com/microsoft/Windows-driver-samples/tree/main/wmi/wmiacpi
+.Re
.Sh HISTORY
The
.Nm
@@ -107,13 +120,13 @@ The
driver was written by
.An Michael Gmelin Aq Mt freebsd@grem.de .
.Pp
-Work has been inspired by the Linux acpi-wmi driver written by Carlos Corbacho.
-.Pp
-See http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx for
-the specification of ACPI-WMI.
+Work inspired by the Linux
+.Sy acpi-wmi
+driver written by Carlos Corbacho.
.Pp
-MOF part has been inspired by the Linux wmi-bmof driver
-written by Andy Lutomirski.
+MOF handling inspired by the Linux
+.Sy wmi-bmof
+driver written by Andy Lutomirski.
.Pp
This manual page was written by
.An Michael Gmelin Aq Mt freebsd@grem.de .
diff --git a/share/man/man4/ahc.4 b/share/man/man4/ahc.4
index 38712c1f08b6..72a1e092f1bc 100644
--- a/share/man/man4/ahc.4
+++ b/share/man/man4/ahc.4
@@ -1,4 +1,6 @@
.\"
+.\" SPDX-License-Identifier: BSD-3-Clause
+.\"
.\" Copyright (c) 1995, 1996, 1997, 1998, 2000
.\" Justin T. Gibbs. All rights reserved.
.\"
@@ -24,7 +26,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd February 15, 2017
+.Dd September 29, 2025
.Dt AHC 4
.Os
.Sh NAME
@@ -172,11 +174,7 @@ adapter, defaults to enabled (0 -- disabled, 1 -- enabled).
.Sh HARDWARE
The
.Nm
-driver supports the following
-.Tn SCSI
-host adapter chips and
-.Tn SCSI
-controller cards:
+driver supports the following VL/ISA/PCI parallel SCSI controllers and cards:
.Pp
.Bl -bullet -compact
.It
diff --git a/share/man/man4/ahd.4 b/share/man/man4/ahd.4
index c173a8cef619..7fa08c12b5b5 100644
--- a/share/man/man4/ahd.4
+++ b/share/man/man4/ahd.4
@@ -1,4 +1,6 @@
.\"
+.\" SPDX-License-Identifer: BSD-3-Clause
+.\"
.\" Copyright (c) 1995, 1996, 1997, 1998, 2000
.\" Justin T. Gibbs. All rights reserved.
.\" Copyright (c) 2002
@@ -26,7 +28,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd July 4, 2004
+.Dd September 29, 2025
.Dt AHD 4
.Os
.Sh NAME
@@ -132,7 +134,7 @@ A hint to define whether the SCSI target mode is enabled (0 -- disabled, 1 -- en
.Sh HARDWARE
The
.Nm
-driver supports the following:
+driver supports the following PCI/PCI-X parallel SCSI controllers:
.Pp
.Bl -bullet -compact
.It
diff --git a/share/man/man4/ata.4 b/share/man/man4/ata.4
index feea1dd3cc85..29b6bbef6838 100644
--- a/share/man/man4/ata.4
+++ b/share/man/man4/ata.4
@@ -155,7 +155,9 @@ The
.Va hw.ata.ata_dma_check_80pin
tunable can be set to 0 to disable this check.
.Sh HARDWARE
-The currently supported ATA/SATA controller chips are:
+The
+.Nm
+driver supports the IDE interface on the following ATA/SATA controllers:
.Pp
.Bl -tag -width "Silicon Image:" -compact
.It Acard:
diff --git a/share/man/man4/man4.arm/aw_gpio.4 b/share/man/man4/aw_gpio.4
index 5cbc7562d9bd..5cbc7562d9bd 100644
--- a/share/man/man4/man4.arm/aw_gpio.4
+++ b/share/man/man4/aw_gpio.4
diff --git a/share/man/man4/man4.arm/aw_mmc.4 b/share/man/man4/aw_mmc.4
index eb7fc9ce020a..072835cce7c0 100644
--- a/share/man/man4/man4.arm/aw_mmc.4
+++ b/share/man/man4/aw_mmc.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd Dec 25, 2017
+.Dd October 20, 2025
.Dt AW_MMC 4
.Os
.Sh NAME
@@ -48,6 +48,8 @@ allwinner,sun5i-a13-mmc
allwinner,sun7i-a20-mmc
.It
allwinner,sun50i-a64-mmc
+.It
+allwinner,sun20i-d1-mmc
.El
.Sh SYSCTL VARIABLES
The following read-only variables are available via
diff --git a/share/man/man4/man4.arm/aw_rtc.4 b/share/man/man4/aw_rtc.4
index 1296cd41da68..1296cd41da68 100644
--- a/share/man/man4/man4.arm/aw_rtc.4
+++ b/share/man/man4/aw_rtc.4
diff --git a/share/man/man4/man4.arm/aw_sid.4 b/share/man/man4/aw_sid.4
index 5cd2f3d5e072..5cd2f3d5e072 100644
--- a/share/man/man4/man4.arm/aw_sid.4
+++ b/share/man/man4/aw_sid.4
diff --git a/share/man/man4/man4.arm/aw_spi.4 b/share/man/man4/aw_spi.4
index f8985e1c16bb..f8985e1c16bb 100644
--- a/share/man/man4/man4.arm/aw_spi.4
+++ b/share/man/man4/aw_spi.4
diff --git a/share/man/man4/man4.arm/aw_syscon.4 b/share/man/man4/aw_syscon.4
index e32f329e489a..e32f329e489a 100644
--- a/share/man/man4/man4.arm/aw_syscon.4
+++ b/share/man/man4/aw_syscon.4
diff --git a/share/man/man4/blackhole.4 b/share/man/man4/blackhole.4
index bb955fd4497d..777a38eedc86 100644
--- a/share/man/man4/blackhole.4
+++ b/share/man/man4/blackhole.4
@@ -10,15 +10,12 @@
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
-.Dd May 25, 2024
+.Dd September 24, 2025
.Dt BLACKHOLE 4
.Os
.Sh NAME
.Nm blackhole
-.Nd a
-.Xr sysctl 8
-MIB for manipulating behaviour in respect of refused SCTP, TCP, or UDP connection
-attempts
+.Nd quietly drop refused SCTP, TCP, or UDP packets
.Sh SYNOPSIS
.Cd sysctl net.inet.sctp.blackhole Ns Op = Ns Brq "0 | 1 | 2"
.Cd sysctl net.inet.tcp.blackhole Ns Op = Ns Brq "0 | 1 | 2 | 3"
diff --git a/share/man/man4/bridge.4 b/share/man/man4/bridge.4
index 7ce734ae87eb..3af952256d3a 100644
--- a/share/man/man4/bridge.4
+++ b/share/man/man4/bridge.4
@@ -36,7 +36,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd May 28, 2025
+.Dd October 13, 2025
.Dt IF_BRIDGE 4
.Os
.Sh NAME
@@ -271,6 +271,150 @@ by setting the
.Va net.link.bridge.log_stp
node using
.Xr sysctl 8 .
+.Sh VLAN SUPPORT
+Virtual LANs (VLANs), defined in the IEEE 802.1Q standard, allow traffic
+on a bridge to be segregated into separate logical networks which cannot
+communicate with each other.
+For example, two interfaces in VLAN 10 would be able to communicate
+with each other, but not with another interface in VLAN 20.
+.Pp
+Each VLAN is identified by a number between 1 and 4094 inclusive.
+By default, all traffic on the bridge is assigned to "VLAN 0",
+a pseudo-VLAN used for historical compatibility.
+When VLANs are in use on a bridge, it is recommended to explicitly
+assign all traffic to a VLAN rather than using VLAN 0.
+.Pp
+The bridge implements Independent VLAN Learning (IVL), meaning that
+host addresses are learned separately for each VLAN, and the same host
+address may exist on several different ports in different VLANs.
+.Pp
+If a
+.Xr vlan 4
+interface is configured on an interface which is also an
+.Nm
+member interface, all tagged frames will be processed by the
+.Xr vlan 4
+interface and will not be visible to the bridge.
+This configuration is not recommended and may be unsupported in a
+future release.
+.Ss Tagged and untagged traffic
+Incoming frames on a member interface may be either tagged or untagged.
+Tagged frames contain an 802.1Q header indicating which VLAN the
+frame belongs to, while untagged frames do not.
+When a tagged frame is received, the frame is automatically assigned to
+the VLAN in the tag (subject to any configured VLAN access list),
+while untagged frames are assigned to the interface's configured
+Port VLAN ID (PVID), or to VLAN 0 if no PVID is configured.
+.Ss Assigning interfaces to VLANs
+An interface's PVID may be configured using the
+.Xr ifconfig 8
+.Cm ifuntagged
+command:
+.Bd -literal -offset indent
+ifconfig bridge0 ifuntagged ix0 10
+.Ed
+.Pp
+Or by using the
+.Cm untagged
+option to
+.Cm addm :
+.Bd -literal -offset indent
+ifconfig bridge0 addm ix0 untagged 10
+.Ed
+.Pp
+This will assign all untagged traffic received on the interface to the
+specified VLAN, and any traffic transmitted on the interface in this
+VLAN will have its VLAN tag (if present) removed.
+Conversely, any traffic transmitted on the interface in a different
+VLAN will have a tag added, to allow the remote system to assign the
+traffic to the appropriate VLAN.
+.Ss Host communication in a VLAN
+Sometimes it is useful to allow the host itself to communicate in a VLAN,
+for example to provide routing to other hosts in the VLAN.
+To do this, create a
+.Xr vlan 4
+interface on top of the
+.Nm
+interface with the appropriate VLAN tag.
+For example, to allow the host to communicate in VLAN 10:
+.Bd -literal -offset indent
+ifconfig bridge0.10 create inet6 2001:db8::1/64
+.Ed
+.Ss Configuring the VLAN access list (VLAN filtering)
+For historical reasons, the default
+.Nm
+configuration allows all interfaces to send tagged traffic for any VLAN,
+meaning that VLANs do not provide security separation.
+To restrict which interfaces may communicate in which VLANs,
+enable VLAN filtering on the bridge:
+.Bd -literal -offset indent
+ifconfig bridge0 vlanfilter
+.Ed
+.Pp
+This has the following effects on bridge members:
+.Bl -bullet -offset indent
+.It
+No untagged frames will be accepted from a member interface unless
+the interface has a PVID configured.
+.It
+No tagged frames will be accepted from a member interface unless
+the VLAN identifier is present in the interface's VLAN access list.
+.It
+Frames with stacked tags (Q-in-Q) will not be accepted from a
+member interface unless the
+.Cm qinq
+option (see below) has been configured for that member.
+.El
+.Pp
+To configure the VLAN access list, use the
+.Xr ifconfig 8
+.Cm iftagged ,
+.Cm +iftagged
+or
+.Cm -iftagged
+commands.
+For example, to allow an interface to communicate in VLANs 10, 20,
+and any VLAN from 100 to 199:
+.Bd -literal -offset indent
+ifconfig bridge0 iftagged ix0 10,20,100-199
+.Ed
+.Ss IEEE 802.1ad (Q-in-Q) configuration
+IEEE 802.1ad, also called Q-in-Q or
+.Dq tag stacking ,
+allows a single Ethernet frame to contain multiple tags.
+This allows one Ethernet network to transport traffic between endpoints
+using its own VLAN tags without interfering with any pre-existing tags,
+and is often used in service provider networks to provide
+.Dq virtual wire
+Ethernet services.
+.Pp
+When VLAN filtering is enabled,
+.Nm
+does not permit member interfaces to send Q-in-Q frames, because in
+certain configuration this allows
+.Dq VLAN-hopping
+attacks on the bridge.
+For example, consider a bridge with port ix0 configured as a tagged
+port in VLAN 10, and port ix1 configured as untagged in VLAN 10 and
+tagged in VLAN 20.
+If ix0 is allowed to send Q-in-Q frames, then it can send a frame with
+two tags: one for VLAN 10, followed by one for VLAN 20.
+When the bridge forwards the frame to ix1, it will strip the VLAN tag
+for VLAN 10, then forward the frame to ix1 with the tag for VLAN 20
+intact, effectively allowing ix1 to send traffic on VLAN 20 even
+though the bridge configuration should not permit that.
+.Pp
+To permit an interface to send Q-in-Q frames, set the
+.Xr ifconfig 8
+.Cm qinq
+flag on the interface.
+This is only required on the interface which will send Q-in-Q frames,
+not the interface receiving the frames.
+.Pp
+Alternatively, set the
+.Cm defqinq
+flag on the bridge itself to enable Q-in-Q for all newly-added
+interfaces by default.
.Sh PACKET FILTERING
Packet filtering can be used with any firewall package that hooks in via the
.Xr pfil 9
@@ -489,6 +633,36 @@ ifconfig_wlan0="up ssid my_ap mode 11g"
ifconfig_fxp0="up"
.Ed
.Pp
+The following will cause a bridge to be created with two VLANs,
+10 and 20, where the
+.Dq Li em
+interfaces can only communicate in their assigned VLANs,
+while
+.Dq Li ix0
+is a trunk port which can communicate in either VLAN:
+.Bd -literal -offset indent
+cloned_interfaces="bridge0"
+ifconfig_bridge0="vlanfilter \e
+ addm em0 untagged 10 \e
+ addm em1 untagged 10 \e
+ addm em2 untagged 20 \e
+ addm em3 untagged 20 \e
+ addm ix0 tagged 10,20"
+ifconfig_em0="up"
+ifconfig_em1="up"
+ifconfig_em2="up"
+ifconfig_em3="up"
+ifconfig_ix0="up"
+.Ed
+.Pp
+The previous example could be extended to allow the host to
+communicate in VLANs 10 and 20:
+.Bd -literal -offset indent
+vlans_bridge0="10 20"
+ifconfig_bridge0_10_ipv6="inet6 2001:db8:0:10::1/64"
+ifconfig_bridge0_20_ipv6="inet6 2001:db8:0:20::1/64"
+.Ed
+.Pp
Consider a system with two 4-port Ethernet boards.
The following will cause a bridge consisting of all 8 ports with
Rapid Spanning Tree enabled to be created:
@@ -538,6 +712,7 @@ ifconfig bridge0 addm fxp0 addm gif0 up
.Xr ipfw 4 ,
.Xr netmap 4 ,
.Xr pf 4 ,
+.Xr vlan 4 ,
.Xr ifconfig 8
.Sh HISTORY
The
diff --git a/share/man/man4/capsicum.4 b/share/man/man4/capsicum.4
index 6aefae9d6df2..1de8e4531f4f 100644
--- a/share/man/man4/capsicum.4
+++ b/share/man/man4/capsicum.4
@@ -24,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd June 5, 2025
+.Dd June 17, 2025
.Dt CAPSICUM 4
.Os
.Sh NAME
@@ -37,6 +37,12 @@
.Nm
is a lightweight OS capability and sandbox framework implementing a hybrid
capability system model.
+.Nm
+is designed to blend capabilities with UNIX.
+This approach achieves many of the benefits of least-privilege operation, while
+preserving existing UNIX APIs and performance, and presents application authors
+with an adoption path for capability-oriented design.
+.Pp
Capabilities are unforgeable tokens of authority that can be delegated and must
be presented to perform an action.
.Nm
@@ -59,6 +65,34 @@ namespaces) is restricted; only explicitly delegated rights, referenced by
memory mappings or file descriptors, may be used.
Once set, the flag is inherited by future children processes, and may not be
cleared.
+.Pp
+Access to system calls in capability mode is restricted: some system calls
+requiring global namespace access are unavailable, while others are
+constrained.
+For instance,
+.Xr sysctl 2
+can be used to query process-local information such as address space layout,
+but also to monitor a system’s network connections.
+.Xr sysctl 2
+is constrained by explicitly marking \(~~60 of over 15000 parameters as permitted
+in capability mode; all others are denied.
+.Pp
+The system calls which require constraints are
+.Xr sysctl 2 ,
+.Xr shm_open 2
+.Pq which is permitted to create anonymous memory objects but not named ones
+and the
+.Xr openat 2
+family of system calls.
+The
+.Xr openat 2
+calls already accept a file descriptor argument as the directory to perform the
+.Xr open 2 ,
+.Xr rename 2 ,
+etc. relative to; in capability mode the
+.Xr openat 2
+family of system calls are constrained so that they can only operate on
+objects “under” the provided file descriptor.
.It capabilities
Limit operations that can be called on file descriptors.
For example, a file descriptor returned by
@@ -152,3 +186,14 @@ and
.An Kris Kennaway Aq Mt kris@FreeBSD.org
at Google, Inc., and
.An Pawel Jakub Dawidek Aq Mt pawel@dawidek.net .
+Portions of this manual page are drawn from
+.Rs
+.%A Robert N. M. Watson
+.%A Jonathan Anderson
+.%A Ben Laurie
+.%A Kris Kennaway
+.%T Capsicum: practical capabilities for UNIX
+.%J USENIX Security Symposium
+.%D August 2010
+.%O DOI: 10.5555/1929820.1929824
+.Re
diff --git a/share/man/man4/cdceem.4 b/share/man/man4/cdceem.4
index 6d8caf53cc02..c2a282027241 100644
--- a/share/man/man4/cdceem.4
+++ b/share/man/man4/cdceem.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2019 Edward Tomasz Napierala <trasz@FreeBSD.org>
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -20,12 +23,12 @@
.\" 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.
-.Dd November 7, 2019
+.Dd September 18, 2025
.Dt CDCEEM 4
.Os
.Sh NAME
.Nm cdceem
-.Nd "USB Communication Device Class Ethernet Emulation Model (CDC EEM) driver"
+.Nd USB Communication Device Class Ethernet Emulation Model driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
diff --git a/share/man/man4/cxgbe.4 b/share/man/man4/cxgbe.4
index bfba202d1fec..77465a3ae590 100644
--- a/share/man/man4/cxgbe.4
+++ b/share/man/man4/cxgbe.4
@@ -29,7 +29,7 @@
.\"
.\" * Other names and brands may be claimed as the property of others.
.\"
-.Dd November 10, 2022
+.Dd September 29, 2025
.Dt CXGBE 4
.Os
.Sh NAME
@@ -73,6 +73,7 @@ driver uses different names for devices based on the associated ASIC:
.It T4 Ta cxgbe Ta t4nex Ta vcxgbe
.It T5 Ta cxl Ta t5nex Ta vcxl
.It T6 Ta cc Ta t6nex Ta vcc
+.It T7 Ta che Ta chnex Ta vche
.El
.Pp
Loader tunables with the hw.cxgbe prefix apply to all cards.
@@ -416,6 +417,8 @@ Support for T6 cards first appeared in
.Fx 11.1
and
.Fx 12.0 .
+Support for T7 cards first appeared in
+.Fx 15.0 .
.Sh AUTHORS
.An -nosplit
The
diff --git a/share/man/man4/ddb.4 b/share/man/man4/ddb.4
index 9a9af553b29d..3c4894c03d62 100644
--- a/share/man/man4/ddb.4
+++ b/share/man/man4/ddb.4
@@ -24,7 +24,7 @@
.\" any improvements or extensions that they make and grant Carnegie Mellon
.\" the rights to redistribute these changes.
.\"
-.Dd May 28, 2025
+.Dd June 10, 2025
.Dt DDB 4
.Os
.Sh NAME
@@ -604,9 +604,12 @@ The
modifier will print command line arguments for each process.
.\"
.Pp
-.It Ic show Cm all tcpcbs Ns Op Li / Ns Cm l
+.It Ic show Cm all tcpcbs Ns Op Li / Ns Cm b Ns Cm l
Show the same output as "show tcpcb" does, but for all
TCP control blocks within the system.
+The
+.Cm b
+modifier will request BBLog entries to be printed.
Using the
.Cm l
modifier will limit the output to TCP control blocks, which are locked.
@@ -1103,7 +1106,7 @@ on i386.)
Not present on some platforms.
.\"
.Pp
-.It Ic show Cm tcpcb Ar addr
+.It Ic show Cm tcpcb Ns Oo Li / Ns Cm b Oc Ar addr
Print TCP control block
.Vt struct tcpcb
lying at address
@@ -1111,6 +1114,9 @@ lying at address
For exact interpretation of output, visit
.Pa netinet/tcp.h
header file.
+The
+.Cm b
+modifier will request BBLog entries to be printed.
.\"
.Pp
.It Ic show Cm thread Op Ar addr | tid
diff --git a/share/man/man4/dtrace_dtrace.4 b/share/man/man4/dtrace_dtrace.4
new file mode 100644
index 000000000000..b8c31005b47e
--- /dev/null
+++ b/share/man/man4/dtrace_dtrace.4
@@ -0,0 +1,191 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 Mateusz Piotrowski <0mp@FreeBSD.org>
+.\"
+.Dd July 14, 2025
+.Dt DTRACE_DTRACE 4
+.Os
+.Sh NAME
+.Nm dtrace_dtrace
+.Nd a DTrace provider for BEGIN, END, and ERROR probes
+.Sh SYNOPSIS
+.Nm dtrace Ns Cm :::BEGIN
+.Nm dtrace Ns Cm :::END
+.Nm dtrace Ns Cm :::ERROR
+.Sh DESCRIPTION
+The
+.Nm dtrace
+provider implements three special probes related to the life cycle of the
+DTrace program itself.
+.Ss dtrace:::BEGIN
+The
+.Nm dtrace Ns Cm :::BEGIN
+probe fires at the beginning of a
+.Xr dtrace 1 ,
+program before tracing has begun.
+It provides a convenient place for initializing variables
+and printing column headers.
+.Pp
+Variables such as
+.Va stack
+or
+.Va execname
+cannot be relied upon in the execution context of the
+.Nm dtrace Ns Cm :::BEGIN
+probe.
+.Ss dtrace:::END
+The
+.Nm dtrace Ns Cm :::END
+probe fires at the end of a
+.Xr dtrace 1
+program, when all tracing has stopped.
+.Ss dtrace:::ERROR
+The
+.Nm dtrace Ns Cm :::ERROR
+probe fires when an unexpected runtime error occurs in another probe.
+.Pp
+The following table describes the arguments to
+.Nm dtrace Ns Cm :::ERROR .
+.Bl -column -offset indent "Argument" "Definition"
+.It Sy Argument Ta Sy Definition
+.It Fa arg1 Ta Enabled probe identifier (EPID)
+of the probe where the runtime error occurred
+.It Fa arg2 Ta Index of the action statement that caused the error
+.It Fa arg3 Ta DIF offset into the action if available (otherwise -1)
+.It Fa arg4 Ta Fault type
+.It Fa arg5 Ta Accessed address (or 0 if not applicable) when
+.Va arg4
+is of fault type
+.Dv DTRACEFLT_BADADDR , DTRACEFLT_BADALIGN , DTRACEFLT_KPRIV ,
+or
+.Dv DTRACEFLT_UPRIV
+.El
+.Pp
+The fault types are:
+.Bl -tag -offset indent -width "DTRACEFLT_NOSCRATCH" -compact
+.It Dv DTRACEFLT_UNKNOWN
+Unknown fault
+.It Dv DTRACEFLT_BADADDR
+Bad address
+.It Dv DTRACEFLT_BADALIGN
+Bad alignment
+.It Dv DTRACEFLT_ILLOP
+Illegal operation
+.It Dv DTRACEFLT_DIVZERO
+Divide-by-zero
+.It Dv DTRACEFLT_NOSCRATCH
+Out of scratch space
+.It Dv DTRACEFLT_KPRIV
+Illegal kernel access
+.It Dv DTRACEFLT_UPRIV
+Illegal user access
+.It Dv DTRACEFLT_TUPOFLOW
+Tuple stack overflow
+.It Dv DTRACEFLT_BADSTACK
+Bad stack
+.El
+.Sh FILES
+.Bl -tag -width '<sys/dtrace.h>'
+.It In sys/dtrace.h
+The header file containing the definitions of DTrace fault types.
+.El
+.Sh EXAMPLES
+.Ss Example 1 : Custom Column Headers
+The following script uses the
+.Nm dtrace Ns Cm :::BEGIN
+probe to print column headers.
+Note the pragma line setting the
+.Ql quiet
+option to disable the default column headers.
+.Bd -literal -offset 2n
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+ printf(" %12s %-20s %-20s %s\en",
+ "DELTA(us)", "OLD", "NEW", "TIMESTAMP");
+}
+.Ed
+.Ss Example 2 : Handling Runtime Errors with dtrace:::ERROR
+The following script causes a runtime error by dereferencing a pointer
+on address
+.Ad 19930908
+in the
+.Cm BEGIN
+probe.
+As a result, the
+.Cm ERROR
+probe fires and prints out
+.Dq Oops
+along with the probe arguments.
+At that point, the program ends and fires the
+.Cm END
+probe.
+.\" It might look weird to define ERROR first, but that is on purpose.
+.\" This way the probe IDs and EPIDs are a bit more mixed up
+.\" and are easier to understand.
+.Bd -literal -offset 2n
+ERROR
+{
+ printf("Oops\en");
+ printf("EPID (arg1): %d\en", arg1);
+ printf("Action index (arg2): %d\en", arg2);
+ printf("DIF offset (arg3): %d\en", arg3);
+ printf("Fault type (arg4): %d\en", arg4);
+ printf("Accessed address (arg5): %X\en", arg5);
+ exit(1);
+}
+BEGIN
+{
+ *(int *)0x19931101;
+}
+END {
+ printf("Bye");
+}
+.Ed
+.Pp
+This script will result in the following output:
+.Bd -literal -offset 2n
+CPU ID FUNCTION:NAME
+ 2 3 :ERROR Oops
+EPID (arg1): 2
+Action index (arg2): 1
+DIF offset (arg3): 16
+Fault type: 1
+arg5: 19931101
+
+dtrace: error on enabled probe ID 2 (ID 1: dtrace:::BEGIN): invalid address (0x19931101) in action #1 at DIF offset 16
+ 2 2 :END Bye
+.Ed
+.Sh SEE ALSO
+.Xr dtrace 1 ,
+.Xr tracing 7
+.Rs
+.%B The illumos Dynamic Tracing Guide
+.%O Chapter dtrace Provider
+.%D 2008
+.%U https://illumos.org/books/dtrace/chp-dtrace.html
+.Re
+.Sh AUTHORS
+This manual page was written by
+.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org .
+.Sh CAVEATS
+The
+.Nm dtrace Ns Cm :::ERROR
+probe arguments cannot be accessed through the typed
+.Va args[]
+array.
+.Pp
+.Xr dtrace 1
+will not fire the
+.Nm dtrace Ns Cm :::ERROR
+probe recursively.
+If an error occurs in one of the action statements of the
+.Nm dtrace Ns Cm :::ERROR ,
+then
+.Xr dtrace 1
+will abort further processing of
+the
+.Nm dtrace Ns Cm :::ERROR
+probe's actions.
diff --git a/share/man/man4/dtrace_fbt.4 b/share/man/man4/dtrace_fbt.4
new file mode 100644
index 000000000000..3e35bb8c5bbc
--- /dev/null
+++ b/share/man/man4/dtrace_fbt.4
@@ -0,0 +1,332 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 Mateusz Piotrowski <0mp@FreeBSD.org>
+.\"
+.Dd July 16, 2025
+.Dt DTRACE_FBT 4
+.Os
+.Sh NAME
+.Nm dtrace_fbt
+.Nd a DTrace provider for dynamic kernel tracing based on function boundaries
+.Sh SYNOPSIS
+.Nm fbt Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:entry
+.Nm fbt Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:return
+.Sh DESCRIPTION
+The Function Boundary Tracing
+.Pq Nm fbt
+provider instruments the entry and return of almost every kernel function
+corresponding to an
+.Xr elf 5
+symbol in the kernel and loaded kernel modules.
+.Pp
+.Nm fbt Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:entry
+fires whenever the
+.Ar function
+is called.
+.Nm fbt Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:return
+fires when the
+.Ar function
+returns.
+.Pp
+The
+.Ar module
+in the probe description is either the name of the loaded kernel module
+or
+.Ql kernel
+for functions compiled into the kernel.
+.Ss Function Boundary Instrumentation
+The
+.Nm fbt
+will always instrument a function's entry, but
+its return will be intsrumented so long as it can find a
+.Ql ret
+instruction.
+.Pp
+In some cases,
+.Nm fbt
+cannot instrument a function's entry and/or return.
+Refer to subsection
+.Sx Frame Pointer
+for more details.
+.Ss Probe Arguments
+The arguments of the entry probe
+.Pq Nm fbt Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:entry
+are the arguments of the traced function call.
+.Bl -column -offset indent "Entry Probe Argument" "Definition"
+.It Sy Entry Probe Argument Ta Sy Definition
+.It Fa args[0] Ta Function's first argument, typed
+.Pq e.g., Xr malloc 9 Ap s Ft size_t Fa size
+.It Fa args[1] Ta Function's second argument, typed
+.Pq e.g., Xr malloc 9 Ap s Ft struct malloc_type Fa *type
+.It Fa args[2] Ta Function's third argument, typed
+.Pq e.g., Xr malloc 9 Ap s Ft int Fa flags
+.It Fa ... Ta ...
+.El
+.Pp
+The arguments of the return probe
+.Pq Nm fbt Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:return
+are
+.Fa args[0]
+.Po
+the offset of the firing return instruction within the function;
+useful to tell apart two different return statements in a single function
+.Pc
+and
+.Fa args[1]
+.Pq the return value, if any .
+.Bl -column -offset indent "Return Probe Argument" "Definition"
+.It Sy Return Probe Argument Ta Sy Definition
+.It Fa args[0] Ta Offset of the traced return instruction
+.It Fa args[1] Ta Function's return value
+.Po e.g., a kernel virtual address if returning from a successful
+.Xr malloc 9
+.Pc
+.El
+.Pp
+Subsection
+.Sx Example 2 : Getting Details About Probe's Arguments
+shows how to get probe's argument count and types directly with
+.Xr dtrace 1
+without having to resort to the reading function's source code
+or documentation.
+.Sh EXAMPLES
+.Ss Example 1 : Listing Available FBT Probes
+The following example shows how to list all the available
+.Nm fbt
+probes.
+.Bd -literal -offset 2n
+# dtrace -l -P fbt
+ ID PROVIDER MODULE FUNCTION NAME
+[...]
+31868 fbt kernel hammer_time entry
+31869 fbt kernel hammer_time return
+[...]
+.Ed
+.Pp
+Since
+.Fn hammer_time
+is a part of the kernel and not a separate loaded module, the
+.Ar module
+column displays
+.Ql kernel .
+.Ss Example 2 : Getting Details About Probe's Arguments
+The following example shows how to generate a program stability report of
+.Xr malloc 9 Ap s
+entry and return probes.
+Those reports are useful to view
+the probe's number of arguments and their types.
+.Bd -literal -offset 2n
+# dtrace -l -v -n fbt::malloc:entry
+[...]
+ Argument Types
+ args[0]: size_t
+ args[1]: struct malloc_type *
+ args[2]: int
+.Ed
+.Pp
+The count and types of
+.Nm fbt Ns Cm \&::malloc:entry
+arguments
+match the function signature of
+.Xr malloc 9 :
+.Va args[0]
+is
+.Ft size_t ,
+.Va args[1]
+is
+.Ft "struct malloc_type *" ,
+and
+.Va "args[2]"
+is
+.Ft int .
+.Bd -literal -offset 2n
+# dtrace -l -v -n fbt::malloc:return
+[...]
+ Argument Types
+ args[0]: int
+ args[1]: void *
+.Ed
+.Pp
+The
+.Cm return
+probe reports two arguments and their types:
+the return instruction offset
+.Pq the usual Ft int
+and the function's return value, which in this case is
+.Ft void * ,
+as
+.Xr malloc 9
+returns a kernel virtual address.
+.Ss Example 3 : Counting Kernel Slab Memory Allocation by Function
+.Bd -literal -offset 2n
+# dtrace -n 'fbt::kmem*:entry { @[probefunc] = count(); }'
+dtrace: description 'fbt::kmem*:entry ' matched 47 probes
+^C
+ kmem_alloc_contig 1
+ kmem_alloc_contig_domainset 1
+ kmem_cache_reap_active 1
+ kmem_alloc_contig_pages 2
+ kmem_free 2
+ kmem_std_destructor 19
+ kmem_std_constructor 26
+ kmem_cache_free 151
+ kmem_cache_alloc 181
+.Ed
+.Ss Example 4 : Counting Kernel Slab Memory Allocation by Calling Function
+.Bd -literal -offset 2n
+# dtrace -q -n 'fbt::kmem*:entry { @[caller] = count(); } END { printa("%40a %@16d\en", @); }'
+^C
+ kernel`contigmalloc+0x33 1
+ kernel`free+0xd3 1
+ kernel`kmem_alloc_contig+0x29 1
+kernel`kmem_alloc_contig_domainset+0x19a 1
+ zfs.ko`arc_reap_cb_check+0x16 1
+.Ed
+.Ss Example 5 : Counting Kernel malloc()'s by Calling Function
+.Bd -literal -offset 2n
+# dtrace -q -n 'fbt::malloc:entry { @[caller] = count(); } END { printa("%45a %@16d\en", @); }'
+^C
+ kernel`devclass_get_devices+0xa8 1
+ kernel`sys_ioctl+0xb7 1
+ dtrace.ko`dtrace_ioctl+0x15c1 1
+ dtrace.ko`dtrace_ioctl+0x972 2
+ dtrace.ko`dtrace_dof_create+0x35 2
+ kernel`kern_poll_kfds+0x2f0 4
+ kernel`kern_poll_kfds+0x28a 19
+.Ed
+.Ss Example 6 : Counting Kernel malloc()'s by Kernel Stack Trace
+.Bd -literal -offset 2n
+# dtrace -q -n 'fbt::malloc:entry { @[stack()] = count(); }'
+^C
+ dtrace.ko`dtrace_dof_create+0x35
+ dtrace.ko`dtrace_ioctl+0x827
+ kernel`devfs_ioctl+0xd1
+ kernel`VOP_IOCTL_APV+0x2a
+ kernel`vn_ioctl+0xb6
+ kernel`devfs_ioctl_f+0x1e
+ kernel`kern_ioctl+0x286
+ kernel`sys_ioctl+0x12f
+ kernel`amd64_syscall+0x169
+ kernel`0xffffffff81092b0b
+ 2
+.Ed
+.Ss Example 7 : Summarizing vmem_alloc()'s by Arena Name and Size Distribution
+.Bd -literal -offset 2n
+# dtrace -q -n 'fbt::vmem_alloc:entry { @[args[0]->vm_name] = quantize(arg1); }'
+^C
+
+ kernel arena dom
+ value ------------- Distribution ------------- count
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 8192 |@@@@@@@@@@@@@ 2
+ 16384 | 0
+.Ed
+.Ss Example 8 : Measuring Total Time Spent Executing a Function
+This DTrace script measures the total time spent in
+.Fn vm_page*
+kernel functions.
+The
+.Fn quantize
+aggregation organizes the measurements into power-of-two buckets,
+providing a time distribution in nanoseconds for each function.
+.Bd -literal -offset 2n
+fbt::vm_page*:entry {
+ self->start = timestamp;
+}
+
+fbt::vm_page*:return /self->start/ {
+ @[probefunc] = quantize(timestamp - self->start);
+ self->start = 0;
+}
+.Ed
+.Sh SEE ALSO
+.Xr dtrace 1 ,
+.Xr dtrace_kinst 4 ,
+.Xr tracing 7
+.Rs
+.%A Brendan Gregg
+.%A Jim Mauro
+.%B DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD
+.%I Prentice Hall
+.%P pp. 898\(en903
+.%D 2011
+.%U https://www.brendangregg.com/dtracebook/
+.Re
+.Rs
+.%B The illumos Dynamic Tracing Guide
+.%O Chapter fbt Provider
+.%D 2008
+.%U https://illumos.org/books/dtrace/chp-fbt.html#chp-fbt
+.Re
+.Sh AUTHORS
+This manual page was written by
+.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org .
+.Sh CAVEATS
+.Ss Stability and Portability
+.Nm fbt
+probes are by definition tightly coupled to kernel code; if the code underlying
+a script changes, the script may fail to run or may produce incorrect results.
+Scripts written for one version of
+.Fx
+might not work on others,
+and almost certainly will not work on other operating systems.
+.Pp
+Individual
+.Nm fbt
+probes often do not correspond nicely to logical system events.
+For example, consider a DTrace script which prints the destination
+address of every IP packet as the kernel hands them over
+to the network card driver (NIC).
+An
+.Nm fbt Ns -based
+implementation of such a script is a discouragingly difficult task:
+it involves instrumenting at least four different functions in different parts
+of the IPv4 and IPv6 code.
+At the same time, with the
+.Xr dtrace_ip 4
+provider the script is a simple one-liner:
+.Dl dtrace -n 'ip:::send {printf("%s", args[2]->ip_daddr);}'
+.Pp
+Make sure to review available
+.Xr dtrace 1
+providers first
+before implementing a custom script with the
+.Nm fbt
+provider.
+If none of the DTrace providers offer the desired probes,
+consider adding new statically-defined tracing probes
+.Pq Xr SDT 9 .
+.Ss Frame Pointer
+Inline functions are not instrumentable by
+.Nm fbt
+as they lack a frame pointer.
+A developer might explicitly disable inlining by adding the
+.Ql __noinline
+attribute to a function definition,
+but of course this requires a recompilation of the kernel.
+Building the kernel with
+.Fl fno-omit-frame-pointer
+is another way of preserving frame pointers.
+Note, that sometimes compilers will omit the frame pointer in leaf functions,
+even when configured with
+.Fl fno-omit-frame-pointer .
+.Pp
+Function returns via a tail call are also not instrumentable by
+.Nm fbt .
+As a result,
+a function might have an entry probe
+and a mix of instrumented and uninstrumentable returns.
+.Pp
+Use
+.Xr dtrace_kinst 4
+to trace arbitrary instructions inside kernel functions
+and work around some of the
+limitations
+of
+.Nm fbt .
+.Ss Tracing DTrace
+The
+.Nm fbt
+provider cannot attach to functions inside DTrace provider kernel modules.
diff --git a/share/man/man4/dtrace_kinst.4 b/share/man/man4/dtrace_kinst.4
index 9debbc1bd106..c2187689749b 100644
--- a/share/man/man4/dtrace_kinst.4
+++ b/share/man/man4/dtrace_kinst.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd February 27, 2023
+.Dd July 16, 2025
.Dt DTRACE_KINST 4
.Os
.Sh NAME
@@ -43,10 +43,13 @@ creates probes on-demand, meaning it searches for and parses the function's
instructions each time
.Xr dtrace 1
is run, and not at module load time.
-This is in contrast to FBT's load-time parsing, since
+This is in contrast to
+.Xr dtrace_fbt 4 Ap s
+load-time parsing, since
.Nm kinst
can potentially create thousands of probes for just a single function, instead
-of up to two (entry and return) in the case of FBT.
+of up to two (entry and return) in the case of
+.Xr dtrace_fbt 4 .
A result of this is that
.Cm dtrace -l -P kinst
will not match any probes.
@@ -79,7 +82,8 @@ Trace all instructions in
# dtrace -n 'kinst::amd64_syscall:'
.Ed
.Sh SEE ALSO
-.Xr dtrace 1
+.Xr dtrace 1 ,
+.Xr dtrace_fbt 4
.Sh HISTORY
The
.Nm kinst
diff --git a/share/man/man4/dtrace_lockstat.4 b/share/man/man4/dtrace_lockstat.4
index e308ca6c22ce..448de91a375f 100644
--- a/share/man/man4/dtrace_lockstat.4
+++ b/share/man/man4/dtrace_lockstat.4
@@ -22,12 +22,12 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd August 20, 2019
+.Dd September 3, 2025
.Dt DTRACE_LOCKSTAT 4
.Os
.Sh NAME
.Nm dtrace_lockstat
-.Nd a DTrace provider for tracing CPU scheduling events
+.Nd a DTrace provider for tracing kernel locking events
.Sh SYNOPSIS
.Fn lockstat:::adaptive-acquire "struct mtx *"
.Fn lockstat:::adaptive-release "struct mtx *"
diff --git a/share/man/man4/dtrace_profile.4 b/share/man/man4/dtrace_profile.4
new file mode 100644
index 000000000000..07f86663d60a
--- /dev/null
+++ b/share/man/man4/dtrace_profile.4
@@ -0,0 +1,129 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 Mateusz Piotrowski <0mp@FreeBSD.org>
+.\"
+.Dd July 14, 2025
+.Dt DTRACE_PROFILE 4
+.Os
+.Sh NAME
+.Nm dtrace_profile
+.Nd a DTrace provider for firing probes at a given time interval
+.Sh SYNOPSIS
+.Nm profile Ns Cm :::profile- Ns Ar rate Ns Op Ar unit
+.Nm profile Ns Cm :::tick- Ns Ar rate Ns Op Ar unit
+.Sh DESCRIPTION
+The
+.Nm profile
+provider implements three special probes related to the life cycle of the
+DTrace program itself.
+.Ss Probes
+The
+.Nm profile Ns Cm :::profile
+probes fire on all CPUs and are suitable for measuring the whole system
+periodically.
+.Pp
+The
+.Nm profile Ns Cm :::tick
+probes fire on a single CPU, potentially a different one every time.
+They are useful, e.g., for printing partial results periodically.
+.Ss Rate and Time Units
+The
+.Nm profile
+provider probes will fire at the specified
+.Ar rate .
+.Pp
+The default unit is
+.Cm hz .
+The
+.Nm profile
+provider supports the following time units:
+.Bl -column -offset indent "ns, nsec" "Definition"
+.It Sy Time Unit Ta Sy Definition
+.It Cm ns , nsec Ta nanoseconds
+.It Cm us , usec Ta microseconds
+.It Cm ms , msec Ta milliseconds
+.It Cm s , sec Ta seconds
+.It Cm m , min Ta minutes
+.It Cm h , hour Ta hours
+.It Cm d , day Ta days
+.It Cm hz Ta Hertz (frequency per second)
+.El
+.Ss Probe Arguments
+The arguments of the
+.Nm profile
+provider probes
+are:
+.Bl -tag -width arg0
+.It Va arg0
+The PC (program counter) in the kernel when the probe triggered,
+or 0 if the process was not in the kernel at that time.
+.It Va arg1
+The PC in the user process when the probe triggered,
+or 0 if the process was in the kernel when the probe triggered.
+.El
+.Pp
+Use arguments
+.Va arg0
+and
+.Va arg1
+to tell if the
+.Nm profile
+provider probe fired in the kernel or in the userspace context.
+.Sh IMPLEMENTATION NOTES
+The
+.Xr sysctl 8
+variable
+.Va kern.dtrace.profile.aframes
+controls the number of skipped artificial frames for
+the
+.Nm profile
+provider.
+.Sh EXAMPLES
+.Ss Example 1 : Profiling On-CPU Kernel Stack Traces
+The following DTrace one-liner uses the
+.Nm profile
+provider to collect stack traces over 60 seconds.
+.\" XXX: Keep on one line for easier copy-pasting.
+.Bd -literal -offset indent
+dtrace -x stackframes=100 -n 'profile-197 /arg0/ {@[stack()] = count();} tick-60s {exit(0);}
+.Ed
+.Pp
+The system is profiled at the 197 Hz to avoid sampling in lockstep
+with other periodic activities.
+This unnatural frequency minimizes the chance of overlapping with other events.
+.Pp
+Option
+.Fl x Cm stackframes=100
+increases the maximum number of kernel stack frames to unwind during
+.Fn stack .
+.Pp
+Checking if
+.Ar arg0
+is not zero makes sure that profiling happens
+when the program is in the kernel context.
+.Pp
+Refer to
+.Lk https://www.brendangregg.com/flamegraphs.html
+to learn about generating flame graphs from the obtained stack traces.
+.Sh SEE ALSO
+.Xr dtrace 1 ,
+.Xr tracing 7
+.Rs
+.%B The illumos Dynamic Tracing Guide
+.%O Chapter profile Provider
+.%D 2008
+.%U https://www.illumos.org/books/dtrace/chp-profile.html
+.Re
+.Rs
+.%A Brendan Gregg
+.%A Jim Mauro
+.%B DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD
+.%I Prentice Hall
+.%P pp. 24\(en25
+.%D 2011
+.%U https://www.brendangregg.com/dtracebook/
+.Re
+.Sh AUTHORS
+This manual page was written by
+.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org .
diff --git a/share/man/man4/epair.4 b/share/man/man4/epair.4
index 4bcb54c936cb..b406c423361b 100644
--- a/share/man/man4/epair.4
+++ b/share/man/man4/epair.4
@@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd March 18, 2015
+.Dd September 4, 2025
.Dt EPAIR 4
.Os
.Sh NAME
@@ -79,12 +79,24 @@ and
Like any other Ethernet interface, an
.Nm
needs to have a network address.
-Each
+If the tunable
+.Va net.link.epair.ether_gen_addr Ns
+=0, each
.Nm
-will be assigned a locally administered address by default,
+will be assigned a random locally administered address,
that is only guaranteed to be unique within one network stack.
-To change the default addresses one may use the SIOCSIFADDR ioctl(2) or
-ifconfig(8) utility.
+The tunable
+.Va net.link.epair.ether_gen_addr Ns
+=1 will generate a stable MAC address with
+.Fx
+OUI using
+.Xr ether_gen_addr 9 .
+This tunable defaults to 1 in
+.Fx 15.0 and might be removed in
+.Fx 16.0 .
+To change the default addresses one may use the SIOCSIFADDR
+.Xr ioctl 2 or
+.Xr ifconfig 8 utility.
.Pp
The basic intent is to provide connectivity between two virtual
network stack instances.
@@ -96,6 +108,29 @@ As with any other Ethernet interface,
can have a
.Xr vlan 4
configured on top of it.
+.Pp
+The
+.Nm
+has RXCSUM and RXCSUM6 enabled because it may receive a packet where the
+checksum has already been validated by a physical interface.
+The
+.Nm
+supports TXCSUM and TXCSUM6 for TCP and UDP, but only by forwarding the order
+to compute the checksum.
+Thus, when using an
+.Nm
+interface, a TCP or UDP sender can offload checksum computation
+to a physical interface.
+Note that, in case the packet does not leave the host, the checksum is
+unnecessary and will be ignored if offloaded.
+Such packets contain an incorrect checksum, since it is not computed yet.
+TXCSUM and TXCSUM6 are synchronized between the
+.Nm
+interface pair (i.e., enabling/disabling the capability on one end
+enables/disables it on the other end).
+In case one end is in a bridge and the bridge disabled TXCSUM or TXCSUM6,
+this avoids a sender to send packets with checksum offloading into the
+bridge by using the other end.
.Sh SEE ALSO
.Xr ioctl 2 ,
.Xr altq 4 ,
diff --git a/share/man/man4/gif.4 b/share/man/man4/gif.4
index 959510451011..cc12d91b72ea 100644
--- a/share/man/man4/gif.4
+++ b/share/man/man4/gif.4
@@ -1,6 +1,7 @@
.\" $KAME: gif.4,v 1.28 2001/05/18 13:15:56 itojun Exp $
.\"
.\" Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+.\" Copyright (C) 2024 Hiroki Sato <hrs@FreeBSD.org>
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -27,7 +28,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd October 21, 2018
+.Dd August 27, 2025
.Dt GIF 4
.Os
.Sh NAME
@@ -54,6 +55,16 @@ does not perform GRE encapsulation; use
.Xr gre 4
for GRE encapsulation.
.Pp
+The
+.Nm
+interface can also tunnel Ethernet traffic over IPv4 or IPv6
+when combined with a
+.Xr if_bridge 4
+interface using EtherIP protocol.
+See
+.Xr if_bridge 4
+for detailed setup.
+.Pp
Each
.Nm
interface is created at runtime using interface cloning.
@@ -67,8 +78,8 @@ variable in
.Pp
To use
.Nm ,
-the administrator needs to configure the protocol and addresses used for the outer
-header.
+the administrator needs to configure the protocol and addresses used for
+the outer header.
This can be done by using
.Xr ifconfig 8
.Cm tunnel ,
@@ -79,8 +90,7 @@ The administrator also needs to configure the protocol and addresses for the
inner header, with
.Xr ifconfig 8 .
Note that IPv6 link-local addresses
-(those that start with
-.Li fe80:: )
+.Pq those that start with Li fe80\&:\&:
will be automatically configured whenever possible.
You may need to remove IPv6 link-local addresses manually using
.Xr ifconfig 8 ,
@@ -89,12 +99,139 @@ if you want to disable the use of IPv6 as the inner header
Finally, you must modify the routing table to route the packets through the
.Nm
interface.
+.Ss MTU Configuration and Path MTU Discovery
+The
+.Nm
+interface uses the fixed length,
+.Li 1280 ,
+to determine whether the outgoing IPv6 packets are split.
+This means the MTU value configured on the interface will be ignored
+when the outer protocol is IPv6.
+When the
+.Dv NOCLAMP
+interface flag is set,
+.Nm
+uses the same configured value as IPv4 communications.
+This behavior prevents potential issues when the path MTU is
+smaller than the interface MTU.
+This section describes the reason why the default behavior is different.
+The
+.Dv NOCLAMP
+interface flag can be set using the following command:
+.Pp
+.Dl ifconfig Ar gif0 Cm noclamp
+.Pp
+and clear the flag using the following:
+.Pp
+.Dl ifconfig Ar gif0 Cm -noclamp
+.Pp
+where
+.Ar gif0
+is the actual interface name.
+.Pp
+A tunnel interface always has an implicit smaller MTU for the inner protocol
+than the outer protocol because of the additional header.
+Note that the interface MTU on a
+.Nm
+interface,
+the default value is
+.Li 1280 ,
+is used as MTU for the outer protocol.
+This means that the MTU for the inner protocol varies depending on the
+outer protocol header length.
+If an outgoing packet bigger than the inner protocol MTU arrives at a
+.Nm
+interface for encapsulation,
+it will be split into fragments.
+Specifically,
+if IPv4 is used as the outer protocol,
+the inner is 20 octets smaller than the interface MTU.
+In the case of the default interface MTU,
+.Li 1280 ,
+inner packets bigger than
+.Li 1260
+will be fragmented.
+In the case of IPv6,
+the inner is 40 octets smaller than the outer.
+.Pp
+This fragmentation is not harmful though it can degrade the
+performance.
+Note that while an increased MTU on
+.Nm
+interface helps to mitigate this reduced performance issue,
+it can also cause packet losses on the intermediate narrowest path
+between the two communication endpoints in IPv6.
+IPv6 allows fragmentation only on the sender,
+not on the routers in the communication path.
+A big outgoing packet will be dropped on a router with a smaller MTU.
+.Pp
+In normal IPv6 communication,
+an ICMPv6 Packet Too Big error will be sent back to the sender,
+who can adjust the packet length and re-send it.
+This process is performed in the upper protocols than L3,
+such as TCP,
+and makes the packet length shorter so that packets go through
+the path without fragmentation.
+This behavior is known as path MTU discovery.
+.Pp
+When using a
+.Nm
+interface,
+the Packet Too Big message is generated for the outer protocol.
+Since the
+.Nm
+interface does not translate this error to the inner protocol,
+the inner protocol sees it just as a packet loss with no useful
+information to adjust the length of the next packets.
+In this situation,
+path MTU discovery does not work,
+and communications of the inner protocol
+become stalled.
+.Pp
+In order to avoid this,
+a
+.Nm
+interface silently splits a packet of over 1240 octets into fragments to make
+the outer protocol packets equal or shorter than 1280 octets,
+even when the interface MTU is configured as larger than 1280.
+Note that this occurs only when the outer protocol is IPv6.
+.Li 1280
+is the smallest MTU in IPv6 and guarantees no packet loss occurs
+on intermediate routers.
.Pp
+As mentioned earlier,
+the performance is sub-optimal if the actual path MTU is larger than
+.Li 1280 .
+A typical confusing scenario is as follows.
+The
+.Nm
+interface can have Ethernet,
+whose MTU is usually 1500,
+as the inner protocol.
+It is called an EtherIP tunnel,
+and can be configured by adding the
+.Nm
+interface as a member of
+.Xr if_bridge 4
+interface.
The
+.Xr if_bridge 4
+interface forcibly changes the MTU of the
+.Nm
+interface with those for the other member interfaces,
+which are likely 1500.
+In this case,
+a situation in which the MTU of the
.Nm
-device can be configured to be ECN friendly.
-This can be configured by
-.Dv IFF_LINK1 .
+interface is 1500 but fragmentation in 1280 octets always occurs.
+.Pp
+The default behavior is most conservative to prevent confusing packet loss.
+Depending on the network configuration,
+enabling the
+.Dv NOCLAMP
+interface flag might be helpful for better performance.
+It is crucial to ensure that the path MTU is equal to or larger than
+the interface MTU when enabling this flag.
.Ss ECN friendly behavior
The
.Nm
@@ -169,6 +306,7 @@ variable
to the desired level of nesting.
.Sh SEE ALSO
.Xr gre 4 ,
+.Xr if_bridge 4 ,
.Xr inet 4 ,
.Xr inet6 4 ,
.Xr ifconfig 8
@@ -188,6 +326,13 @@ to the desired level of nesting.
.%D December 1999
.%O draft-ietf-ipsec-ecn-02.txt
.Re
+.Rs
+.%A R. Housley
+.%A S. Hollenbeck
+.%T EtherIP: Tunneling Ethernet Frames in IP Datagrams
+.%R RFC 3378
+.%D September 2002
+.Re
.\"
.Sh HISTORY
The
@@ -199,7 +344,8 @@ There are many tunnelling protocol specifications, all
defined differently from each other.
The
.Nm
-device may not interoperate with peers which are based on different specifications,
+device may not interoperate with peers which are based on different
+specifications,
and are picky about outer header fields.
For example, you cannot usually use
.Nm
@@ -219,11 +365,14 @@ to 1240 or smaller, when the outer header is IPv6 and the inner header is IPv4.
.Pp
The
.Nm
-device does not translate ICMP messages for the outer header into the inner header.
+device does not translate ICMP messages for the outer header into the inner
+header.
.Pp
In the past,
.Nm
had a multi-destination behavior, configurable via
-.Dv IFF_LINK0
+.Dv NOCLAMP
flag.
The behavior is obsolete and is no longer supported.
+This flag is now used to determine whether performing fragmentation when
+the outer protocol is IPv6.
diff --git a/share/man/man4/gpio.4 b/share/man/man4/gpio.4
index 9a629ff402fd..b84bfb01de51 100644
--- a/share/man/man4/gpio.4
+++ b/share/man/man4/gpio.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2013, Sean Bruno <sbruno@freebsd.org>
.\" All rights reserved.
.\"
@@ -22,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd June 27, 2019
+.Dd August 28, 2025
.Dt GPIO 4
.Os
.Sh NAME
@@ -33,7 +36,6 @@ To compile these devices into your kernel and use the device hints, place the
following lines in your kernel configuration file:
.Bd -ragged -offset indent
.Cd "device gpio"
-.Cd "device gpioc"
.Cd "device gpioiic"
.Cd "device gpioled"
.Ed
diff --git a/share/man/man4/gpioled.4 b/share/man/man4/gpioled.4
index 646e2ff2a8f0..45457d20d298 100644
--- a/share/man/man4/gpioled.4
+++ b/share/man/man4/gpioled.4
@@ -70,7 +70,20 @@ Which pin on the GPIO interface to map to this instance.
Please note that this mask should only ever have one bit set
(any other bits - i.e., pins - will be ignored).
.It Va hint.gpioled.%d.invert
-If set to 1, the pin will be set to 0 to light the LED, and 1 to clear it.
+Use pin inversion. If set to 1, the pin will be set to 0 to light the LED, and 1
+to clear it.
+.It Va hint.gpioled.%d.invmode
+Whether or not to use hardware support when pin inversion is requested. Must be
+one of:
+.Bl -tag
+.It Va auto
+Use hardware pin inversion if available, else fallback to software pin
+inversion. This is the default.
+.It Va hw
+Use hardware pin inversion.
+.It Va sw
+Use software pin inversion.
+.El
.It Va hint.gpioled.%d.state
The initial state of the LED when the driver takes control over it.
If set to 1 or 0, the LED will be on or off correspondingly.
diff --git a/share/man/man4/gve.4 b/share/man/man4/gve.4
index 924a01a06d08..c5627e929044 100644
--- a/share/man/man4/gve.4
+++ b/share/man/man4/gve.4
@@ -230,6 +230,14 @@ The default value is 0, which means hardware LRO is enabled by default.
The software LRO stack in the kernel is always used.
This sysctl variable needs to be set before loading the driver, using
.Xr loader.conf 5 .
+.It Va hw.gve.allow_4k_rx_buffers
+Setting this boot-time tunable to 1 enables support for 4K RX Buffers.
+The default value is 0, which means 2K RX Buffers will be used.
+4K RX Buffers are only supported on DQO_RDA and DQO_QPL queue formats.
+When enabled, 4K RX Buffers will be used either when HW LRO is enabled
+or mtu is greated than 2048.
+This sysctl variable needs to be set before loading the driver, using
+.Xr loader.conf 5 .
.It Va dev.gve.X.num_rx_queues and dev.gve.X.num_tx_queues
Run-time tunables that represent the number of currently used RX/TX queues.
The default value is the max number of RX/TX queues the device can support.
diff --git a/share/man/man4/hwt.4 b/share/man/man4/hwt.4
new file mode 100644
index 000000000000..299332c72542
--- /dev/null
+++ b/share/man/man4/hwt.4
@@ -0,0 +1,144 @@
+.\"
+.\" Copyright (c) 2025 Ruslan Bukin <br@bsdpad.com>
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.Dd July 12, 2025
+.Dt HWT 4
+.Os
+.Sh NAME
+.Nm hwt
+.Nd Hardware Trace Framework
+.Sh SYNOPSIS
+.Cd "options HWT_HOOKS"
+.Cd "device hwt"
+.Pp
+At least one of:
+.Cd "device intel_pt"
+.Pq amd64
+.Cd "device coresight"
+.Pq arm64
+.Cd "device spe"
+.Pq arm64
+.Pp
+In
+.Xr rc.conf 5 :
+.Cd kld_list="hwt"
+.Sh DESCRIPTION
+The
+.Nm
+framework provides infrastructure for hardware-assisted tracing.
+It collects detailed information about software execution and stores it as
+events in highly compressed format into DRAM.
+The events cover information about control flow changes of a program, whether
+branches taken or not, exceptions taken, timing information, cycles elapsed and
+more.
+The information collected allows to reconstruct entire program flow of a given
+application without noticeable performance impact.
+.Sh HARDWARE
+The framework supports several tracing technologies found on
+.Cd arm64
+and
+.Cd amd64
+systems:
+.Pp
+.Bl -bullet -compact
+.It
+ARM Coresight
+.It
+ARM Statistical Profiling Extension (SPE)
+.It
+Intel Processor Trace (PT)
+.El
+.Pp
+The
+.Nm
+framework supports two modes of operation:
+.Bl -tag -width "Thread mode"
+.It Em CPU mode
+Capture CPU activity in kernel mode.
+.It Em Thread mode
+Capture activity of each of a process's threads in user mode.
+.El
+.Sh MANAGEMENT
+When loaded into kernel, the
+.Nm
+framework provides
+.Pa /dev/hwt
+character device.
+The only
+.Xr ioctl 2
+request it accepts is
+.Dv HWT_IOC_ALLOC .
+This request allocates kernel tracing context (CTX) based on requested mode of
+operation, set of CPUs and/or pid.
+.Pp
+Upon successful CTX allocation, the ioctl returns a CTX identification
+number (ident).
+.Pp
+Each CTX is then managed using its own dedicated character device found at
+.Pa "/dev/hwt_${ident}_${d}",
+where ident is a unique identification number of tracing context, d is either
+cpu_id (in HWT CPU mode) or process pid (in HWT Thread mode).
+.Sh HOOKS
+During tracing of a target process, HWT records runtime events such as threads
+creation, exec and mmap system calls.
+These events are logged as "records" within a particular CTX associated with
+traced process.
+.Pp
+Additionally, HWT can suspend the target thread upon exec or mmap system calls
+if requested by the user.
+This pause allows user-space tools to retrieve the records and adjust tracing
+settings before execution continues.
+This feature is especially useful when address range filtering is enabled,
+allowing tracing of specific functions within the target executable or a
+dynamic library.
+.Sh KERNEL OPTIONS
+The following options in the kernel configuration file are mandatory and
+related to
+.Nm
+operation:
+.Pp
+.Bl -tag -width ".Dv HWT_HOOKS" -compact
+.It Dv HWT_HOOKS
+Enable kernel hooks.
+.El
+.Sh IOCTL INTERFACE
+Once a CTX is allocated, its management character device accepts several
+.Xr ioctl 2
+requests:
+.Bl -tag -width "HWT_IOC_RECORD_GET"
+.It Dv HWT_IOC_START
+Start tracing.
+In HWT CPU mode the tracing does actually start with this
+.Xr ioctl 2
+request.
+In the Thread mode, the tracing "running" flag set, but tracing begins after
+scheduler switches the target thread onto CPU and return to user mode.
+.It Dv HWT_IOC_STOP
+Stop tracing of the particular CTX.
+.It Dv HWT_IOC_RECORD_GET
+Copy all or part of records collected during hook invocation and associated
+with this CTX to userspace.
+.It Dv HWT_IOC_BUFPTR_GET
+Get current pointer in buffer that is filled by tracing units in real-time.
+.It Dv HWT_IOC_SET_CONFIG
+Set architecture-specific config (optional).
+.It Dv HWT_IOC_WAKEUP
+Wake up a thread that has been put to sleep by HWT framework hooks.
+.It Dv HWT_IOC_SVC_BUF
+For SPE-only, the kernel is waiting for userspace to notify that it has copied
+out a buffer to avoid data loss/overwriting buffers.
+.El
+.Sh SEE ALSO
+.Xr tracing 7 ,
+.Xr hwt 8
+.Sh HISTORY
+The
+.Nm
+framework first appeared in
+.Fx 15.0 .
+.Sh AUTHORS
+.An Ruslan Bukin Aq Mt br@FreeBSD.org
+.An Bojan Novković Aq Mt bnovkov@freebsd.org
+.An Zachary Leaf Aq Mt zachary.leaf@arm.com
diff --git a/share/man/man4/ice.4 b/share/man/man4/ice.4
index 63fdb244f3ed..c7675e627726 100644
--- a/share/man/man4/ice.4
+++ b/share/man/man4/ice.4
@@ -1,4 +1,4 @@
-.\"-
+.\"
.\" SPDX-License-Identifier: BSD-3-Clause
.\"
.\" Copyright (c) 2019-2020, Intel Corporation
@@ -32,32 +32,42 @@
.\"
.\" * Other names and brands may be claimed as the property of others.
.\"
-.Dd May 20, 2024
+.Dd October 3, 2025
.Dt ICE 4
.Os
.Sh NAME
.Nm ice
-.Nd "Intel Ethernet 800 Series Driver"
+.Nd Intel Ethernet 800 Series Driver
.Sh SYNOPSIS
-To compile this driver into the kernel, place the following lines in your
-kernel configuration file:
-.Bd -ragged -offset indent
-.Cd "device iflib"
-.Cd "device ice"
-.Ed
+.Cd device iflib
+.Cd device ice
.Pp
-To load the driver as a module at boot time, place the following lines in
+In
.Xr loader.conf 5 :
-.Bd -literal -offset indent
-if_ice_load="YES"
-.Ed
+.Cd if_ice_load
+.Cd hw.ice.enable_health_events
+.Cd hw.ice.irdma
+.Cd hw.ice.irdma_max_msix
+.Cd hw.ice.debug.enable_tx_fc_filter
+.Cd hw.ice.debug.enable_tx_lldp_filter
+.Cd hw.ice.debug.ice_tx_balance_en
+.Pp
+In
+.Xr sysctl.conf 5
+or
+.Xr loader.conf 5 :
+.Cd dev.ice.#.current_speed
+.Cd dev.ice.#.fw_version
+.Cd dev.ice.#.ddp_version
+.Cd dev.ice.#.pba_number
+.Cd dev.ice.#.hw.mac.*
.Sh DESCRIPTION
.Ss Features
The
.Nm
driver provides support for any PCI Express adapter or LOM
(LAN On Motherboard)
-in the Intel Ethernet 800 Series.
+in the Intel\(rg Ethernet 800 Series.
As of this writing, the series includes devices with these model numbers:
.Pp
.Bl -bullet -compact
@@ -73,21 +83,37 @@ Intel\(rg Ethernet Connection E822\-L
Intel\(rg Ethernet Connection E823\-C
.It
Intel\(rg Ethernet Connection E823\-L
+.It
+Intel\(rg Ethernet Connection E825\-C
+.It
+Intel\(rg Ethernet Connection E830\-C
+.It
+Intel\(rg Ethernet Connection E830\-CC
+.It
+Intel\(rg Ethernet Connection E830\-L
+.It
+Intel\(rg Ethernet Connection E830\-XXV
.El
.Pp
For questions related to hardware requirements, refer to the documentation
-supplied with your adapter.
+supplied with the adapter.
.Pp
Support for Jumbo Frames is provided via the interface MTU setting.
Selecting an MTU larger than 1500 bytes with the
.Xr ifconfig 8
utility configures the adapter to receive and transmit Jumbo Frames.
The maximum MTU size for Jumbo Frames is 9706.
-This value coincides with the maximum Jumbo Frame size of 9728.
+For more information, see the
+.Sx Jumbo Frames
+section.
.Pp
This driver version supports VLANs.
-For information on enabling VLANs, see the
-.Pa README .
+For information on enabling VLANs, see
+.Xr vlan 4 .
+For additional information on configuring VLANs, see
+.Xr ifconfig 8 Ap s
+.Dq VLAN Parameters
+section.
.Pp
Offloads are also controlled via the interface, for instance, checksumming for
both IPv4 and IPv6 can be set and unset, TSO4 and/or TSO6, and finally LRO can
@@ -95,29 +121,737 @@ be set and unset.
.Pp
For more information on configuring this device, see
.Xr ifconfig 8 .
+.Pp
+The associated Virtual Function (VF) driver for this driver is
+.Xr iavf 4 .
+.Pp
+The associated RDMA driver for this driver is
+.Xr irdma 4 .
+.Ss Dynamic Device Personalization
+The DDP package loads during device initialization.
+The driver looks for the
+.Sy ice_ddp
+module and checks that it contains a valid DDP package file.
+.Pp
+If the driver is unable to load the DDP package, the device will enter Safe
+Mode.
+Safe Mode disables advanced and performance features and supports only
+basic traffic and minimal functionality, such as updating the NVM or
+downloading a new driver or DDP package.
+Safe Mode only applies to the affected physical function and does not impact
+any other PFs.
+See the
+.Dq Intel\(rg Ethernet Adapters and Devices User Guide
+for more details on DDP and Safe Mode.
+.Pp
+If issues are encountered with the DDP package file, an updated driver or
+.Sy ice_ddp
+module may need to be downloaded.
+See the log messages for more information.
+.Pp
+The DDP package cannot be updated if any PF drivers are already loaded.
+To overwrite a package, unload all PFs and then reload the driver with the
+new package.
+.Pp
+Only one DDP package can be used per driver, even if more than one
+device installed that uses the driver.
+.Pp
+Only the first loaded PF per device can download a package for that device.
+.Ss Jumbo Frames
+Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU)
+to a value larger than the default value of 1500.
+.Pp
+Use
+.Xr ifconfig 8
+to increase the MTU size.
+.Pp
+The maximum MTU setting for jumbo frames is 9706.
+This corresponds to the maximum jumbo frame size of 9728 bytes.
+.Pp
+This driver will attempt to use multiple page sized buffers to receive
+each jumbo packet.
+This should help to avoid buffer starvation issues when allocating receive
+packets.
+.Pp
+Packet loss may have a greater impact on throughput when jumbo frames are in
+use.
+If a drop in performance is observed after enabling jumbo frames, enabling
+flow control may mitigate the issue.
+.Ss Remote Direct Memory Access
+Remote Direct Memory Access, or RDMA, allows a network device to transfer data
+directly to and from application memory on another system, increasing
+throughput and lowering latency in certain networking environments.
+.Pp
+The ice driver supports both the iWARP (Internet Wide Area RDMA Protocol) and
+RoCEv2 (RDMA over Converged Ethernet) protocols.
+The major difference is that iWARP performs RDMA over TCP, while RoCEv2 uses
+UDP.
+.Pp
+Devices based on the Intel\(rg Ethernet 800 Series do not support RDMA when
+operating in multiport mode with more than 4 ports.
+.Pp
+For detailed installation and configuration information for RDMA, see
+.Xr irdma 4 .
+.Ss RDMA Monitoring
+For debugging/testing purposes, a sysctl can be used to set up a mirroring
+interface on a port.
+The interface can receive mirrored RDMA traffic for packet
+analysis tools like
+.Xr tcpdump 1 .
+This mirroring may impact performance.
+.Pp
+To use RDMA monitoring, more MSI\-X interrupts may need to be reserved.
+Before the
+.Nm
+driver loads, configure the following tunable provided by
+.Xr iflib 4 :
+.Bd -literal -offset indent
+dev.ice.<interface #>.iflib.use_extra_msix_vectors=4
+.Ed
+.Pp
+The number of extra MSI\-X interrupt vectors may need to be adjusted.
+.Pp
+To create/delete the interface:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.create_interface=1
+sysctl dev.ice.<interface #>.delete_interface=1
+.Ed
+.Pp
+The mirrored interface receives both LAN and RDMA traffic.
+Additional filters can be configured in tcpdump.
+.Pp
+To differentiate the mirrored interface from the primary interface, the network
+interface naming convention is:
+.Bd -literal -offset indent
+<driver name><port number><modifier><modifier unit number>
+.Ed
+.Pp
+For example,
+.Dq Li ice0m0
+is the first mirroring interface on
+.Dq Li ice0 .
+.Ss Data Center Bridging
+Data Center Bridging (DCB) is a configuration Quality of Service
+implementation in hardware.
+It uses the VLAN priority tag (802.1p) to filter traffic.
+That means that there are 8 different priorities that traffic can be filtered
+into.
+It also enables priority flow control (802.1Qbb) which can limit or eliminate
+the number of dropped packets during network stress.
+Bandwidth can be allocated to each of these priorities, which is enforced at
+the hardware level (802.1Qaz).
+.Pp
+DCB is normally configured on the network using the DCBX protocol (802.1Qaz), a
+specialization of LLDP (802.1AB). The
+.Nm
+driver supports the following mutually exclusive variants of DCBX support:
+.Bl -bullet -compact
+.It
+Firmware\-based LLDP Agent
+.It
+Software\-based LLDP Agent
+.El
+.Pp
+In firmware\-based mode, firmware intercepts all LLDP traffic and handles DCBX
+negotiation transparently for the user.
+In this mode, the adapter operates in
+.Dq willing
+DCBX mode, receiving DCB settings from the link partner (typically a
+switch).
+The local user can only query the negotiated DCB configuration.
+For information on configuring DCBX parameters on a switch, please consult the
+switch manufacturer'ss documentation.
+.Pp
+In software\-based mode, LLDP traffic is forwarded to the network stack and user
+space, where a software agent can handle it.
+In this mode, the adapter can operate in
+.Dq nonwilling
+DCBX mode and DCB configuration can be both queried and set locally.
+This mode requires the FW\-based LLDP Agent to be disabled.
+.Pp
+Firmware\-based mode and software\-based mode are controlled by the
+.Dq fw_lldp_agent
+sysctl.
+Refer to the Firmware Link Layer Discovery Protocol Agent section for more
+information.
+.Pp
+Link\-level flow control and priority flow control are mutually exclusive.
+The ice driver will disable link flow control when priority flow control
+is enabled on any traffic class (TC).
+It will disable priority flow control when link flow control is enabled.
+.Pp
+To enable/disable priority flow control in software\-based DCBX mode:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.pfc=1 (or 0 to disable)
+.Ed
+.Pp
+Enhanced Transmission Selection (ETS) allows bandwidth to be assigned to certain
+TCs, to help ensure traffic reliability.
+To view the assigned ETS configuration, use the following:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.ets_min_rate
+.Ed
+.Pp
+To set the minimum ETS bandwidth per TC, separate the values by commas.
+All values must add up to 100.
+For example, to set all TCs to a minimum bandwidth of 10% and TC 7 to 30%,
+use the following:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.ets_min_rate=10,10,10,10,10,10,10,30
+.Ed
+.Pp
+To set the User Priority (UP) to a TC mapping for a port, separate the values
+by commas.
+For example, to map UP 0 and 1 to TC 0, UP 2 and 3 to TC 1, UP 4 and
+5 to TC 2, and UP 6 and 7 to TC 3, use the following:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.up2tc_map=0,0,1,1,2,2,3,3
+.Ed
+.Ss L3 QoS mode
+The
+.Nm
+driver supports setting DSCP\-based Layer 3 Quality of Service (L3 QoS)
+in the PF driver.
+The driver initializes in L2 QoS mode by default; L3 QoS is disabled by
+default.
+Use the following sysctl to enable or disable L3 QoS:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.pfc_mode=1 (or 0 to disable)
+.Ed
+.Pp
+If the L3 QoS mode is disabled, it returns to L2 QoS mode.
+.Pp
+To map a DSCP value to a traffic class, separate the values by commas.
+For example, to map DSCPs 0\-3 and DSCP 8 to DCB TCs 0\-3 and 4, respectively:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.dscp2tc_map.0\-7=0,1,2,3,0,0,0,0
+sysctl dev.ice.<interface #>.dscp2tc_map.8\-15=4,0,0,0,0,0,0,0
+.Ed
+.Pp
+To change the DSCP mapping back to the default traffic class, set all the
+values back to 0.
+.Pp
+To view the currently configured mappings, use the following:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.dscp2tc_map
+.Ed
+.Pp
+L3 QoS mode is not available when FW\-LLDP is enabled.
+.Pp
+FW\-LLDP cannot be enabled if L3 QoS mode is active.
+.Pp
+Disable FW\-LLDP before switching to L3 QoS mode.
+.Pp
+Refer to the
+.Sx Firmware Link Layer Discovery Protocol Agent
+section in this README for more information on disabling FW\-LLDP.
+.Ss Firmware Link Layer Discovery Protocol Agent
+Use sysctl to change FW\-LLDP settings.
+The FW\-LLDP setting is per port and persists across boots.
+.Pp
+To enable the FW\-LLDP Agent:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.fw_lldp_agent=1
+.Ed
+.Pp
+To disable the FW\-LLDP Agebt:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.fw_lldp_agent=0
+.Ed
+.Pp
+To check the current LLDP setting:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.fw_lldp_agent
+.Ed
+.Pp
+The UEFI HII LLDP Agent attribute must be enabled for this setting
+to take effect.
+If the
+.Dq LLDP AGENT
+attribute is set to disabled, the FW\-LLDP Agent cannot be enabled from the
+driver.
+.Ss Link\-Level Flow Control (LFC)
+Ethernet Flow Control (IEEE 802.3x) can be configured with sysctl to enable
+receiving and transmitting pause frames for
+.Nm .
+When transmit is enabled, pause frames are generated when the receive packet
+buffer crosses a predefined threshold.
+When receive is enabled, the transmit unit will halt for the time delay
+specified in the firmware when a pause frame is received.
+.Pp
+Flow Control is disabled by default.
+.Pp
+Use sysctl to change the flow control settings for a single interface without
+reloading the driver:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.fc
+.Ed
+.Pp
+The available values for flow control are:
+.Bd -literal -offset indent
+0 = Disable flow control
+1 = Enable Rx pause
+2 = Enable Tx pause
+3 = Enable Rx and Tx pause
+.Ed
+.Pp
+Verify that link flow control was negotiated on the link by checking the
+interface entry in
+.Xr ifconfig 8
+and looking for the flags
+.Dq txpause
+and/or
+.Dq rxpause
+in the
+.Dq media
+status.
+.Pp
+The
+.Nm
+driver requires flow control on both the port and link partner.
+If flow control is disabled on one of the sides, the port may appear to
+hang on heavy traffic.
+.Pp
+For more information on priority flow control, refer to the
+.Sx Data Center Bridging
+section.
+.Pp
+The VF driver does not have access to flow control.
+It must be managed from the host side.
+.Ss Forward Error Correction
+Forward Error Correction (FEC) improves link stability but increases latency.
+Many high quality optics, direct attach cables, and backplane channels can
+provide a stable link without FEC.
+.Pp
+For devices to benefit from this feature, link partners must have FEC enabled.
+.Pp
+If the
+.Va allow_no_fec_modules_in_auto
+sysctl is enabled Auto FEC negotiation will include
+.Dq No FEC
+in case the link partner does not have FEC enabled or is not FEC capable:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.allow_no_fec_modules_in_auto=1
+.Ed
+.Pp
+NOTE: This flag is currently not supported on the Intel\(rg Ethernet 830
+Series.
+.Pp
+To show the current FEC settings that are negotiated on the link:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.negotiated_fec
+.Ed
+.Pp
+To view or set the FEC setting that was requested on the link:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.requested_fec
+.Ed
+.Pp
+To see the valid FEC modes for the link:
+.Bd -literal -offset indent
+sysctl \-d dev.ice.<interface #>.requested_fec
+.Ed
+.Ss Speed and Duplex Configuration
+The speed and duplex settings cannot be hard set.
+.Pp
+To have the device change the speeds it will use in auto-negotiation or
+force link with:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.advertise_speed=<mask>
+.Ed
+.Pp
+Supported speeds will vary by device.
+Depending on the speeds the device supports, valid bits used in a speed mask
+could include:
+.Bd -literal -offset indent
+0x0 \- Auto
+0x2 \- 100 Mbps
+0x4 \- 1 Gbps
+0x8 \- 2.5 Gbps
+0x10 \- 5 Gbps
+0x20 \- 10 Gbps
+0x80 \- 25 Gbps
+0x100 \- 40 Gbps
+0x200 \- 50 Gbps
+0x400 \- 100 Gbps
+0x800 \- 200 Gbps
+.Ed
+.Ss Disabling physical link when the interface is brought down
+When the
+.Va link_active_on_if_down
+sysctl is set to
+.Dq 0 ,
+the port's link will go down when the interface is brought down.
+By default, link will stay up.
+.Pp
+To disable link when the interface is down:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.link_active_on_if_down=0
+.Ed
+.Ss Firmware Logging
+The
+.Nm
+driver allows for the generation of firmware logs for supported categories of
+events, to help debug issues with Customer Support.
+Refer to the
+.Dq Intel\(rg Ethernet Adapters and Devices User Guide
+for an overview of this feature and additional tips.
+.Pp
+At a high level, to capture a firmware log:
+.Bl -enum -compact
+.It
+Set the configuration for the firmware log.
+.It
+Perform the necessary steps to reproduce the issue.
+.It
+Capture the firmware log.
+.It
+Stop capturing the firmware log.
+.It
+Reset the firmware log settings as needed.
+.It
+Work with Customer Support to debug the issue.
+.El
+.Pp
+NOTE: Firmware logs are generated in a binary format and must be decoded by
+Customer Support.
+Information collected is related only to firmware and hardware for debug
+purposes.
+.Pp
+Once the driver is loaded, it will create the
+.Va fw_log
+sysctl node under the debug section of the driver's sysctl list.
+The driver groups these events into categories, called
+.Dq modules .
+Supported modules include:
+.Pp
+.Bl -tag -offset indent -compact -width "task_dispatch"
+.It Va general
+General (Bit 0)
+.It Va ctrl
+Control (Bit 1)
+.It Va link
+Link Management (Bit 2)
+.It Va link_topo
+Link Topology Detection (Bit 3)
+.It Va dnl
+Link Control Technology (Bit 4)
+.It Va i2c
+I2C (Bit 5)
+.It Va sdp
+SDP (Bit 6)
+.It Va mdio
+MDIO (Bit 7)
+.It Va adminq
+Admin Queue (Bit 8)
+.It Va hdma
+Host DMA (Bit 9)
+.It Va lldp
+LLDP (Bit 10)
+.It Va dcbx
+DCBx (Bit 11)
+.It Va dcb
+DCB (Bit 12)
+.It Va xlr
+XLR (function\-level resets; Bit 13)
+.It Va nvm
+NVM (Bit 14)
+.It Va auth
+Authentication (Bit 15)
+.It Va vpd
+Vital Product Data (Bit 16)
+.It Va iosf
+Intel On\-Chip System Fabric (Bit 17)
+.It Va parser
+Parser (Bit 18)
+.It Va sw
+Switch (Bit 19)
+.It Va scheduler
+Scheduler (Bit 20)
+.It Va txq
+TX Queue Management (Bit 21)
+.It Va acl
+ACL (Access Control List; Bit 22)
+.It Va post
+Post (Bit 23)
+.It Va watchdog
+Watchdog (Bit 24)
+.It Va task_dispatch
+Task Dispatcher (Bit 25)
+.It Va mng
+Manageability (Bit 26)
+.It Va synce
+SyncE (Bit 27)
+.It Va health
+Health (Bit 28)
+.It Va tsdrv
+Time Sync (Bit 29)
+.It Va pfreg
+PF Registration (Bit 30)
+.It Va mdlver
+Module Version (Bit 31)
+.El
+.Pp
+The verbosity level of the firmware logs can be modified.
+It is possible to set only one log level per module, and each level includes the
+verbosity levels lower than it.
+For instance, setting the level to
+.Dq normal
+will also log warning and error messages.
+Available verbosity levels are:
+.Pp
+.Bl -item -offset indent -compact
+.It
+0 = none
+.It
+1 = error
+.It
+2 = warning
+.It
+3 = normal
+.It
+4 = verbose
+.El
+.Pp
+To set the desired verbosity level for a module, use the following sysctl
+command and then register it:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.debug.fw_log.severity.<module>=<level>
+.Ed
+.Pp
+For example:
+.Bd -literal -offset indent
+sysctl dev.ice.0.debug.fw_log.severity.link=1
+sysctl dev.ice.0.debug.fw_log.severity.link_topo=2
+sysctl dev.ice.0.debug.fw_log.register=1
+.Ed
+.Pp
+To log firmware messages after booting, but before the driver initializes, use
+.Xr kenv 1
+to set the tunable.
+The
+.Va on_load
+setting tells the device to register the variable as soon as possible during
+driver load.
+For example:
+.Bd -literal -offset indent
+kenv dev.ice.0.debug.fw_log.severity.link=1
+kenv dev.ice.0.debug.fw_log.severity.link_topo=2
+kenv dev.ice.0.debug.fw_log.on_load=1
+.Ed
+.Pp
+To view the firmware logs and redirect them to a file, use the following
+command:
+.Bd -literal -offset indent
+dmesg > log_output
+.Ed
+.Pp
+NOTE: Logging a large number of modules or too high of a verbosity level will
+add extraneous messages to dmesg and could hinder debug efforts.
+.Ss Debug Dump
+Intel\(rg Ethernet 800 Series devices support debug dump, which allows
+gathering of runtime register values from the firmware for
+.Dq clusters
+of events and then write the results to a single dump file, for debugging
+complicated issues in the field.
+.Pp
+This debug dump contains a snapshot of the device and its existing hardware
+configuration, such as switch tables, transmit scheduler tables, and other
+information.
+Debug dump captures the current state of the specified cluster(s) and is a
+stateless snapshot of the whole device.
+.Pp
+NOTE: Like with firmware logs, the contents of the debug dump are not
+human\-readable.
+Work with Customer Support to decode the file.
+.Pp
+Debug dump is per device, not per PF.
+.Pp
+Debug dump writes all information to a single file.
+.Pp
+To generate a debug dump file in
+.Fx
+do the following:
+.Pp
+Specify the cluster(s) to include in the dump file, using a bitmask and the
+following command:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.debug.dump.clusters=<bitmask>
+.Ed
+.Pp
+To print the complete cluster bitmask and parameter list to the screen,
+pass the
+.Fl d
+argument.
+For example:
+.Bd -literal -offset indent
+sysctl \-d dev.ice.0.debug.dump.clusters
+.Ed
+.Pp
+Possible bitmask values for
+.Va clusters
+are:
+.Bl -bullet -compact
+.It
+0 \- Dump all clusters (only supported on Intel\(rg Ethernet E810 Series and
+Intel\(rg Ethernet E830 Series)
+.It
+0x1 \- Switch
+.It
+0x2 \- ACL
+.It
+0x4 \- Tx Scheduler
+.It
+0x8 \- Profile Configuration
+.It
+0x20 \- Link
+.It
+0x80 \- DCB
+.It
+0x100 \- L2P
+.It
+0x400000 \- Manageability Transactions (only supported on Intel\(rg Ethernet
+E810 Series)
+.El
+.Pp
+For example, to dump the Switch, DCB, and L2P clusters, use the following:
+.Bd -literal -offset indent
+sysctl dev.ice.0.debug.dump.clusters=0x181
+.Ed
+.Pp
+To dump all clusters, use the following:
+.Bd -literal -offset indent
+sysctl dev.ice.0.debug.dump.clusters=0
+.Ed
+.Pp
+NOTE: Using 0 will skip Manageability Transactions data.
+.Pp
+If a single cluster is not specified, the driver will dump all clusters to a
+single file.
+Issue the debug dump command, using the following:
+.Bd -literal -offset indent
+sysctl \-b dev.ice.<interface #>.debug.dump.dump=1 > dump.bin
+.Ed
+.Pp
+NOTE: The driver will not receive the command if the sysctl is not set to
+.Dq 1 .
+.Pp
+Replace
+.Dq dump.bin
+above with the preferred file name.
+.Pp
+To clear the
+.Va clusters
+mask before a subsequent debug dump and then do the dump:
+.Bd -literal -offset indent
+sysctl dev.ice.0.debug.dump.clusters=0
+sysctl dev.ice.0.debug.dump.dump=1
+.Ed
+.Ss Debugging PHY Statistics
+The ice driver supports the ability to obtain the values of the PHY registers
+from Intel(R) Ethernet 810 Series devices in order to debug link and
+connection issues during runtime.
+.Pp
+The driver provides information about:
+.Bl -bullet
+.It
+Rx and Tx Equalization parameters
+.It
+RS FEC correctable and uncorrectable block counts
+.El
+.Pp
+Use the following sysctl to read the PHY registers:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.debug.phy_statistics
+.Ed
+.Pp
+NOTE: The contents of the registers are not human\-readable.
+Like with firmware logs and debug dump, work with Customer Support
+to decode the file.
+.Ss Transmit Balancing
+Some Intel(R) Ethernet 800 Series devices allow for enabling a transmit
+balancing feature to improve transmit performance under certain conditions.
+When enabled, the feature should provide more consistent transmit
+performance across queues and/or PFs and VFs.
+.Pp
+By default, transmit balancing is disabled in the NVM.
+To enable this feature, use one of the following to persistently change the
+setting for the device:
+.Bl -bullet
+.It
+Use the Ethernet Port Configuration Tool (EPCT) to enable the
+.Va tx_balancing
+option.
+Refer to the EPCT readme for more information.
+.It
+Enable the Transmit Balancing device setting in UEFI HII.
+.El
+.Pp
+When the driver loads, it reads the transmit balancing setting from the NVM and
+configures the device accordingly.
+.Pp
+NOTE: The user selection for transmit balancing in EPCT or HII is persistent
+across reboots.
+The system must be rebooted for the selected setting to take effect.
+.Pp
+This setting is device wide.
+.Pp
+The driver, NVM, and DDP package must all support this functionality to
+enable the feature.
+.Ss Thermal Monitoring
+Intel(R) Ethernet 810 Series and Intel(R) Ethernet 830 Series devices can
+display temperature data (in degrees Celsius) via:
+.Bd -literal -offset indent
+sysctl dev.ice.<interface #>.temp
+.Ed
+.Ss Network Memory Buffer Allocation
+.Fx
+may have a low number of network memory buffers (mbufs) by default.
+If the number of mbufs available is too low, it may cause the driver to fail
+to initialize and/or cause the system to become unresponsive.
+Check to see if the system is mbuf\-starved by running
+.Ic netstat Fl m .
+Increase the number of mbufs by editing the lines below in
+.Pa /etc/sysctl.conf :
+.Bd -literal -offset indent
+kern.ipc.nmbclusters
+kern.ipc.nmbjumbop
+kern.ipc.nmbjumbo9
+kern.ipc.nmbjumbo16
+kern.ipc.nmbufs
+.Ed
+.Pp
+The amount of memory that should be allocated is system specific, and may require some
+trial and error.
+Also, increasing the following in
+.Pa /etc/sysctl.conf
+could help increase network performance:
+.Bd -literal -offset indent
+kern.ipc.maxsockbuf
+net.inet.tcp.sendspace
+net.inet.tcp.recvspace
+net.inet.udp.maxdgram
+net.inet.udp.recvspace
+.Ed
.Ss Additional Utilities
There are additional tools available from Intel to help configure and update
the adapters covered by this driver.
These tools can be downloaded directly from Intel at
.Lk https://downloadcenter.intel.com ,
-by searching for their names, or by installing certain packages:
+by searching for their names:
.Bl -bullet
.It
-To change the behavior of the QSFP28 ports on E810-C adapters, use the
-Intel EPCT (Ethernet Port configuration tool); installed by the
-.Em sysutils/intel-epct
-package.
+To change the behavior of the QSFP28 ports on E810-C adapters, use the Intel
+.Sy Ethernet Port Configuration Tool - FreeBSD .
.It
-To update the firmware on an adapter, use the Intel Non-Volatile Memory (NVM)
-Update Utility for Intel Network Adapter 800 series; installed by the
-.Em sysutils/intel-nvmupdate-100g
-package.
+To update the firmware on an adapter, use the Intel
+.Sy Non-Volatile Memory (NVM) Update Utility for Intel Ethernet Network Adapters E810 series - FreeBSD
.El
.Sh HARDWARE
The
.Nm
driver supports the Intel Ethernet 800 series.
-Most adapters in this series with SFP28/QSFP28 cages
+Some adapters in this series with SFP28/QSFP28 cages
have firmware that requires that Intel qualified modules are used; these
qualified modules are listed below.
This qualification check cannot be disabled by the driver.
@@ -173,6 +907,38 @@ SFF-8472 v10.4 specifications.
.Pp
This is not an exhaustive list; please consult product documentation for an
up-to-date list of supported media.
+.Ss Fiber optics and auto\-negotiation
+Modules based on 100GBASE\-SR4, active optical cable (AOC), and active copper
+cable (ACC) do not support auto\-negotiation per the IEEE specification.
+To obtain link with these modules, auto\-negotiation must be turned off on the
+link partner's switch ports.
+.Ss PCI-Express Slot Bandwidth
+Some PCIe x8 slots are actually configured as x4 slots.
+These slots have insufficient bandwidth for full line rate with dual port and
+quad port devices.
+In addition, if a PCIe v4.0 or v3.0\-capable adapter is placed into a PCIe v2.x
+slot, full bandwidth will not be possible.
+.Pp
+The driver detects this situation and writes the following message in the
+system log:
+.Bd -literal -offset indent
+PCI\-Express bandwidth available for this device may be insufficient for
+optimal performance.
+Please move the device to a different PCI\-e link with more lanes and/or
+higher transfer rate.
+.Ed
+.Pp
+If this error occurs, moving the adapter to a true PCIe x8 or x16 slot will
+resolve the issue.
+For best performance, install devices in the following PCI slots:
+.Bl -bullet
+.It
+Any 100Gbps\-capable Intel(R) Ethernet 800 Series device: Install in a
+PCIe v4.0 x8 or v3.0 x16 slot
+.It
+A 200Gbps\-capable Intel(R) Ethernet 830 Series device: Install in a
+PCIe v5.0 x8 or v4.0 x16 slot
+.El
.Sh LOADER TUNABLES
Tunables can be set at the
.Xr loader 8
@@ -182,42 +948,62 @@ See the
.Xr iflib 4
man page for more information on using iflib sysctl variables as tunables.
.Bl -tag -width indent
-.It Va hw.ice.#.enable_health_events
-TBW
-.It Va hw.ice.#.debug.enable_tx_fc_filter
-TBW
-.It Va hw.ice.#.debug.enable_tx_lldp_filter
-TBW
-.It Va hw.ice.#.debug.enable_health_events
-TBW
-.El
-.Sh SYSCTL PROCEDURES
+.It Va hw.ice.enable_health_events
+Set to 1 to enable firmware health event reporting across all devices.
+Enabled by default.
+.Pp
+If enabled, when the driver receives a firmware health event message, it will
+print out a description of the event to the kernel message buffer and if
+applicable, possible actions to take to remedy it.
+.It Va hw.ice.irdma
+Set to 1 to enable the RDMA client interface, required by the
+.Xr irdma 4
+driver.
+Enabled by default.
+.It Va hw.ice.rdma_max_msix
+Set the maximum number of per-device MSI-X vectors that are allocated for use
+by the
+.Xr irdma 4
+driver.
+Set to 64 by default.
+.It Va hw.ice.debug.enable_tx_fc_filter
+Set to 1 to enable the TX Flow Control filter across all devices.
+Enabled by default.
+.Pp
+If enabled, the hardware will drop any transmitted Ethertype 0x8808 control
+frames that do not originate from the hardware.
+.It Va hw.ice.debug.enable_tx_lldp_filter
+Set to 1 to enable the TX LLDP filter across all devices.
+Enabled by default.
+.Pp
+If enabled, the hardware will drop any transmitted Ethertype 0x88cc LLDP frames
+that do not originate from the hardware.
+This must be disabled in order to use LLDP daemon software such as
+.Xr lldpd 8 .
+.It Va hw.ice.debug.ice_tx_balance_en
+Set to 1 to allow the driver to use the 5-layer Tx Scheduler tree topology if
+configured by the DDP package.
+.Pp
+Enabled by default.
+.El
+.Sh SYSCTL VARIABLES
.Bl -tag -width indent
-.It Va dev.ice.#.fc
-Allows one to set the flow control value.
-A value of 0 disables flow control, 3 enables full, 1 is RX, and 2 is
-TX pause.
-.It Va dev.ice.#.advertise_speed
-Allows one to set advertised link speeds, this will then cause a link
-renegotiation.
.It Va dev.ice.#.current_speed
-This is a display of the current setting.
+This is a display of the current link speed of the interface.
+This is expected to match the speed of the media type in-use displayed by
+.Xr ifconfig 8 .
.It Va dev.ice.#.fw_version
Displays the current firmware and NVM versions of the adapter.
+This information should be submitted along with any support requests.
.It Va dev.ice.#.ddp_version
-TBW
-.It Va dev.ice.#.requested_fec
-TBW
-.It Va dev.ice.#.negotiated_fec
-TBW
-.It Va dev.ice.#.fw_lldp_agent
-TBW
-.It Va dev.ice.#.ets_min_rate
-TBW
-.It Va dev.ice.#.up2tc_map
-TBW
-.It Va dev.ice.#.pfc
-TBW
+Displays the current DDP package version downloaded to the adapter.
+This information should be submitted along with any support requests.
+.It Va dev.ice.#.pba_number
+Displays the Product Board Assembly Number.
+May be used to help identify the type of adapter in use.
+This sysctl may not exist depending on the adapter type.
+.It Va dev.ice.#.hw.mac.*
+This sysctl tree contains statistics collected by the hardware for the port.
.El
.Sh INTERRUPT STORMS
It is important to note that 100G operation can generate high
@@ -226,21 +1012,77 @@ a storm condition in the kernel.
It is suggested that this be resolved by setting
.Va hw.intr_storm_threshold
to 0.
+.Sh IOVCTL OPTIONS
+The driver supports additional optional parameters for created VFs
+(Virtual Functions) when using
+.Xr iovctl 8 :
+.Bl -tag -width indent
+.It mac-addr Pq unicast-mac
+Set the Ethernet MAC address that the VF will use.
+If unspecified, the VF will use a randomly generated MAC address and
+.Dq allow-set-mac
+will be set to true.
+.It mac-anti-spoof Pq bool
+Prevent the VF from sending Ethernet frames with a source address
+that does not match its own.
+Enabled by default.
+.It allow-set-mac Pq bool
+Allow the VF to set its own Ethernet MAC address.
+Disallowed by default.
+.It allow-promisc Pq bool
+Allow the VF to inspect all of the traffic sent to the port that it is created
+on.
+Disabled by default.
+.It num-queues Pq uint16_t
+Specify the number of queues the VF will have.
+By default, this is set to the number of MSI\-X vectors supported by the VF
+minus one.
+.It mirror-src-vsi Pq uint16_t
+Specify which VSI the VF will mirror traffic from by setting this to a value
+other than \-1.
+All traffic from that VSI will be mirrored to this VF.
+Can be used as an alternative method to mirror RDMA traffic to another
+interface than the method described in the
+.Sx RDMA Monitoring
+section.
+Not affected by the
+.Dq allow-promisc
+parameter.
+.It max-vlan-allowed Pq uint16_t
+Specify maximum number of VLAN filters that the VF can use.
+Receiving traffic on a VLAN requires a hardware filter which are a finite
+resource; this is used to prevent a VF from starving other VFs or the PF of
+filter resources.
+By default, this is set to 16.
+.It max-mac-filters Pq uint16_t
+Specify maximum number of MAC address filters that the VF can use.
+Each allowed MAC address requires a hardware filter which are a finite
+resource; this is used to prevent a VF from starving other VFs or the PF of
+filter resources.
+The VF's default mac address does not count towards this limit.
+By default, this is set to 64.
+.El
+.Pp
+An up to date list of parameters and their defaults can be found by using
+.Xr iovctl 8
+with the
+.Fl S
+option.
+.Pp
+For more information on standard and mandatory parameters, see
+.Xr iovctl.conf 5 .
.Sh SUPPORT
-For general information and support,
-go to the Intel support website at:
+For general information and support, go to the Intel support website at:
.Lk http://www.intel.com/support/ .
.Pp
If an issue is identified with this driver with a supported adapter,
email all the specific information related to the issue to
.Aq Mt freebsd@intel.com .
.Sh SEE ALSO
-.Xr arp 4 ,
.Xr iflib 4 ,
-.Xr netintro 4 ,
-.Xr ng_ether 4 ,
.Xr vlan 4 ,
-.Xr ifconfig 8
+.Xr ifconfig 8 ,
+.Xr sysctl 8
.Sh HISTORY
The
.Nm
diff --git a/share/man/man4/iflib.4 b/share/man/man4/iflib.4
index 0114263e6ca2..2040698f0087 100644
--- a/share/man/man4/iflib.4
+++ b/share/man/man4/iflib.4
@@ -1,4 +1,4 @@
-.Dd September 27, 2018
+.Dd August 20, 2025
.Dt IFLIB 4
.Os
.Sh NAME
@@ -64,6 +64,18 @@ If this is zero or not set, an RX and TX queue pair will be assigned to each
core.
When set to a non-zero value, TX queues are assigned to cores following the
last RX queue.
+.It Va simple_tx
+When set to one, iflib uses a simple transmit routine with no queuing at all.
+By default, iflib uses a highly optimized, lockless, transmit queue called
+mp_ring.
+This performs well when there are more CPU cores than NIC
+queues and prevents lock contention for transmit resources.
+Unfortunately, mp_ring incurs unneeded overheads on workloads where
+resource contention is not a problem (well behaved applications on
+systems where there are as many NIC queues as CPU cores).
+Note that when this is enabled, the tx_abdicate sysctl is no longer
+applicable and is ignored.
+Defaults to zero.
.El
.Pp
These
diff --git a/share/man/man4/ioat.4 b/share/man/man4/ioat.4
index deef466c0ae0..1c0e1dd49fd1 100644
--- a/share/man/man4/ioat.4
+++ b/share/man/man4/ioat.4
@@ -23,7 +23,7 @@
.\" SUCH DAMAGE.
.\"
.Dd May 3, 2016
-.Dt IOAT 4
+.Dt IOAT 4 amd64
.Os
.Sh NAME
.Nm I/OAT
diff --git a/share/man/man4/ip.4 b/share/man/man4/ip.4
index c52715a43380..fb5ea398c840 100644
--- a/share/man/man4/ip.4
+++ b/share/man/man4/ip.4
@@ -575,7 +575,7 @@ is the following structure:
.Bd -literal
struct ip_mreqn {
struct in_addr imr_multiaddr; /* IP multicast address of group */
- struct in_addr imr_interface; /* local IP address of interface */
+ struct in_addr imr_address; /* local IP address of interface */
int imr_ifindex; /* interface index */
}
.Ed
diff --git a/share/man/man4/iwlwifi.4 b/share/man/man4/iwlwifi.4
index 3da4e68ad805..660f6a9bf57c 100644
--- a/share/man/man4/iwlwifi.4
+++ b/share/man/man4/iwlwifi.4
@@ -27,7 +27,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 12, 2025
+.Dd August 19, 2025
.Dt IWLWIFI 4
.Os
.Sh NAME
@@ -54,7 +54,7 @@ See section
.Sx "FILES"
below for how to install the firmware.
.Pp
-It is discouraged to load the driver from
+It is not possible to load the driver from
.Xr loader 8 .
.Sh DESCRIPTION
The
@@ -302,6 +302,17 @@ driver requires firmware from
This firmware package will be installed automatically with
.Xr fwget 8
if the appropriate hardware is detected at installation or runtime.
+.Pp
+As a last resort for bootstrapping, individual firmware files can be
+manually downloaded, e.g., on a different computer and transferred using a
+.Xr umass 4
+device.
+The firmware files can be found at
+.Lk git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
+with names as requested by the driver.
+Copies should be placed into the
+.Pa /boot/firmware
+directory.
.Sh SEE ALSO
.Xr iwlwififw 4 ,
.Xr iwm 4 ,
@@ -320,7 +331,7 @@ driver first appeared in
802.11n and 802.11ac support for the 22000 and later chipsets first appeared in
.Fx 14.3 .
.Sh BUGS
-Certainly.
+.Lk https://bugs.freebsd.org/bugzilla/showdependencytree.cgi?id=iwlwifi "iwlwifi known bugs"
.Pp
While
.Nm
diff --git a/share/man/man4/iwx.4 b/share/man/man4/iwx.4
index 7cd54d61b920..295a5f318afa 100644
--- a/share/man/man4/iwx.4
+++ b/share/man/man4/iwx.4
@@ -18,7 +18,7 @@
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd May 2, 2025
-.Dt IWX 4
+.Dt IWX 4 amd64
.Os
.Sh NAME
.Nm iwx
diff --git a/share/man/man4/le.4 b/share/man/man4/le.4
index ff39361a1780..04b57633c91f 100644
--- a/share/man/man4/le.4
+++ b/share/man/man4/le.4
@@ -34,7 +34,7 @@
.\"
.\" from: Header: le.4,v 1.2 92/10/13 05:31:33 leres Exp
.\"
-.Dd June 21, 2023
+.Dd October 24, 2025
.Dt LE 4
.Os
.Sh NAME
@@ -66,7 +66,7 @@ numbers have to be specified in
The
.Nm
driver may not be present in
-.Fx 15.0
+.Fx 16.0
and later.
.Sh DESCRIPTION
The
diff --git a/share/man/man4/linprocfs.4 b/share/man/man4/linprocfs.4
index 53940d7c02b0..dcd1c642b409 100644
--- a/share/man/man4/linprocfs.4
+++ b/share/man/man4/linprocfs.4
@@ -9,7 +9,7 @@
.Nd Linux process file system
.Sh SYNOPSIS
.Bd -literal
-linproc /compat/linux/proc linprocfs rw 0 0
+linprocfs /compat/linux/proc linprocfs rw 0 0
.Ed
.Sh DESCRIPTION
The Linux process file system, or
@@ -138,7 +138,7 @@ To mount a
file system on
.Pa /compat/linux/proc :
.Pp
-.Dl "mount -t linprocfs linproc /compat/linux/proc"
+.Dl "mount -t linprocfs linprocfs /compat/linux/proc"
.Sh SEE ALSO
.Xr mount 2 ,
.Xr unmount 2 ,
diff --git a/share/man/man4/linsysfs.4 b/share/man/man4/linsysfs.4
index 12729a814085..045e1af89173 100644
--- a/share/man/man4/linsysfs.4
+++ b/share/man/man4/linsysfs.4
@@ -9,7 +9,7 @@
.Nd Linux kernel objects file system
.Sh SYNOPSIS
.Bd -literal
-linsys /compat/linux/sys linsysfs rw 0 0
+linsysfs /compat/linux/sys linsysfs rw 0 0
.Ed
.Sh DESCRIPTION
The
@@ -66,7 +66,7 @@ The PCI device hierarchy node.
.Sh EXAMPLES
The most common usage follows:
.Pp
-.Dl "mount -t linsysfs linsys /compat/linux/sys"
+.Dl "mount -t linsysfs linsysfs /compat/linux/sys"
.Pp
where
.Pa /compat/linux/sys
diff --git a/share/man/man4/linuxkpi.4 b/share/man/man4/linuxkpi.4
new file mode 100644
index 000000000000..cd4135c28d6d
--- /dev/null
+++ b/share/man/man4/linuxkpi.4
@@ -0,0 +1,42 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 The FreeBSD Foundation
+.\"
+.\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from
+.\" the FreeBSD Foundation.
+.\"
+.Dd June 13, 2025
+.Dt LINUXKPI 4
+.Os
+.Sh NAME
+.Nm linuxkpi
+.Nd Linux Kernel Programming Interface support
+.Sh DESCRIPTION
+The
+.Nm
+kernel module provides a limited KPI (kernel programming interface) to allow
+Linux kernel drivers and other Linux kernel code to be compiled on
+.Fx
+and used along the
+.Fx
+kernel with little or no modification.
+.Pp
+While historically
+.Em OpenFabrics Enterprise Distribution (Infiniband) ,
+and certain vendor drivers have used
+.Nm .
+.Em drm-kmod
+for graphics driver support
+and
+.Xr linuxkpi_wlan 4
+for wireless drivers are prominent consumers.
+.Pp
+.Nm
+is not to be confused with
+.Xr linux 4
+which provides limited Linux ABI (application binary interface) compatibility
+to allow running Linux application binaries unmodified on
+.Fx .
+.Sh SEE ALSO
+.Xr linuxkpi_wlan 4
diff --git a/share/man/man4/linuxkpi_wlan.4 b/share/man/man4/linuxkpi_wlan.4
new file mode 100644
index 000000000000..136e04c32bb7
--- /dev/null
+++ b/share/man/man4/linuxkpi_wlan.4
@@ -0,0 +1,134 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright (c) 2025 The FreeBSD Foundation
+.\"
+.\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from
+.\" the FreeBSD Foundation.
+.\"
+.Dd June 13, 2025
+.Dt LINUXKPI_WLAN 4
+.Os
+.Sh NAME
+.Nm linuxkpi_wlan
+.Nd LinuxKPI 802.11 support
+.Sh DESCRIPTION
+The
+.Nm
+kernel module provides an 802.11 compat layer to translate between Linux
+802.11 drivers and the native net8011 wireless stack.
+It currently supports
+.Em mac80211
+based drivers.
+Parts of the
+.Em cfg80211
+exist but there is no code for net80211 to drive it.
+.Pp
+.Nm
+currently supports the following
+.Em wlanmode
+operating modes:
+.Bl -tag -width monitor -compact
+.It Cm sta
+client station in an infrastructure bss (IBSS).
+.El
+.Pp
+Compat code for 802.11n (HT) and 802.11ac (VHT) is implemented but
+support may vary for different drivers due to different KPI usage.
+.Pp
+Crypto support for hardware acceleration needs to be enabled using the
+.Va compat.linuxkpi.80211.hw_crypto
+tunable.
+The following cipher suites are supported:
+.Bl -tag -width CCMP -compact
+.It Cm tkip
+Support for
+.Xr wlan_tkip 4
+has to be manually enabled using the
+.Va compat.linuxkpi.80211.tkip
+tunable.
+.It Cm ccmp
+Support for
+.Xr wlan_ccmp 4
+is available.
+.It Cm gcmp
+Support for
+.Xr wlan_gcmp 4
+is available.
+.El
+Further cipher suites will be implemented as soon as
+.Xr net80211 4
+grows support.
+While it would be possible to implement
+.Xr wlan_wep 4
+support, it was decided not to do so given
+.Em Wired Equivalent Privacy (WEP)
+has been deprecated since 2004.
+.Pp
+The list of supported drivers includes
+.Xr iwlwifi 4 ,
+.Xr rtw88 4 ,
+and
+.Xr rtw89 4 .
+.Sh SYSCTL VARIABLES AND LOADER TUNABLES
+The
+.Nm
+module supports the following
+.Xr loader 8
+tunable and read-only
+.Xr sysctl 8
+variables:
+.Bl -tag -width "compat.linuxkpi.80211.hw_crypto"
+.It Va compat.linuxkpi.80211.hw_crypto
+Turn on hardware crypto offload support.
+Default
+.Ql 0 .
+.It Va compat.linuxkpi.80211.tkip
+Turn on support for
+.Xr wlan_tkip 4
+offloading.
+Default
+.Ql 0 .
+.El
+.Pp
+The
+.Nm
+module supports the following
+.Xr sysctl 8
+variables:
+.Bl -tag -width "compat.linuxkpi.80211.IF.dump_stas"
+.It Va compat.linuxkpi.80211.debug
+If the kernel is compiled with
+.Dv IEEE80211_DEBUG
+or
+.Dv LINUXKPI_DEBUG_80211
+is manually enabled, the sysctl is a bitmask to turn on individual
+debug messages.
+See
+.Pa sys/compat/linuxkpi/common/src/linux_80211.h
+for details.
+.It Va compat.linuxkpi.80211.IF.dump_stas
+Print statistics for a given, associated
+.Xr wlan 4
+interface; typically IF would be
+.Em wlan0 .
+.El
+.Sh SEE ALSO
+.Xr iwlwifi 4 ,
+.Xr linuxkpi 4 ,
+.Xr rtw88 4 ,
+.Xr rtw89 4 ,
+.Xr wlan 4
+.Sh HISTORY
+The
+.Nm
+module first appeared in
+.Fx 13.1 .
+Support for IEEE 802.11n and 802.11ac in
+.Nm
+first appeared in
+.Fx 14.3 .
+.Sh AUTHORS
+LinuxKPI 802.11 support was developed by
+.An Bjoern A. Zeeb
+under sponsorship from the FreeBSD Foundation.
diff --git a/share/man/man4/mac_do.4 b/share/man/man4/mac_do.4
index 4c067205225c..39bfafd95474 100644
--- a/share/man/man4/mac_do.4
+++ b/share/man/man4/mac_do.4
@@ -8,7 +8,7 @@
.\" <olce@FreeBSD.org> at Kumacom SARL under sponsorship from the FreeBSD
.\" Foundation.
.\"
-.Dd December 19, 2024
+.Dd June 11, 2025
.Dt MAC_DO 4
.Os
.Sh NAME
@@ -44,7 +44,7 @@ It supports per-jail configuration.
.Pp
Currently, the
.Nm
-policy module only produces effects to processes spwaned from the
+policy module only produces effects to processes spawned from the
.Pa /usr/bin/mdo
executable, please see
.Xr mdo 1
@@ -94,8 +94,10 @@ i.e., one of the literal strings
or
.Ql gid .
.Li Aq id
-must be the numerical ID of a user or group, and is matched with the current
-process real ID of the corresponding type.
+must be the numerical ID of a user or group and is matched against the current
+process real ID of the corresponding type, and on type
+.Ql gid
+additionally against the supplementary groups.
.Ss Rule's Ao to Ac Part
The second part of a rule,
.Li Aq to ,
@@ -348,12 +350,12 @@ Here are several examples of single rules matching processes having a real user
ID of 10001:
.Bl -tag -width indent
.It Li uid=10001>uid=10002
-Allows the process to switch any of its real, effective or saved user ID to
+Allows the process to switch all of its real, effective or saved user ID to
10002, but keeping the groups it is already in, and with the same
primary/supplementary groups split.
.It Li uid=10001>uid=10002,uid=10003
Same as the first example, but also allows to switch to UID 10003 instead of
-10002.
+10002, or possibly having both in different user IDs.
.It Li uid=10001>uid=10002,gid=10002
Same as the first example, but the new primary groups must be set to 10002 and
no supplementary groups should be set.
@@ -377,8 +379,8 @@ Same as the first example, but lifting any constraints on groups, allowing the
process to become part of any groups it sees fit.
.El
.Pp
-Here are several examples of single rules matching processes having a real group
-ID of 10001:
+Here are several examples of single rules matching processes having 10001 as
+their real group IDs or in their supplementary groups:
.Bl -tag -width indent
.It Li gid=10001>uid=0
Makes 10001 a more powerful
@@ -387,7 +389,7 @@ group, allowing its members to switch to root without password.
.It Li gid=10001>gid=10002
Allows the process to enter GID 10002 as a primary group, but only if
giving up all its supplementary groups.
-.It Li security.mac.do.rules=gid=10001>gid=10002,+gid=.\&
+.It Li gid=10001>gid=10002,+gid=.\&
Same as the previous example, but allows to retain any current supplementary
groups.
.It Li gid=10001>gid=10002,!gid=.\&
diff --git a/share/man/man4/man4.aarch64/Makefile b/share/man/man4/man4.aarch64/Makefile
index 0e85aab8b770..f35558d69a33 100644
--- a/share/man/man4/man4.aarch64/Makefile
+++ b/share/man/man4/man4.aarch64/Makefile
@@ -14,12 +14,6 @@ MAN= \
# for all architectures, otherwise arm takes care of installing them.
.if !empty(MAN_ARCH) && ${MAN_ARCH} != "all"
MAN+= \
- aw_gpio.4 \
- aw_mmc.4 \
- aw_rtc.4 \
- aw_sid.4 \
- aw_spi.4 \
- aw_syscon.4 \
bcm283x_pwm.4 \
.endif
diff --git a/share/man/man4/man4.aarch64/armv8crypto.4 b/share/man/man4/man4.aarch64/armv8crypto.4
index 7b8704395daf..0f763adc5766 100644
--- a/share/man/man4/man4.aarch64/armv8crypto.4
+++ b/share/man/man4/man4.aarch64/armv8crypto.4
@@ -25,7 +25,7 @@
.\" SUCH DAMAGE.
.\"
.Dd July 29, 2020
-.Dt ARMV8CRYPTO 4
+.Dt ARMV8CRYPTO 4 aarch64
.Os
.Sh NAME
.Nm armv8crypto
diff --git a/share/man/man4/man4.aarch64/enetc.4 b/share/man/man4/man4.aarch64/enetc.4
index 33f796347f96..e7cfcb7ebe0e 100644
--- a/share/man/man4/man4.aarch64/enetc.4
+++ b/share/man/man4/man4.aarch64/enetc.4
@@ -25,7 +25,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd June 11, 2021
-.Dt ENETC 4
+.Dt ENETC 4 aarch64
.Os
.Sh NAME
.Nm enetc
diff --git a/share/man/man4/man4.aarch64/felix.4 b/share/man/man4/man4.aarch64/felix.4
index 15caef6d274f..b97f3c2168e8 100644
--- a/share/man/man4/man4.aarch64/felix.4
+++ b/share/man/man4/man4.aarch64/felix.4
@@ -26,7 +26,7 @@
.\" SUCH DAMAGE.
.\"
.Dd June 21, 2021
-.Dt FELIX 4
+.Dt FELIX 4 aarch64
.Os
.Sh NAME
.Nm felix
diff --git a/share/man/man4/man4.aarch64/rk_gpio.4 b/share/man/man4/man4.aarch64/rk_gpio.4
index b5648662cf5e..b2767dd66dce 100644
--- a/share/man/man4/man4.aarch64/rk_gpio.4
+++ b/share/man/man4/man4.aarch64/rk_gpio.4
@@ -23,7 +23,7 @@
.\" SUCH DAMAGE.
.\"
.Dd Apr 26, 2018
-.Dt RK_GPIO 4
+.Dt RK_GPIO 4 aarch64
.Os
.Sh NAME
.Nm rk_gpio
diff --git a/share/man/man4/man4.aarch64/rk_grf.4 b/share/man/man4/man4.aarch64/rk_grf.4
index 64ed468c1983..b01a93091ecb 100644
--- a/share/man/man4/man4.aarch64/rk_grf.4
+++ b/share/man/man4/man4.aarch64/rk_grf.4
@@ -23,7 +23,7 @@
.\" SUCH DAMAGE.
.\"
.Dd Apr 26, 2018
-.Dt RK_GRF 4
+.Dt RK_GRF 4 aarch64
.Os
.Sh NAME
.Nm rk_grf
diff --git a/share/man/man4/man4.aarch64/rk_grf_gpio.4 b/share/man/man4/man4.aarch64/rk_grf_gpio.4
index 6a5ebbe19e3b..2bfbebce1b76 100644
--- a/share/man/man4/man4.aarch64/rk_grf_gpio.4
+++ b/share/man/man4/man4.aarch64/rk_grf_gpio.4
@@ -4,7 +4,7 @@
.\" SPDX-License-Identifier: BSD-2-Clause
.\"
.Dd March 18, 2025
-.Dt RK_GRF_GPIO 4
+.Dt RK_GRF_GPIO 4 aarch64
.Os
.Sh NAME
.Nm rk_grf_gpio
diff --git a/share/man/man4/man4.aarch64/rk_i2c.4 b/share/man/man4/man4.aarch64/rk_i2c.4
index be1a0fab943e..363cdeac7f72 100644
--- a/share/man/man4/man4.aarch64/rk_i2c.4
+++ b/share/man/man4/man4.aarch64/rk_i2c.4
@@ -25,7 +25,7 @@
.\" SUCH DAMAGE.
.\"
.Dd June 14, 2018
-.Dt RK_I2C 4
+.Dt RK_I2C 4 aarch64
.Os
.Sh NAME
.Nm rk_i2c
diff --git a/share/man/man4/man4.aarch64/rk_pinctrl.4 b/share/man/man4/man4.aarch64/rk_pinctrl.4
index 519b3e793cd1..2be5f363498d 100644
--- a/share/man/man4/man4.aarch64/rk_pinctrl.4
+++ b/share/man/man4/man4.aarch64/rk_pinctrl.4
@@ -23,7 +23,7 @@
.\" SUCH DAMAGE.
.\"
.Dd Apr 26, 2018
-.Dt RK_PINCTRL 4
+.Dt RK_PINCTRL 4 aarch64
.Os
.Sh NAME
.Nm rk_pinctrl
diff --git a/share/man/man4/man4.arm/Makefile b/share/man/man4/man4.arm/Makefile
index 6b046a1002a2..2be255ad913f 100644
--- a/share/man/man4/man4.arm/Makefile
+++ b/share/man/man4/man4.arm/Makefile
@@ -1,11 +1,5 @@
MAN= \
ar40xx.4 \
- aw_gpio.4 \
- aw_mmc.4 \
- aw_rtc.4 \
- aw_sid.4 \
- aw_spi.4 \
- aw_syscon.4 \
bcm283x_pwm.4 \
devcfg.4 \
imx6_ahci.4 \
diff --git a/share/man/man4/man4.arm/am335x_dmtpps.4 b/share/man/man4/man4.arm/am335x_dmtpps.4
index d565c65e2cf1..bec5ff7726a0 100644
--- a/share/man/man4/man4.arm/am335x_dmtpps.4
+++ b/share/man/man4/man4.arm/am335x_dmtpps.4
@@ -24,7 +24,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd August 12, 2015
-.Dt AM335X_DMTPPS 4
+.Dt AM335X_DMTPPS 4 arm
.Os
.Sh NAME
.Nm am335x_dmtpps
diff --git a/share/man/man4/man4.arm/bcm283x_pwm.4 b/share/man/man4/man4.arm/bcm283x_pwm.4
index 1fb5a830ace7..71d7f0cc3cca 100644
--- a/share/man/man4/man4.arm/bcm283x_pwm.4
+++ b/share/man/man4/man4.arm/bcm283x_pwm.4
@@ -25,7 +25,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd September 10, 2018
-.Dt BCM283X_PWM 4
+.Dt BCM283X_PWM 4 arm
.Os
.Sh NAME
.Nm bcm283x_pwm
diff --git a/share/man/man4/man4.arm/devcfg.4 b/share/man/man4/man4.arm/devcfg.4
index ddf368a85f24..cbc205814c69 100644
--- a/share/man/man4/man4.arm/devcfg.4
+++ b/share/man/man4/man4.arm/devcfg.4
@@ -23,7 +23,7 @@
.\" SUCH DAMAGE.
.\"
.Dd February 28, 2013
-.Dt DEVCFG 4
+.Dt DEVCFG 4 arm
.Os
.Sh NAME
.Nm devcfg
diff --git a/share/man/man4/man4.arm/imx6_ahci.4 b/share/man/man4/man4.arm/imx6_ahci.4
index 9979cef50d79..50689e323db8 100644
--- a/share/man/man4/man4.arm/imx6_ahci.4
+++ b/share/man/man4/man4.arm/imx6_ahci.4
@@ -24,7 +24,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd July 7, 2018
-.Dt IMX6_AHCI 4
+.Dt IMX6_AHCI 4 arm
.Os
.Sh NAME
.Nm imx6_ahci
diff --git a/share/man/man4/man4.arm/imx6_snvs.4 b/share/man/man4/man4.arm/imx6_snvs.4
index b36c3ddd91c1..2c1db97b231c 100644
--- a/share/man/man4/man4.arm/imx6_snvs.4
+++ b/share/man/man4/man4.arm/imx6_snvs.4
@@ -24,7 +24,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd July 8, 2018
-.Dt IMX6_SNVS 4
+.Dt IMX6_SNVS 4 arm
.Os
.Sh NAME
.Nm imx6_snvs
diff --git a/share/man/man4/man4.arm/imx_spi.4 b/share/man/man4/man4.arm/imx_spi.4
index e7555ed20d94..54a5339e3276 100644
--- a/share/man/man4/man4.arm/imx_spi.4
+++ b/share/man/man4/man4.arm/imx_spi.4
@@ -24,7 +24,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd July 9, 2018
-.Dt IMX_SPI 4
+.Dt IMX_SPI 4 arm
.Os
.Sh NAME
.Nm imx_spi
diff --git a/share/man/man4/man4.arm/imx_wdog.4 b/share/man/man4/man4.arm/imx_wdog.4
index 4b993e1d066b..cb4d0e13865b 100644
--- a/share/man/man4/man4.arm/imx_wdog.4
+++ b/share/man/man4/man4.arm/imx_wdog.4
@@ -24,7 +24,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd July 7, 2018
-.Dt IMX_WDOG 4
+.Dt IMX_WDOG 4 arm
.Os
.Sh NAME
.Nm imx_wdog
diff --git a/share/man/man4/man4.arm/mge.4 b/share/man/man4/man4.arm/mge.4
index e949b36f4307..cba9327eadcf 100644
--- a/share/man/man4/man4.arm/mge.4
+++ b/share/man/man4/man4.arm/mge.4
@@ -24,7 +24,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd November 27, 2008
-.Dt MGE 4
+.Dt MGE 4 arm
.Os
.Sh NAME
.Nm mge
diff --git a/share/man/man4/man4.arm/ti_adc.4 b/share/man/man4/man4.arm/ti_adc.4
index d71547231e4c..fb59e1d3e57c 100644
--- a/share/man/man4/man4.arm/ti_adc.4
+++ b/share/man/man4/man4.arm/ti_adc.4
@@ -23,7 +23,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd June 1, 2014
-.Dt TI_ADC 4
+.Dt TI_ADC 4 arm
.Os
.Sh NAME
.Nm ti_adc
diff --git a/share/man/man4/man4.powerpc/abtn.4 b/share/man/man4/man4.powerpc/abtn.4
index 92d643d5cf32..7421d0a0b5a6 100644
--- a/share/man/man4/man4.powerpc/abtn.4
+++ b/share/man/man4/man4.powerpc/abtn.4
@@ -25,7 +25,7 @@
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd October 16, 2011
-.Dt ABTN 4
+.Dt ABTN 4 powerpc
.Os
.Sh NAME
.Nm abtn
diff --git a/share/man/man4/man4.powerpc/adb.4 b/share/man/man4/man4.powerpc/adb.4
index a781787995ab..6041484b5e33 100644
--- a/share/man/man4/man4.powerpc/adb.4
+++ b/share/man/man4/man4.powerpc/adb.4
@@ -24,7 +24,7 @@
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd December 3, 2009
-.Dt ADB 4
+.Dt ADB 4 powerpc
.Os
.Sh NAME
.Nm adb
diff --git a/share/man/man4/man4.powerpc/akbd.4 b/share/man/man4/man4.powerpc/akbd.4
index 44af08961122..3406f5a1aa76 100644
--- a/share/man/man4/man4.powerpc/akbd.4
+++ b/share/man/man4/man4.powerpc/akbd.4
@@ -24,7 +24,7 @@
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd December 3, 2009
-.Dt AKBD 4
+.Dt AKBD 4 powerpc
.Os
.Sh NAME
.Nm akbd
diff --git a/share/man/man4/man4.powerpc/ams.4 b/share/man/man4/man4.powerpc/ams.4
index 21be3c098920..d7fa922e7307 100644
--- a/share/man/man4/man4.powerpc/ams.4
+++ b/share/man/man4/man4.powerpc/ams.4
@@ -24,7 +24,7 @@
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd December 3, 2009
-.Dt AMS 4
+.Dt AMS 4 powerpc
.Os
.Sh NAME
.Nm ams
diff --git a/share/man/man4/man4.powerpc/cuda.4 b/share/man/man4/man4.powerpc/cuda.4
index 7171ebb42373..a52b9a447c9d 100644
--- a/share/man/man4/man4.powerpc/cuda.4
+++ b/share/man/man4/man4.powerpc/cuda.4
@@ -24,7 +24,7 @@
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd December 3, 2009
-.Dt CUDA 4
+.Dt CUDA 4 powerpc
.Os
.Sh NAME
.Nm cuda
diff --git a/share/man/man4/man4.powerpc/dtsec.4 b/share/man/man4/man4.powerpc/dtsec.4
index 4a60dd0b8824..f18de90c4757 100644
--- a/share/man/man4/man4.powerpc/dtsec.4
+++ b/share/man/man4/man4.powerpc/dtsec.4
@@ -24,7 +24,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd October 31, 2017
-.Dt DTSEC 4
+.Dt DTSEC 4 powerpc
.Os
.Sh NAME
.Nm dtsec
diff --git a/share/man/man4/man4.powerpc/llan.4 b/share/man/man4/man4.powerpc/llan.4
index c32ddbca6a00..b78109cac626 100644
--- a/share/man/man4/man4.powerpc/llan.4
+++ b/share/man/man4/man4.powerpc/llan.4
@@ -24,7 +24,7 @@
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd February 19, 2015
-.Dt LLAN 4
+.Dt LLAN 4 powerpc
.Os
.Sh NAME
.Nm llan
diff --git a/share/man/man4/man4.powerpc/pmu.4 b/share/man/man4/man4.powerpc/pmu.4
index 6eac20cfa6b7..4dfb31f175bd 100644
--- a/share/man/man4/man4.powerpc/pmu.4
+++ b/share/man/man4/man4.powerpc/pmu.4
@@ -24,7 +24,7 @@
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd December 6, 2008
-.Dt PMU 4
+.Dt PMU 4 powerpc
.Os
.Sh NAME
.Nm pmu
diff --git a/share/man/man4/man4.powerpc/smu.4 b/share/man/man4/man4.powerpc/smu.4
index ef2654746e62..852a08abaa9e 100644
--- a/share/man/man4/man4.powerpc/smu.4
+++ b/share/man/man4/man4.powerpc/smu.4
@@ -24,7 +24,7 @@
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd February 22, 2010
-.Dt SMU 4
+.Dt SMU 4 powerpc
.Os
.Sh NAME
.Nm smu
diff --git a/share/man/man4/man4.powerpc/snd_ai2s.4 b/share/man/man4/man4.powerpc/snd_ai2s.4
index 3880751e65c9..7a3cd9cb94af 100644
--- a/share/man/man4/man4.powerpc/snd_ai2s.4
+++ b/share/man/man4/man4.powerpc/snd_ai2s.4
@@ -24,7 +24,7 @@
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd January 20, 2009
-.Dt SND_AI2S 4
+.Dt SND_AI2S 4 powerpc
.Os
.Sh NAME
.Nm snd_ai2s
diff --git a/share/man/man4/man4.powerpc/snd_davbus.4 b/share/man/man4/man4.powerpc/snd_davbus.4
index 6958ebd4b4b5..028225accf52 100644
--- a/share/man/man4/man4.powerpc/snd_davbus.4
+++ b/share/man/man4/man4.powerpc/snd_davbus.4
@@ -24,7 +24,7 @@
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd January 20, 2009
-.Dt SND_DAVBUS 4
+.Dt SND_DAVBUS 4 powerpc
.Os
.Sh NAME
.Nm snd_davbus
diff --git a/share/man/man4/man4.powerpc/tsec.4 b/share/man/man4/man4.powerpc/tsec.4
index b3ccae648ab8..09510e329ff0 100644
--- a/share/man/man4/man4.powerpc/tsec.4
+++ b/share/man/man4/man4.powerpc/tsec.4
@@ -24,7 +24,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd February 20, 2015
-.Dt TSEC 4
+.Dt TSEC 4 powerpc
.Os
.Sh NAME
.Nm tsec
diff --git a/share/man/man4/md.4 b/share/man/man4/md.4
index 0c99d61f8392..1da26ddda037 100644
--- a/share/man/man4/md.4
+++ b/share/man/man4/md.4
@@ -5,7 +5,7 @@
.\" this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
.\" ----------------------------------------------------------------------------
.\"
-.Dd January 8, 2020
+.Dd July 16, 2025
.Dt MD 4
.Os
.Sh NAME
@@ -158,7 +158,7 @@ installation process.
The
.Nm
driver did a hostile takeover of the
-.Xr vn 4
+.Sy vn
driver in
.Fx 5.0 .
.Sh AUTHORS
diff --git a/share/man/man4/mlx.4 b/share/man/man4/mlx.4
index a5443f308088..4b9ab7070d72 100644
--- a/share/man/man4/mlx.4
+++ b/share/man/man4/mlx.4
@@ -30,7 +30,7 @@
.Os
.Sh NAME
.Nm mlx
-.Nd Mylex DAC-family Ultra-SCSI RAID driver
+.Nd Mylex DAC-family Parallel SCSI RAID driver
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
@@ -54,29 +54,29 @@ including versions relabeled by Digital/Compaq.
.Sh HARDWARE
The
.Nm
-driver supports the following Ultra-SCSI RAID controllers:
+driver supports the following Parallel SCSI RAID controllers:
.Pp
.Bl -bullet -compact
.It
-Mylex DAC960P
+Mylex DAC960P (Wide Fast SCSI-2)
.It
-Mylex DAC960PD / DEC KZPSC (Fast Wide)
+Mylex DAC960PD / DEC KZPSC (Wide Fast SCSI-2)
.It
-Mylex DAC960PDU
+Mylex DAC960PDU (Ultra SCSI-3)
.It
-Mylex DAC960PL
+Mylex DAC960PL (Wide Fast SCSI-2)
.It
-Mylex DAC960PJ
+Mylex DAC960PJ (Wide Ultra SCSI-3)
.It
-Mylex DAC960PG
+Mylex DAC960PG (Wide Ultra SCSI-3)
.It
-Mylex DAC960PU / DEC PZPAC (Ultra Wide)
+Mylex DAC960PU / DEC PZPAC (Wide Ultra SCSI-3)
.It
-Mylex AcceleRAID 150 (DAC960PRL)
+Mylex AcceleRAID 150 (DAC960PRL) (Wide Ultra2 SCSI)
.It
-Mylex AcceleRAID 250 (DAC960PTL1)
+Mylex AcceleRAID 250 (DAC960PTL1) (Wide Ultra2 SCSI)
.It
-Mylex eXtremeRAID 1100 (DAC1164P)
+Mylex eXtremeRAID 1100 (DAC1164P) (Wide Ultra2 SCSI)
.It
RAIDarray 230 controllers, aka the Ultra-SCSI DEC KZPAC-AA (1-ch, 4MB
cache), KZPAC-CA (3-ch, 4MB), KZPAC-CB (3-ch, 8MB cache)
diff --git a/share/man/man4/mmcsd.4 b/share/man/man4/mmcsd.4
index 7466bc546b91..07d7e963b596 100644
--- a/share/man/man4/mmcsd.4
+++ b/share/man/man4/mmcsd.4
@@ -1,4 +1,6 @@
.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2007 M. Warner Losh <imp@FreeBSD.org>
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -21,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd June 10, 2021
+.Dd October 2, 2025
.Dt MMCSD 4
.Os
.Sh NAME
@@ -29,7 +31,7 @@
.Nd MMC and SD memory card driver
.Sh SYNOPSIS
.Cd device mmcsd
-.Sh DESCRIPTION
+.Sh HARDWARE
The
.Nm
driver implements direct access block device for MMC and SD memory cards.
@@ -42,3 +44,8 @@ driver implements direct access block device for MMC and SD memory cards.
.Rs
.%T "The MultiMediaCard System Specification"
.Re
+.Sh HISTORY
+The
+.Nm
+driver appeared in
+.Fx 7.0 .
diff --git a/share/man/man4/mpr.4 b/share/man/man4/mpr.4
index e114ecfd077b..cce21113e5c2 100644
--- a/share/man/man4/mpr.4
+++ b/share/man/man4/mpr.4
@@ -65,9 +65,9 @@ Fusion-MPT 3/3.5 IT/IR
.Tn SAS/PCIe
controllers.
.Sh HARDWARE
-These controllers are supported by the
+The
.Nm
-driver:
+driver supports the following SATA/SAS/NVMe RAID controllers:
.Pp
.Bl -bullet -compact
.It
diff --git a/share/man/man4/mrsas.4 b/share/man/man4/mrsas.4
index 36e9a7b5c7e7..5f7a0e6e45ea 100644
--- a/share/man/man4/mrsas.4
+++ b/share/man/man4/mrsas.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-3-Clause
+.\"
.\" Copyright (c) 2014 LSI Corp
.\" All rights reserved.
.\" Author: Kashyap Desai
@@ -32,43 +35,42 @@
.\" are those of the authors and should not be interpreted as representing
.\" official policies, either expressed or implied, of the FreeBSD Project.
.\"
-.Dd February 4, 2021
+.Dd August 22, 2025
.Dt MRSAS 4
.Os
.Sh NAME
.Nm mrsas
-.Nd "LSI MegaRAID 6Gb/s and 12Gb/s SAS+SATA RAID controller driver"
+.Nd Broadcom/LSI MegaRAID 6/12Gb/s SAS+SATA RAID controller driver
.Sh SYNOPSIS
-To compile this driver into the kernel,
-place the following lines in your
-kernel configuration file:
-.Bd -ragged -offset indent
.Cd "device pci"
.Cd "device mrsas"
-.Ed
.Pp
-Alternatively, to load the driver as a
-module at boot time, place the following line in
+In
.Xr loader.conf 5 :
-.Bd -literal -offset indent
-mrsas_load="YES"
-.Ed
+.Cd mrsas_load="YES"
+.Pp
+In
+.Xr sysctl.conf 5 :
+.Cd dev.mrsas.X.disable_ocr
+.Cd dev.mrsas.X.fw_outstanding
+.Cd dev.mrsas.X.mrsas_fw_fault_check_delay
+.Cd dev.mrsas.X.mrsas_io_timeout
+.Cd hw.mrsas.X.debug_level
.Sh DESCRIPTION
The
.Nm
-driver will detect LSI's next generation (6Gb/s and 12Gb/s) PCI Express
-SAS/SATA RAID controllers.
-See the
-.Nm HARDWARE
-section for the supported devices list.
-A disk (virtual disk/physical disk) attached to the
+driver will detect Broadcom/LSI's 6Gb/s and 12Gb/s
+PCI Express SAS/SATA/NVMe RAID controllers.
+A disk
+.Pq virtual disk/physical disk
+attached to the
.Nm
driver will be visible to the user through
.Xr camcontrol 8
as
.Pa /dev/da?
device nodes.
-A simple management interface is also provided on a per-controller basis via the
+A simple management interface is also provided per-controller via the
.Pa /dev/mrsas?
device node.
.Pp
@@ -77,8 +79,7 @@ The
name is derived from the phrase "MegaRAID SAS HBA", which is
substantially different than the old "MegaRAID" Driver
.Xr mfi 4
-which does not connect targets
-to the
+which does not connect targets to the
.Xr cam 4
layer and thus requires a new driver which attaches targets to the
.Xr cam 4
@@ -91,8 +92,8 @@ but both the
.Xr mfi 4
and
.Nm
-drivers can detect and manage the LSI MegaRAID SAS 2208/2308/3008/3108 series of
-controllers.
+drivers can detect and manage the
+Broadcom/LSI MegaRAID SAS 2208/2308/3008/3108 series of controllers.
.Pp
The
.Xr device.hints 5
@@ -103,7 +104,7 @@ By default, the
.Xr mfi 4
driver will detect these controllers.
See the
-.Nm PRIORITY
+.Sx PRIORITY
section to know more about driver priority for MR-Fusion devices.
.Pp
.Nm
@@ -124,46 +125,32 @@ rather then JBOD virtual mode.
.Sh HARDWARE
The
.Nm
-driver supports the following hardware:
-.Pp
-[ Thunderbolt 6Gb/s MR controller ]
-.Bl -bullet -compact
-.It
-LSI MegaRAID SAS 9265
-.It
-LSI MegaRAID SAS 9266
-.It
-LSI MegaRAID SAS 9267
-.It
-LSI MegaRAID SAS 9270
-.It
-LSI MegaRAID SAS 9271
-.It
-LSI MegaRAID SAS 9272
-.It
-LSI MegaRAID SAS 9285
-.It
-LSI MegaRAID SAS 9286
-.It
-DELL PERC H810
-.It
-DELL PERC H710/P
-.El
+driver supports the following LSI/Broadcom SATA/SAS RAID controllers:
.Pp
-[ Invader/Fury 12Gb/s MR controller ]
-.Bl -bullet -compact
-.It
-LSI MegaRAID SAS 9380
-.It
-LSI MegaRAID SAS 9361
-.It
-LSI MegaRAID SAS 9341
-.It
-DELL PERC H830
-.It
-DELL PERC H730/P
-.It
-DELL PERC H330
+.Bl -column -compact "LSI MegaRAID SAS 9380" "Invader/Fury" "12Gb/s"
+.It Controller Ta Chip Ta Speed
+.It Broadcom SAS3916 Ta Aero Ta 12Gb/s
+.It Broadcom SAS3908 Ta Aero Ta 12Gb/s
+.It LSI MegaRAID SAS 9380 Ta Invader/Fury Ta 12Gb/s
+.It LSI MegaRAID SAS 9361 Ta Invader/Fury Ta 12Gb/s
+.It LSI MegaRAID SAS 9341 Ta Invader/Fury Ta 12Gb/s
+.It LSI MegaRAID SAS 9286 Ta Thunderbolt Ta 6Gb/s
+.It LSI MegaRAID SAS 9285 Ta Thunderbolt Ta 6Gb/s
+.It LSI MegaRAID SAS 9272 Ta Thunderbolt Ta 6Gb/s
+.It LSI MegaRAID SAS 9271 Ta Thunderbolt Ta 6Gb/s
+.It LSI MegaRAID SAS 9270 Ta Thunderbolt Ta 6Gb/s
+.It LSI MegaRAID SAS 9267 Ta Thunderbolt Ta 6Gb/s
+.It LSI MegaRAID SAS 9266 Ta Thunderbolt Ta 6Gb/s
+.It LSI MegaRAID SAS 9265 Ta Thunderbolt Ta 6Gb/s
+.It LSI SAS 3108 Ta Ta 12Gb/s
+.It LSI SAS 3008 Ta Ta 12Gb/s
+.It LSI SAS 2308 Ta Ta 6Gb/s
+.It LSI SAS 2208 Ta Ta 6Gb/s
+.It DELL PERC H830 Ta Invader/Fury Ta 12Gb/s
+.It DELL PERC H810 Ta Thunderbolt Ta 6Gb/s
+.It DELL PERC H730/P Ta Invader/Fury Ta 12Gb/s
+.It DELL PERC H710/P Ta Thunderbolt Ta 6Gb/s
+.It DELL PERC H330 Ta Invader/Fury Ta 12Gb/s
.El
.Sh CONFIGURATION
To disable Online Controller Reset(OCR) for a specific
@@ -171,9 +158,8 @@ To disable Online Controller Reset(OCR) for a specific
driver instance, set the
following tunable value in
.Xr loader.conf 5 :
-.Bd -literal -offset indent
-dev.mrsas.X.disable_ocr=1
-.Ed
+.Pp
+.Dl Va dev.mrsas.X.disable_ocr=1
.Pp
where X is the adapter number.
.Pp
@@ -181,9 +167,8 @@ To change the I/O timeout value for a specific
.Nm
driver instance, set the following tunable value in
.Xr loader.conf 5 :
-.Bd -literal -offset indent
-dev.mrsas.X.mrsas_io_timeout=NNNNNN
-.Ed
+.Pp
+.Dl Va dev.mrsas.X.mrsas_io_timeout=NNNNNN
.Pp
where NNNNNN is the timeout value in milli-seconds.
.Pp
@@ -191,9 +176,8 @@ To change the firmware fault check timer value for a specific
.Nm
driver instance, set the following tunable value in
.Xr loader.conf 5 :
-.Bd -literal -offset indent
-dev.mrsas.X.mrsas_fw_fault_check_delay=NN
-.Ed
+.Pp
+.Dl Va dev.mrsas.X.mrsas_fw_fault_check_delay=NN
.Pp
where NN is the fault check delay value in seconds.
.Pp
@@ -248,7 +232,8 @@ or
subsystem for selection of MR-Fusion cards.
With the above design in place, the
.Xr mfi 4
-driver will attach to a MR-Fusion card given that it has a higher priority than
+driver will attach to a MR-Fusion card
+given that it has a higher priority than
.Nm .
.Pp
Using
@@ -267,45 +252,48 @@ At boot time, the
.Xr mfi 4
driver will get priority to detect MR-Fusion controllers by default.
Before
-changing this default driver selection policy, LSI advises users to understand
-how the driver selection policy works.
+changing this default driver selection policy,
+LSI advises users to understand how the driver selection policy works.
LSI's policy is to provide priority to
the
.Xr mfi 4
-driver to detect MR-Fusion cards, but allow for the ability to choose the
+driver to detect MR-Fusion cards,
+but allow for the ability to choose the
.Nm
driver to detect MR-Fusion cards.
.Pp
-LSI recommends setting hw.mfi.mrsas_enable="0" for customers who are using the
-older
+LSI recommends setting
+.Va hw.mfi.mrsas_enable="0"
+for customers who are using the older
.Xr mfi 4
driver and do not want to switch to
.Nm .
-For those customers who are using a MR-Fusion controller for the first time, LSI
-recommends using the
+For those using a MR-Fusion controller for the first time,
+LSI recommends using the
.Nm
-driver and setting hw.mfi.mrsas_enable="1".
+driver and setting
+.Va hw.mfi.mrsas_enable="1".
.Pp
-Changing the default behavior is well tested under most conditions, but
-unexpected behavior may pop up if more complex and unrealistic operations are
-executed by switching between the
+Changing the default behavior is well tested under most conditions,
+but unexpected behavior may pop up
+if more complex and unrealistic operations are executed
+by switching between the
.Xr mfi 4
and
.Nm
drivers for MR-Fusion.
Switching drivers is designed to happen only one time.
-Although multiple
-switching is possible, it is not recommended.
+Although multiple switching is possible, it is not recommended.
The user should decide from
-.Nm Start of Day
+.Sy boot
which driver they want to use for the MR-Fusion card.
.Pp
The user may see different device names when switching from
.Xr mfi 4
to
.Nm .
-This behavior is
-.Nm Functions As Designed
+This behavior
+.Sy works as intended
and the user needs to change the
.Xr fstab 5
entry manually if they are doing any experiments with
@@ -314,7 +302,7 @@ and
.Nm
interoperability.
.Sh FILES
-.Bl -tag -width ".Pa /dev/mrsas?" -compact
+.Bl -tag -width "/dev/mrsas?" -compact
.It Pa /dev/da?
array/logical disk interface
.It Pa /dev/mrsas?
@@ -337,7 +325,8 @@ driver first appeared in
is the old
.Fx
driver which started with support for Gen-1 Controllers and
-was extended to support up to MR-Fusion (Device ID = 0x005B, 0x005D, 0x005F).
+was extended to support up to MR-Fusion
+.Pq Device ID = 0x005B, 0x005D, 0x005F .
.Ed
.Bd -ragged
.Cd "mrsas Driver:"
@@ -348,12 +337,12 @@ The SAS+SATA RAID controller with device id 0x005b is referred to as
the Thunderbolt controller throughout this man page.
.Ed
.Bd -ragged
-.Nm cam aware HBA drivers:
+.Sy cam aware HBA drivers:
.Fx
has a
.Xr cam 4
-layer which attaches storage devices and provides a common access mechanism to
-storage controllers and attached devices.
+layer which attaches storage devices and provides a
+common access mechanism to storage controllers and attached devices.
The
.Nm
driver is
@@ -368,13 +357,13 @@ driver does not understand the
.Xr cam 4
layer and it directly associates storage disks to the block layer.
.Pp
-.Nm Thunderbolt Controller:
+.Sy Thunderbolt Controller:
This is the 6Gb/s MegaRAID HBA card which has device id 0x005B.
.Pp
-.Nm Invader Controller:
+.Sy Invader Controller:
This is 12Gb/s MegaRAID HBA card which has device id 0x005D.
.Pp
-.Nm Fury Controller:
+.Sy Fury Controller:
This is the 12Gb/s MegaRAID HBA card which has device id 0x005F.
.Ed
.Sh AUTHORS
@@ -382,12 +371,7 @@ The
.Nm
driver and this manual page were written by
.An Kashyap Desai Aq Mt Kashyap.Desai@lsi.com .
-.Sh TODO
-The driver does not support alias for device name (it is required when the user
-switches between two drivers and does not want to edit
-.Pa /etc/fstab
-manually).
-.Pp
+.Sh CAVEATS
The
.Nm
driver exposes devices as
@@ -398,8 +382,7 @@ exposes devices as
.Pa /dev/mfid? .
.Pp
.Nm
-does not support the Linux Emulator interface.
-.Pp
-.Nm
-will not work with
-.Xr mfiutil 8 .
+does not support the Linux Emulator Interface,
+.Xr mfiutil 8 ,
+or device name aliases for switching drivers without editing
+.Xr fstab 5 .
diff --git a/share/man/man4/mtw.4 b/share/man/man4/mtw.4
index 17722be73203..6aa59d848d36 100644
--- a/share/man/man4/mtw.4
+++ b/share/man/man4/mtw.4
@@ -24,23 +24,41 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd Feb 03, 2025
+.Dd May 3, 2025
.Dt MTW 4
.Os
.Sh NAME
-.Nm if_mtw
-.Nd "Mediatek MT7601U"
-.Ed
+.Nm mtw
+.Nd MediaTek MT7601U USB IEEE 802.11n wireless network driver
+.Sh SYNOPSIS
+.Cd device usb
+.Cd device mtw
+.Cd device wlan
+.Pp
+In
+.Xr rc.conf 5 :
+.Cd kld_list="if_mtw"
.Sh DESCRIPTION
-This module provides support for Mediatek MT7601U with the firmware from net/wifi-firmware-mtw-kmod
-
+This module provides support for
+MediaTek MT7601U USB wireless network adapters.
+If the appropriate hardware is detected,
+the driver will be automatically loaded with
+.Xr devmatch 8 .
+If driver autoloading is explicitly disabled, enable the module in
+.Xr rc.conf 5 .
+The
+.Nm
+driver can be configured at runtime with
+.Xr ifconfig 8
+or at boot with
+.Xr rc.conf 5 .
.Sh HARDWARE
The
.Nm
-driver supports Mediatek MT7601U
-based USB wireless network adapters including (but not all of them tested):
+driver supports MediaTek MT7601U based USB wireless network adapters
+including (but not all of them tested):
.Pp
-.Bl -column -compact
+.Bl -bullet -compact
.It
ASUS USB-N10 v2
.It
@@ -58,17 +76,43 @@ TP-LINK TL-WN727N v4 (tested working)
.It
Yealink WF40
.El
+.Sh FILES
+The
+.Nm
+driver requires firmware from
+.Pa ports/net/wifi-firmware-mt7601u-kmod .
+This firmware package will be installed automatically with
+.Xr fwget 8
+if the appropriate hardware is detected at installation or runtime.
.Sh SEE ALSO
-.Xr usb 4
-.Sh BUGS
+.Xr usb 4 ,
+.Xr wlan 4 ,
+.Xr networking 7 ,
+.Xr fwget 8 ,
+.Xr wpa_supplicant 8
+.Sh HISTORY
The
.Nm
-only works in station mode and monitor mode. The firmware does not always reinitialize when reloading the module, or when rebooting, without first unplugging the device.
-.Sh History
-The mtw driver first appeared in OpenBSD 7.1. The mtw driver was ported to FreeBSD in FreeBSD 15.0.
+driver first appeared in
+.Ox 7.1
+and
+.Fx 15.0 .
.Sh AUTHORS
.An -nosplit
-The mtw driver was written by
+The
+.Nm
+driver was written by
.An James Hastings Aq Mt hastings@openbsd.org
-ported to FreeBSD by
-.An Jesper Schmitz Mouridsen Aq Mt jsm@FreeBSD.org
+and ported to
+.Fx
+by
+.An Jesper Schmitz Mouridsen Aq Mt jsm@FreeBSD.org .
+.Sh BUGS
+.Nm
+only works in
+.Cm station
+mode and
+.Cm monitor
+mode.
+The firmware does not always reinitialize when reloading the module,
+or when rebooting, without first unplugging the device.
diff --git a/share/man/man4/nda.4 b/share/man/man4/nda.4
index c4fa157af851..e45b2905462e 100644
--- a/share/man/man4/nda.4
+++ b/share/man/man4/nda.4
@@ -1,4 +1,6 @@
.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2017 Netflix, Inc.
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -23,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd June 6, 2020
+.Dd October 2, 2025
.Dt NDA 4
.Os
.Sh NAME
@@ -39,6 +41,14 @@ driver provides support for direct access devices, implementing the
.Tn NVMe
command protocol, that are attached to the system through a host adapter
supported by the CAM subsystem.
+.Sh HARDWARE
+The
+.Nm
+driver supports NVMe
+.Pq Non-Volatile Memory Express
+storage devices connected via PCIe or over NVMF
+.Pq NVMe over Fabric
+via the CAM subsystem.
.Sh SYSCTL VARIABLES
The following variables are available as both
.Xr sysctl 8
diff --git a/share/man/man4/ng_patch.4 b/share/man/man4/ng_patch.4
index 7a8543fd7dd8..9c0d7a8ee512 100644
--- a/share/man/man4/ng_patch.4
+++ b/share/man/man4/ng_patch.4
@@ -80,7 +80,7 @@ Sets the data link type on the
.Va in
hook (to help calculate relative offset). Currently, supported types are
.Cm DLT_RAW
-(raw IP datagrams , no offset applied, the default) and
+(raw IP datagrams, no offset applied, the default) and
.Cm DLT_EN10MB
(Ethernet). DLT_ definitions can be found in
.In net/bpf.h .
@@ -135,6 +135,17 @@ corresponding checksum before transmitting packet on output interface.
The
.Nm
node does not do any checksum correction by itself.
+.Pp
+The
+.Va offset
+value for the
+.Vt ng_patch_op
+structure is calculated from zero by default (the first byte of
+packet headers).
+If
+.Va relative_offset
+is enabled (set to 1) during configuration, the operation will have an
+additional amount added to the offset based on the data link type.
.It Dv NGM_PATCH_GETCONFIG Pq Ic getconfig
This control message returns the current set of modify operations,
in the form of a
diff --git a/share/man/man4/nvd.4 b/share/man/man4/nvd.4
index d5145939e409..1861fabc91d0 100644
--- a/share/man/man4/nvd.4
+++ b/share/man/man4/nvd.4
@@ -31,7 +31,7 @@
.\"
.\" Author: Jim Harris <jimharris@FreeBSD.org>
.\"
-.Dd May 18, 2019
+.Dd October 2, 2025
.Dt NVD 4
.Os
.Sh NAME
@@ -72,6 +72,10 @@ Note that device nodes from the
driver are not
.Xr GEOM 4
disks and cannot be partitioned.
+.Sh HARDWARE
+The
+.Nm
+driver supports NVMe storage devices using NVMe namespaces.
.Sh CONFIGURATION
The
.Nm
diff --git a/share/man/man4/nvdimm.4 b/share/man/man4/nvdimm.4
index 5b7dbe435c46..2bec51b42d72 100644
--- a/share/man/man4/nvdimm.4
+++ b/share/man/man4/nvdimm.4
@@ -26,7 +26,7 @@
.\" SUCH DAMAGE.
.\"
.Dd September 5, 2019
-.Dt NVDIMM 4
+.Dt NVDIMM 4 amd64
.Os
.Sh NAME
.Nm nvdimm
diff --git a/share/man/man4/pci.4 b/share/man/man4/pci.4
index 91fbb557f644..b99747969035 100644
--- a/share/man/man4/pci.4
+++ b/share/man/man4/pci.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 2, 2025
+.Dd August 31, 2025
.Dt PCI 4
.Os
.Sh NAME
@@ -235,6 +235,17 @@ revision ID.
Driver name.
.It pd_unit
Driver unit number.
+.It pd_numa_domain
+Driver NUMA domain.
+.It pc_reported_len
+Length of the valid portion of the encompassing
+.Vt pci_conf
+structure.
+This should always be equivalent to the offset of the
+.Va pc_spare
+member.
+.It pc_spare
+Reserved for future use.
.El
.It offset
The offset is passed in by the user to tell the kernel where it should
diff --git a/share/man/man4/pf.4 b/share/man/man4/pf.4
index 9ab46558a2d6..03a4ba2bbe7f 100644
--- a/share/man/man4/pf.4
+++ b/share/man/man4/pf.4
@@ -26,7 +26,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd September 6, 2024
+.Dd July 2, 2025
.Dt PF 4
.Os
.Sh NAME
@@ -35,6 +35,23 @@
.Sh SYNOPSIS
.Cd "device pf"
.Cd "options PF_DEFAULT_TO_DROP"
+.Pp
+In
+.Xr rc.conf 5 :
+.Cd pf_enable="YES"
+.Pp
+In
+.Xr loader.conf 5 :
+.Cd net.pf.states_hashsize
+.Cd net.pf.source_nodes_hashsize
+.Cd net.pf.rule_tag_hashsize
+.Cd net.pf.udpendpoint_hashsize
+.Cd net.pf.default_to_drop
+.Pp
+In
+.Xr sysctl.conf 5 :
+.Cd net.pf.request_maxcount
+.Cd net.pf.filter_local
.Sh DESCRIPTION
Packet filtering takes place in the kernel.
A pseudo-device,
@@ -74,10 +91,28 @@ separated by
characters, similar to how file system hierarchies are laid out.
The final component of the anchor path is the anchor under which
operations will be performed.
-.Sh SYSCTL VARIABLES AND LOADER TUNABLES
-The following
+.Sh SYSCTL VARIABLES
+The following variables can be entered at the
+.Xr loader 8
+prompt, set in
+.Xr loader.conf 5 ,
+.Xr sysctl.conf 5 ,
+or changed at runtime with
+.Xr sysctl 8 :
+.Bl -tag -width indent
+.It Va net.pf.filter_local
+This tells
+.Nm
+to also filter on the loopback output hook.
+This is typically used to allow redirect rules to adjust the source address.
+.It Va net.pf.request_maxcount
+The maximum number of items in a single ioctl call.
+.El
+.Sh LOADER TUNABLES
+The following tunables can be entered at the
.Xr loader 8
-tunables are available.
+prompt, or set in
+.Xr loader.conf 5 :
.Bl -tag -width indent
.It Va net.pf.states_hashsize
Size of hash table that stores states.
@@ -104,11 +139,6 @@ to also filter on the loopback output hook.
This is typically used to allow redirect rules to adjust the source address.
.It Va net.pf.request_maxcount
The maximum number of items in a single ioctl call.
-.It Va net.pf.rdr_srcport_rewrite_tries
-The maximum number of times to try and find a free source port when handling
-redirects.
-Such rules are typically applied to external traffic, so an exhaustive search
-may be too expensive.
.El
.Pp
Read only
@@ -1084,7 +1114,7 @@ will be set to the length of the buffer actually used.
.It Dv DIOCCLRSRCNODES
Clear the tree of source tracking nodes.
.It Dv DIOCIGETIFACES Fa "struct pfioc_iface *io"
-Get the list of interfaces and interface drivers known to
+Get the list of interfaces and interface groups known to
.Nm .
All the ioctls that manipulate interfaces
use the same structure described below:
@@ -1101,7 +1131,7 @@ struct pfioc_iface {
.Pp
If not empty,
.Va pfiio_name
-can be used to restrict the search to a specific interface or driver.
+can be used to restrict the search to a specific interface or group.
.Va pfiio_buffer[pfiio_size]
is the user-supplied buffer for returning the data.
On entry,
diff --git a/share/man/man4/pfsync.4 b/share/man/man4/pfsync.4
index 472a1c05ec5a..c12bad74831f 100644
--- a/share/man/man4/pfsync.4
+++ b/share/man/man4/pfsync.4
@@ -32,6 +32,14 @@
.Nd packet filter state table synchronisation interface
.Sh SYNOPSIS
.Cd "device pfsync"
+.Pp
+In
+.Xr loader.conf 5 :
+.Cd net.pfsync.pfsync_buckets
+.Pp
+In
+.Xr sysctl.conf 5 :
+.Cd net.pfsync.carp_demotion_factor
.Sh DESCRIPTION
The
.Nm
@@ -154,13 +162,17 @@ FreeBSD releases 13.2 and older.
Compatibility with FreeBSD 13.1 has been verified.
.It Cm 1400
FreeBSD release 14.0.
+.It Cm 1500
+FreeBSD release 15.0.
.El
-.Pp
-.Nm
-has the following
-.Xr sysctl 8
-tunables:
-.Bl -tag -width ".Va net.pfsync"
+.Sh SYSCTL VARIABLES
+The following variables can be entered at the
+.Xr loader 8
+prompt, set in
+.Xr loader.conf 5 ,
+or changed at runtime with
+.Xr sysctl 8 :
+.Bl -tag -width indent
.It Va net.pfsync.carp_demotion_factor
Value added to
.Va net.inet.carp.demotion
@@ -171,6 +183,14 @@ See
.Xr carp 4
for more information.
Default value is 240.
+.El
+.Sh LOADER TUNABLES
+The following tunable may be set in
+.Xr loader.conf 5
+or at the
+.Xr loader 8
+prompt:
+.Bl -tag -width indent
.It Va net.pfsync.pfsync_buckets
The number of
.Nm
diff --git a/share/man/man4/puc.4 b/share/man/man4/puc.4
index 6fde07548e18..624c215027af 100644
--- a/share/man/man4/puc.4
+++ b/share/man/man4/puc.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2002 John Hay.
.\" All rights reserved.
.\"
@@ -22,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 5, 2025
+.Dd June 11, 2025
.Dt PUC 4
.Os
.Sh NAME
@@ -44,159 +47,112 @@ PCI multi-port serial and parallel adapters to the
and
.Xr ppc 4
driver.
-.Pp
-The list of supported devices is in
-.Pa sys/dev/puc/pucdata.c .
-Support for new cards should be added there.
.Sh HARDWARE
The
.Nm
driver supports the following
-PCI multi-port serial and parallel adapters:
+PCI/PCIe multi-port serial and parallel adapters:
.Pp
.Bl -bullet -compact
.It
-Sunix SUN1889
-.It
-HP Diva Serial [GSP] Multiport UART:
-.Bl -dash -compact
+Advantech 2-port PCI PCI-1602/1603 Rev A/B1
.It
-Tosca Console
-.It
-Tosca Secondary
-.It
-Maestro SP2
+Applied Micro Circuits PCI 8 Port UART
.It
-Superdome Console
+Avlab Technology PCI IO 2S
.It
-Keystone SP2
+Avlab Low Profile PCI 4 Serial
.It
-Everest SP2
-.El
+Boca Research PCI Turbo Serial 658/654
.It
-VScom:
+Brainboxes:
.Bl -dash -compact
.It
-PCI-200, PCI-400, and PCI-800
-.El
+Instashield PCIe IX-400, IX-200, IX-100
.It
-Boca Research Turbo Serial:
-.Bl -dash -compact
+Instashield PCI IS-400, IS-200
.It
-654 and 658
-.El
+PX Series PCIe RS232/RS422/RS485/LPT
.It
-Dolphin Peripherals:
-.Bl -dash -compact
+UC Series Universal PCI RS232/RS422/RS485/LPT
.It
-4014 and 4035
+UP Series PCI Dual RS232
.El
.It
-Applied Micro Circuits 8 Port UART
-.It
-Digi Neo:
-.Bl -dash -compact
+Comtrol RocketPort 550 PCI 16/8/4 port
.It
-PCI 4 and 8 Port
+Decision Computer PCCOM PCI 8/4/2 port
.It
-PCIe 4 and 8 Port (with and without RJ45)
-.El
+Digi Neo PCIe 4 and 8 Port (with and without RJ45)
.It
-Comtrol RocketPort:
-.Bl -dash -compact
-550/4 Normal and RJ45
+Digi Neo PCI 4 and 8 Port
.It
-550/8 Normal, RJ11 and Octa
+Dolphin Peripherals PCI 4035/4014
.It
-550/16
-.El
-.It
-IBM SurePOS 300 Series (481033H) serial ports
-.It
-SIIG Cyber Series of UART and parallel port boars:
+Exar:
.Bl -dash -compact
.It
-Cyber 2S and 2SP1 PCI 16550
-.It
-Cyber 4 PCI 16550
-.It
-Cyber 4S PCI 16C650 (20x family)
-.It
-Cyber I/O PCI (10x family and 20x family):
+XR17C/D152
.It
-Cyber Parallel Dual PCI (10x family and 20x family):
+XR17C154
.It
-Cyber Serial Dual PCI (10x family and 20x family):
+XR17C158
.It
-Cyber 2S1P PCI (10x family and 20x family):
+XR17V258IV
.It
-Cyber 4S PCI (10x family and 20x family):
+XR17V352
.It
-PS8000 8S PCI 16C650 (20x family)
+XR17V354
.It
-Quartet Serial 850
+XR17V358
.El
.It
-Brainboxes:
-.Bl -dash -compact
+Feasso PCI FPP-02 2S1P
.It
-PX-101
+HP Diva Serial [GSP] Multiport UART:
+.Bl -dash -compact
.It
-PX-246, PX-257, PX-260, PX-279
+Tosca Console
.It
-PX-310, PX-313, PX-320, PX-346, PX-368
+Tosca Secondary
.It
-PX-420, PX-431, PX-475
+Maestro SP2
.It
-PX-803, PX-820, PX-831, PX-846, PX-857
+Superdome Console
.It
-UC-101
+Keystone SP2
.It
-UC-203, UC-253, UC-257, UC-260, UC-268, UC-279
+Everest SP2
+.El
.It
-UC-302, UC-310, UC-313, UC-346, UC-357, UC-368
+I-O DATA RSA-PCI2/R
.It
-UC-414, UC-420, UC-431, UC-475
+IBM SurePOS 300 Series (481033H) serial ports
.It
-UC-607
+IC Book Labs:
+.Bl -dash -compact
.It
-UC-836
+Dreadnought x16 Pro/Lite
.It
-UP-189
+Ironclad x8 Pro
.It
-UP-200
+Gunboat x4 Pro/Lite/Low Profile
.It
-UP-869, UP-880
+Gunboat x2 Low Profile
.El
.It
-Intashield:
-.Bl -dash -compact
-.It
-IS-200, IS-400
-.It
-IX-100, IX-200, IX-400
-.El
+Kuroutoshikou SERIAL4P-LPPCI2
.It
-Quatech:
+Lava Computers:
.Bl -dash -compact
.It
-DSC-100
-.It
-DSC-200/300
-.It
-DSCLP-100
-.It
-DSCLP-200/300
-.It
-ESC-100D
+Dual Serial PCI
.It
-ESC-100M
+Quattro-PCIe
.It
-QSC-100
-.It
-QSC-200/300
+Quattro-PCI
.It
-QSCLP-100
+Octopus-550 PCI
.El
.It
Moxa Technologies:
@@ -216,7 +172,7 @@ Smartio CP-104EL/PCIe
.It
Smartio CP-104EL-A/PCIe
.It
-CP-112UL
+CP-112UL PCI
.It
Industio CP-114
.It
@@ -233,47 +189,13 @@ CP-168EL/PCIe
Smartio CP-168EL-A/PCIe
.El
.It
-Exar:
-.Bl -dash -compact
-.It
-XR17C/D152
+NetMos NM9815 Dual 1284 Printer port PCI
.It
-XR17C154
+NetMos NM9835 2/1 port UART + 1284 Printer PCI
.It
-XR17C158
+NetMos NM9845 4/6 port UART + 1284 Printer PCI
.It
-XR17V258IV
-.It
-XR17V352
-.It
-XR17V354
-.It
-XR17V358
-.El
-.It
-Advantech
-.Bl -dash -compact
-.It
-PCI-1602 Rev A
-.It
-2-port PCI (PCI-1602 Rev B1/PCI-1603)
-.El
-.It
-Lava Computers:
-.Bl -dash -compact
-.It
-Dual Serial
-.It
-Quattro
-.It
-Quattro-PCI
-.It
-Octopus-550
-.El
-.It
-I-O DATA RSA-PCI2/R
-.It
-Kuroutoshikou SERIAL4P-LPPCI2
+NetMos NM9865 4/3/2 port UART + 1/2 port 1284 Printer PCI
.It
Oxford Semiconductor based boards:
.Bl -dash -compact
@@ -287,137 +209,76 @@ OX9160/OX16PCI954 UARTs
OX16PCI958 UART
.El
.It
-Perle:
-.Bl -dash -compact
-.It
-Ultraport4 Express
+Perle Ultraport4 Express PCIe Serial
.It
-Speed2 LE
+Perle Speed8/Speed4/Speed2 LE PCI Serial
.It
-Speed4 LE
-.It
-Speed8 LE
-.El
-.It
-VScom:
+Quatech:
.Bl -dash -compact
.It
-PCI-100L
+DSC-300/200/100 PCI
.It
-PCI-200L
+DSCLP-300/200/100 PCI
.It
-200Li
-.El
-.It
-Titan:
-.Bl -dash -compact
+ESC-100/100D/100M PCI
.It
-PCI-800H
+QSC-300/200/100 PCI
.It
-PCI-800H
-.It
-PCI-200H
+QSCLP-100 PCI
.El
.It
-Titan VScom:
+SIIG Cyber Series of UART and parallel port boards:
.Bl -dash -compact
.It
-PCI-800L
-.It
-PCI-200HV2
-.It
-PCIex-800H
-.It
-PCIex-800H
-.El
-.It
-Avlab Technology PCI IO 2S
+Cyber 2S and 2SP1 PCI 16550
.It
-Avlab Low Profile PCI 4 Serial
+Cyber 4 and 4S PCI 16C650 (10x family and 20x family)
.It
-Syba Tech Ltd PCI-4S2P-550-ECP
+Cyber I/O PCI (10x family and 20x family)
.It
-Sunix SUN1888
+Cyber Parallel Dual PCI (10x family and 20x family)
.It
-Sunix SER5xxxx
-.Bl -dash -compact
+Cyber Serial Dual PCI (10x family and 20x family)
.It
-2, 4 and 8 port serial
-.El
+Cyber 2S1P PCI (10x family and 20x family)
.It
-Sunix MIO5xxxx (1284 Printer port):
-.Bl -dash -compact
+PS8000 8S PCI 16C650 (20x family)
.It
-1, 2 and 4 port serial
+Quartet Serial 850 PCI
.El
.It
-Feasso PCI FPP-02 2S1P
-.It
Sun 1040 PCI Quad Serial
.It
-Decision Computer Inc PCCOM:
-.Bl -dash -compact
-.It
-4-port serial
-.It
-8-port serial
-.El
-.It
-PCCOM dual port RS232/422/485
-.It
-NetMos NM9815 Dual 1284 Printer port
+Sunix MIO5xxxx 4/2/1 port UART and 1284 Printer
.It
-NetMos NM9835:
-.Bl -dash -compact
+Sunix SUN1889/1888 PCI dual port serial
.It
-based 1 and 2 port serial
-.It
-Dual UART and 1284 Printer port
-.El
+Sunix SER5xxxx 8/4/2 port serial
.It
-NetMos NM9845:
-.Bl -dash -compact
+Syba Tech Ltd PCI-4S2P-550-ECP
.It
-6 Port UART
+Systembase SB16C1054/8 4/8 port serial
.It
-Quad UART and 1284 Printer port
-.El
+Titan PCI-800H/PCI-200H
.It
-NetMos NM9865:
+VScom:
.Bl -dash -compact
.It
-Dual UART
-.It
-Triple UART
+PCIex-800H
.It
-Quad UART
+PCI-200HV2
.It
-Single UART and 1284 Printer port
+200Li uPCI
.It
-Dual UART and 1284 Printer port
+PCI-800L, PCI-200L, and PCI-100L
.It
-Dual 1284 Printer port
+PCI-800, PCI-400, and PCI-200
.El
-.It
-IC Book Labs:
-.Bl -dash -compact
-.It
-Gunboat x4 Lite
-.It
-Gunboat x4 Pro
-.It
-Ironclad x8 Lite
-.It
-Ironclad x8 Pro
-.It
-Dreadnought x16 Pro
-.It
-Dreadnought x16 Lite
-.It
-Gunboat x2 Low Profile
-.It
-Gunboat x4 Low Profile
.El
+.Sh FILES
+.Bl -tag -width "sys/dev/puc/pucdata.c"
+.It Pa sys/dev/puc/pucdata.c
+list of supported devices
.El
.Sh SEE ALSO
.Xr ppc 4 ,
diff --git a/share/man/man4/qlnxe.4 b/share/man/man4/qlnxe.4
index f545235ec1ff..70bad789add1 100644
--- a/share/man/man4/qlnxe.4
+++ b/share/man/man4/qlnxe.4
@@ -24,7 +24,7 @@
.\" SUCH DAMAGE.
.\"
.Dd May 9, 2017
-.Dt QLNXE 4
+.Dt QLNXE 4 amd64
.Os
.Sh NAME
.Nm qlnxe
diff --git a/share/man/man4/qlxgb.4 b/share/man/man4/qlxgb.4
index 4bf8000d15da..cc97cd060a3f 100644
--- a/share/man/man4/qlxgb.4
+++ b/share/man/man4/qlxgb.4
@@ -24,7 +24,7 @@
.\" SUCH DAMAGE.
.\"
.Dd November 3, 2011
-.Dt QLXGB 4
+.Dt QLXGB 4 amd64
.Os
.Sh NAME
.Nm qlxgb
diff --git a/share/man/man4/qlxgbe.4 b/share/man/man4/qlxgbe.4
index 486a5ec0f682..465e4fc018ad 100644
--- a/share/man/man4/qlxgbe.4
+++ b/share/man/man4/qlxgbe.4
@@ -24,7 +24,7 @@
.\" SUCH DAMAGE.
.\"
.Dd April 1, 2013
-.Dt QLXGBE 4
+.Dt QLXGBE 4 amd64
.Os
.Sh NAME
.Nm qlxgbe
diff --git a/share/man/man4/qlxge.4 b/share/man/man4/qlxge.4
index 4723c56ff68b..14a1e1284fab 100644
--- a/share/man/man4/qlxge.4
+++ b/share/man/man4/qlxge.4
@@ -24,7 +24,7 @@
.\" SUCH DAMAGE.
.\"
.Dd June 21, 2013
-.Dt QLXGE 4
+.Dt QLXGE 4 amd64
.Os
.Sh NAME
.Nm qlxge
diff --git a/share/man/man4/random.4 b/share/man/man4/random.4
index 840bc0c3234b..04d46e4d32aa 100644
--- a/share/man/man4/random.4
+++ b/share/man/man4/random.4
@@ -21,7 +21,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd April 19, 2019
+.Dd August 28, 2025
.Dt RANDOM 4
.Os
.Sh NAME
@@ -132,6 +132,17 @@ are listed in square brackets.
See
.Xr random_harvest 9
for more on the harvesting of entropy.
+.Pp
+The
+.Va kern.random.nist_healthtest_enabled
+tunable can be used to enable the entropy source health tests outlined
+in section 4 of NIST Special Publication 800-90B.
+When enabled, all entropy sources will be subject to the repetition
+count and adaptive proportion tests described in that document.
+If one of the tests fails, the source will be disabled, i.e., all
+subsequent entropy samples from that source will be discarded.
+The implementation performs startup testing, during which entropy
+sources are discarded.
.Sh FILES
.Bl -tag -width ".Pa /dev/urandom"
.It Pa /dev/random
diff --git a/share/man/man4/rights.4 b/share/man/man4/rights.4
index 0c24f6b45f88..0223ba0b6b88 100644
--- a/share/man/man4/rights.4
+++ b/share/man/man4/rights.4
@@ -30,7 +30,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 1, 2024
+.Dd May 22, 2025
.Dt RIGHTS 4
.Os
.Sh NAME
@@ -281,7 +281,8 @@ Permit
and
.Xr openat 2
with
-.Dv O_FSYNC
+.Dv O_DSYNC ,
+.Dv O_FSYNC ,
or
.Dv O_SYNC
flag.
@@ -319,6 +320,14 @@ Permit
.It Dv CAP_GETSOCKOPT
Permit
.Xr getsockopt 2 .
+.It Dv CAP_INOTIFY_ADD
+Permit
+.Xr inotify_add_watch 2
+and
+.Xr inotify_add_watch_at 2 .
+.It Dv CAP_INOTIFY_RM
+Permit
+.Xr inotify_rm_watch 2 .
.It Dv CAP_IOCTL
Permit
.Xr ioctl 2 .
diff --git a/share/man/man4/rtw88.4 b/share/man/man4/rtw88.4
index 1165c5763de8..4c2cba8311ae 100644
--- a/share/man/man4/rtw88.4
+++ b/share/man/man4/rtw88.4
@@ -1,30 +1,9 @@
.\"-
-.\" SPDX-License-Identifer: BSD-2-Clause
+.\" SPDX-License-Identifier: BSD-2-Clause
.\"
-.\" Copyright (c) 2022-2024 Bjoern A. Zeeb
+.\" Copyright (c) 2022-2025 Bjoern A. Zeeb
.\"
-.\" 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.
-.\"
-.Dd November 10, 2024
+.Dd June 13, 2025
.Dt RTW88 4
.Os
.Sh NAME
@@ -44,7 +23,7 @@ to manually load the driver as a module at boot time:
kld_list="${kld_list} if_rtw88"
.Ed
.Pp
-It is discouraged to load the driver from
+It is not possible to load the driver from
.Xr loader 8 .
.Sh DESCRIPTION
The
diff --git a/share/man/man4/rtw89.4 b/share/man/man4/rtw89.4
index 5834a804630c..8c7132673db5 100644
--- a/share/man/man4/rtw89.4
+++ b/share/man/man4/rtw89.4
@@ -1,30 +1,9 @@
.\"-
.\" SPDX-License-Identifier: BSD-2-Clause
.\"
-.\" Copyright (c) 2023-2024 Bjoern A. Zeeb
+.\" Copyright (c) 2023-2025 Bjoern A. Zeeb
.\"
-.\" 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.
-.\"
-.Dd November 10, 2024
+.Dd June 13, 2025
.Dt RTW89 4
.Os
.Sh NAME
@@ -44,7 +23,7 @@ to manually load the driver as a module at boot time:
kld_list="${kld_list} if_rtw89"
.Ed
.Pp
-It is discouraged to load the driver from
+It is not possible to load the driver from
.Xr loader 8 .
.Sh DESCRIPTION
The
diff --git a/share/man/man4/sa.4 b/share/man/man4/sa.4
index 96b11ebe5360..6c948a0f21ab 100644
--- a/share/man/man4/sa.4
+++ b/share/man/man4/sa.4
@@ -82,21 +82,19 @@ the case where a control mode device is opened.
In the latter case, exclusive
access is only sought when needed (e.g., to set parameters).
.Sh SUB-MODES
-Bits 0 and 1 of the minor number are interpreted as
-.Sq sub-modes .
The sub-modes differ in the action taken when the device is closed:
.Bl -tag -width XXXX
-.It 00
+.It Pa /dev/sa*
A close will rewind the device; if the tape has been
written, then a file mark will be written before the rewind is requested.
The device is unmounted.
-.It 01
+.It Pa /dev/nsa*
A close will leave the tape mounted.
If the tape was written to, a file mark will be written.
No other head positioning takes place.
Any further reads or writes will occur directly after the
last read, or the written file mark.
-.It 10
+.It Pa /dev/esa*
A close will rewind the device.
If the tape has been
written, then a file mark will be written before the rewind is requested.
@@ -457,7 +455,8 @@ One EOM notification will be sent, BPEW status will be set for one position
query, and then the driver state will be reset to normal.
.Sh SEE ALSO
.Xr mt 1 ,
-.Xr cam 4
+.Xr cam 4 ,
+.Xr mtio 4
.Sh AUTHORS
.An -nosplit
The
diff --git a/share/man/man4/sdhci.4 b/share/man/man4/sdhci.4
index 4a4e02539acd..1608d9c2fe1a 100644
--- a/share/man/man4/sdhci.4
+++ b/share/man/man4/sdhci.4
@@ -1,4 +1,6 @@
.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2008 Alexander Motin <mav@FreeBSD.org>
.\" All rights reserved.
.\"
@@ -22,7 +24,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd August 25, 2020
+.Dd October 3, 2025
.Dt SDHCI 4
.Os
.Sh NAME
@@ -56,21 +58,28 @@ detaches it on card removing.
.Sh HARDWARE
The
.Nm
-driver supports different specification compatible chips.
-The following chips have been verified to work:
+driver supports the SD Host Controller Specification.
+When attaching via the PCI bus,
+the controller is automatically configured.
+Many SoC chips provide a SDHCI controller directly mapped to I/O memory.
+For those, the controller may be configured using
+.Xr fdt 4
+or
+.Xr acpi 4
+methods, supplied by your board's vendor.
.Pp
-.Bl -bullet -compact
-.It
-ENE CB712
-.It
-ENE CB714
-.It
-RICOH R5C822
-.It
-RICOH R5CE823
-.It
-TI PCIXX21/XX11/XX12
-.El
+Unlike most other drivers that support a generic standard,
+.Nm
+requires a large number of quirks to cope with hardware bugs,
+proprietary registers and poorly specified power management.
+While many chipsets from
+Intel, Xilinx, Rockchip, Frescale, Ricoh, and TI have these entries,
+suboptimal performance may result when using some controllers.
+Quirks and custom configuration are most often required
+when the device is configured via
+.Xr fdt 4
+or
+.Xr acpi 4 .
.Sh SEE ALSO
.Xr mmc 4 ,
.Xr mmcsd 4
@@ -79,8 +88,3 @@ TI PCIXX21/XX11/XX12
.Re
.Sh AUTHORS
.An Alexander Motin Aq Mt mav@FreeBSD.org
-.Sh BUGS
-Many of existing SD controller chips have some nonstandard requirements,
-proprietary registers and hardware bugs, requiring additional handling.
-ENE chips are handled to work fine, while some revisions of RICOH and TI
-controllers still do not see cards without some additional initialization.
diff --git a/share/man/man4/sfxge.4 b/share/man/man4/sfxge.4
index a9724074581e..ea35cf3e573c 100644
--- a/share/man/man4/sfxge.4
+++ b/share/man/man4/sfxge.4
@@ -27,7 +27,7 @@
.\" policies, either expressed or implied, of the FreeBSD Project.
.\"
.Dd February 22, 2015
-.Dt SFXGE 4
+.Dt SFXGE 4 amd64
.Os
.Sh NAME
.Nm sfxge
diff --git a/share/man/man4/smartpqi.4 b/share/man/man4/smartpqi.4
index 5b7ea923e13e..f5fab85d13bd 100644
--- a/share/man/man4/smartpqi.4
+++ b/share/man/man4/smartpqi.4
@@ -25,7 +25,7 @@
.\" SUCH DAMAGE.
.\"
.Dd August 24, 2023
-.Dt SMARTPQI 4
+.Dt SMARTPQI 4 amd64
.Os
.Sh NAME
.Nm smartpqi
diff --git a/share/man/man4/snd_dummy.4 b/share/man/man4/snd_dummy.4
index 2b9d26d318ef..172b8ed70729 100644
--- a/share/man/man4/snd_dummy.4
+++ b/share/man/man4/snd_dummy.4
@@ -27,7 +27,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd July 15, 2024
+.Dd October 22, 2025
.Dt SND_DUMMY 4
.Os
.Sh NAME
@@ -47,11 +47,22 @@ physical sound card.
It is intended for testing, so that test programs do not need to rely on
hardware being present in the machine in order to run.
.Pp
-The driver attaches as a regular PCM device, with two channels (one playback
-and one recording), as well as a mixer.
+The driver attaches as a regular
+.Xr sound 4
+device, with two channels (one playback and one recording), as well as a mixer.
.Pp
Playback works by discarding all input, and recording by returning silence
(zeros).
+.Sh FILES
+.Bl -tag -width "/dev/dsp.dummy" -compact
+.It Pa /dev/dsp.dummy
+Alias to the device's
+.Pa /dev/dsp%d
+file created by
+.Xr sound 4 .
+This makes it easy for tests to open the dummy devic when there are more
+devices present in the system.
+.El
.Sh SEE ALSO
.Xr sound 4 ,
.Xr loader.conf 5 ,
diff --git a/share/man/man4/snd_hda.4 b/share/man/man4/snd_hda.4
index 45ad2ee132ca..93bac0e5b3b9 100644
--- a/share/man/man4/snd_hda.4
+++ b/share/man/man4/snd_hda.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 2006-2008 Joel Dahl <joel@FreeBSD.org>
.\" Copyright (c) 2008 Alexander Motin <mav@FreeBSD.org>
.\" All rights reserved.
@@ -23,7 +26,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd July 16, 2019
+.Dd January 20, 2025
.Dt SND_HDA 4
.Os
.Sh NAME
@@ -384,6 +387,15 @@ Run-time equivalent of the
.Va hint.pcm.%d.rec.autosrc
tunable.
.El
+.Sh HARDWARE
+The
+.Nm
+driver supports PCI class 04h
+.Pq multimedia ,
+subclass 03h
+.Pq HDA
+audio controllers and codecs compatible with the
+Intel High Definition Audio 1.0 specification.
.Sh EXAMPLES
Taking HP Compaq DX2300 with Realtek ALC888 HDA codec for example.
This system has two audio connectors on a front side, three audio connectors
@@ -583,17 +595,6 @@ other random inputs
Controls have different precision.
Some could be just an on/off triggers.
Most of controls use logarithmic scale.
-.Sh HARDWARE
-The
-.Nm
-driver supports controllers having PCI class 4 (multimedia) and
-subclass 3 (HDA), compatible with Intel HDA specification.
-.Pp
-The
-.Nm
-driver supports more than two hundred different controllers and CODECs.
-There is no sense to list all of them here, as in most cases specific CODEC
-configuration and wiring are more important then type of the CODEC itself.
.Sh SEE ALSO
.Xr snd_ich 4 ,
.Xr sound 4 ,
diff --git a/share/man/man4/snd_uaudio.4 b/share/man/man4/snd_uaudio.4
index 00329a6d8e40..7193c85fa4f0 100644
--- a/share/man/man4/snd_uaudio.4
+++ b/share/man/man4/snd_uaudio.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" $NetBSD: uaudio.4,v 1.15 2002/02/12 19:53:57 jdolecek Exp $
.\"
.\" Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -27,32 +30,30 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd February 15, 2025
+.Dd July 17, 2025
.Dt SND_UAUDIO 4
.Os
.Sh NAME
.Nm snd_uaudio
.Nd USB audio and MIDI device driver
.Sh SYNOPSIS
-To compile this driver into the kernel, place the following lines in your
-kernel configuration file:
-.Bd -ragged -offset indent
.Cd "device sound"
.Cd "device usb"
.Cd "device snd_uaudio"
-.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
-snd_uaudio_load="YES"
-.Ed
-.Sh DESCRIPTION
-The
-.Nm
-driver provides support for USB audio class devices and USB MIDI class devices.
+In
+.Xr rc.conf 5 :
+.Cd kld_list="snd_uaudio"
.Pp
+In
+.Xr sysctl.conf 5 :
+.Cd hw.usb.uaudio.buffer_ms
+.Cd hw.usb.uaudio.default_bits
+.Cd hw.usb.uaudio.default_channels
+.Cd hw.usb.uaudio.default_rate
+.Cd hw.usb.uaudio.handle_hid
+.Cd hw.usb.uaudio.debug
+.Sh DESCRIPTION
A USB audio device consists of a number of components: input terminals (e.g.\&
USB digital input), output terminals (e.g.\& speakers), and a number of units
in between (e.g.\& volume control).
@@ -68,6 +69,11 @@ sample rate and sample size.
Refer to the
.Ql USB Audio Class Specification
for more information.
+.Sh HARDWARE
+The
+.Nm
+driver provides support for USB audio class devices and
+USB MIDI class devices.
.Sh SYSCTL VARIABLES
The following settings can be entered at the
.Xr loader 8
diff --git a/share/man/man4/sume.4 b/share/man/man4/sume.4
index 219328a4f4c4..b36f924875e6 100644
--- a/share/man/man4/sume.4
+++ b/share/man/man4/sume.4
@@ -25,7 +25,7 @@
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd August 30, 2020
-.Dt SUME 4
+.Dt SUME 4 amd64
.Os
.Sh NAME
.Nm sume
diff --git a/share/man/man4/syncache.4 b/share/man/man4/syncache.4
index e92502fd15ff..f83e9b083e45 100644
--- a/share/man/man4/syncache.4
+++ b/share/man/man4/syncache.4
@@ -10,7 +10,7 @@
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
-.Dd April 12, 2021
+.Dd August 30, 2025
.Dt SYNCACHE 4
.Os
.Sh NAME
@@ -39,6 +39,8 @@ MIBs for controlling TCP SYN caching
.Nm sysctl Cm net.inet.tcp.syncache.count
.It
.Nm sysctl Cm net.inet.tcp.syncache.see_other
+.It
+.Nm sysctl Cm net.inet.tcp.syncache.rst_on_sock_fail
.El
.Sh DESCRIPTION
The
@@ -107,6 +109,18 @@ and run only with
set
.Va net.inet.tcp.syncookies_only
to 1.
+To use
+.Nm syncookies
+to handle bucket overflows in the
+.Nm syncache
+set
+.Va net.inet.tcp.syncookies
+to 1.
+The default value for
+.Va net.inet.tcp.syncookies_only
+is 0 and the default value for
+.Va net.inet.tcp.syncookies
+is 1.
.Pp
The
.Nm
@@ -169,6 +183,9 @@ However, extra
.Xr ucred 9
referencing is required on every incoming SYN packet processed.
The default is off.
+.It Va rst_on_sock_fail
+Send a TCP RST segment if the socket allocation fails.
+The default is on.
.El
.Pp
Statistics on the performance of the
@@ -206,8 +223,16 @@ Entries dropped due to ICMP unreachable messages.
Failures to allocate new
.Nm
entry.
+.It Li "cookies sent"
+SYN cookies sent in SYN ACK segments.
.It Li "cookies received"
-Connections created from segment containing ACK.
+ACK segments with valid syncookies which resulted in TCP connection
+establishment.
+.It Li "spurious cookies rejected"
+Received ACKs, for which the syncache lookup failed and also no syncookie was
+recently sent.
+.It Li "failed cookies rejected"
+Received ACKs for which the syncookie validation failed.
.El
.Sh SEE ALSO
.Xr netstat 1 ,
diff --git a/share/man/man4/tap.4 b/share/man/man4/tap.4
index 95a681a923d2..a4fe98cdfecf 100644
--- a/share/man/man4/tap.4
+++ b/share/man/man4/tap.4
@@ -203,6 +203,21 @@ The argument should be a pointer to a
The interface name will be returned in the
.Va ifr_name
field.
+.It Dv TAPSTRANSIENT
+The argument should be a pointer to an
+.Va int ;
+this sets the transient flag on
+the
+.Nm
+device.
+A transient
+.Nm
+will be destroyed upon last close.
+.It Dv TAPGTRANSIENT
+The argument should be a pointer to an
+.Va int ;
+this stores the current state (enabled or disabled) of the transient flag into
+it.
.It Dv FIONBIO
Turn non-blocking I/O for reads off or on, according as the argument
.Va int Ns 's
diff --git a/share/man/man4/tcp.4 b/share/man/man4/tcp.4
index d53d8086e8c0..3c9f4ff83f3d 100644
--- a/share/man/man4/tcp.4
+++ b/share/man/man4/tcp.4
@@ -31,7 +31,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 10, 2025
+.Dd September 5, 2025
.Dt TCP 4
.Os
.Sh NAME
@@ -780,21 +780,34 @@ Minimum TCP Maximum Segment Size; used to prevent a denial of service attack
from an unreasonably low MSS.
.It Va msl
The Maximum Segment Lifetime, in milliseconds, for a packet.
+.It Va msl_local
+The Maximum Segment Lifetime, in milliseconds, for a packet when both endpoints
+are local.
+.Va msl_local
+is only used if
+.Va nolocaltimewait ,
+which is deprecated, is zero.
.It Va mssdflt
The default value used for the TCP Maximum Segment Size
.Pq Dq MSS
for IPv4 when no advice to the contrary is received from MSS negotiation.
-.It Va newcwd
+.It Va newcwv
Enable the New Congestion Window Validation mechanism as described in RFC 7661.
This gently reduces the congestion window during periods, where TCP is
application limited and the network bandwidth is not utilized completely.
That prevents self-inflicted packet losses once the application starts to
transmit data at a higher speed.
.It Va nolocaltimewait
-Suppress creation of TCP
+Suppress the creation of TCP
.Dv TIME_WAIT
states for connections in
which both endpoints are local.
+The default is 0.
+.Va nolocaltimewait
+is deprecated and will be removed in
+.Fx 16 .
+.Va msl_local
+can be used instead.
.It Va path_mtu_discovery
Enable Path MTU Discovery.
.It Va pcbcount
@@ -871,10 +884,13 @@ segment is lost (default and maximum is 12).
.It Va rexmit_drop_options
Drop TCP options from third and later retransmitted SYN segments
of a connection.
-.It Va rexmit_initial , rexmit_min , rexmit_slop
+.It Va rexmit_initial , rexmit_min , rexmit_slop , rexmit_max
Adjust the retransmit timer calculation for
.Tn TCP .
-The slop is
+A new connection starts with timer set to
+.Va rexmit_initial .
+The
+.Va rexmit_slop
typically added to the raw calculation to take into account
occasional variances that the
.Tn SRTT
@@ -894,6 +910,11 @@ For this reason, we use 200ms of slop and a near-0
minimum, which gives us an effective minimum of 200ms (similar to
.Tn Linux ) .
The initial value is used before an RTT measurement has been performed.
+The
+.Va rexmit_min
+and
+.Va rexmit_max
+set minimum and maximum timer values that a connection may have.
.It Va rfc1323
Implement the window scaling and timestamp options of RFC 1323/RFC 7323
(default is 1).
@@ -919,9 +940,6 @@ maximum segment size.
This helps throughput in general, but
particularly affects short transfers and high-bandwidth large
propagation-delay connections.
-.It Va rfc6675_pipe
-Deprecated and superseded by
-.Va sack.revised
.It Va sack.enable
Enable support for RFC 2018, TCP Selective Acknowledgment option,
which allows the receiver to inform the sender about all successfully
@@ -953,6 +971,11 @@ recovery, the trailing segment is immediately resent, rather than waiting
for a Retransmission timeout.
Finally, SACK loss recovery is also engaged, once two segments plus one byte are
SACKed - even if no traditional duplicate ACKs were observed.
+.Va sack.revised
+is deprecated and will be removed in
+.Fx 16 .
+.Va sack.enable
+will always follow RFC6675.
.It Va sendbuf_auto
Enable automatic send buffer sizing.
.It Va sendbuf_auto_lowat
diff --git a/share/man/man4/thunderbolt.4 b/share/man/man4/thunderbolt.4
new file mode 100644
index 000000000000..fd7cb1f3f338
--- /dev/null
+++ b/share/man/man4/thunderbolt.4
@@ -0,0 +1,22 @@
+.\"
+.\" Copyright (c) 2025 Alexander Ziaee
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.Dd October 2, 2025
+.Dt THUNDERBOLT 4
+.Os
+.Sh NAME
+.Nm thunderbolt
+.Nd USB4 controller driver
+.Sh SYNOPSIS
+.Cd device thunderbolt
+.Sh HARDWARE
+The
+.Nm
+driver supports Thunderbolt 3 and USB4 controllers.
+.Sh HISTORY
+The
+.Nm
+driver appeared in
+.Fx 15.0 .
diff --git a/share/man/man4/tun.4 b/share/man/man4/tun.4
index 58f67cb20acb..1c5bd35f0ab8 100644
--- a/share/man/man4/tun.4
+++ b/share/man/man4/tun.4
@@ -282,6 +282,21 @@ The argument should be a pointer to an
the ioctl sets the value to one if the device is in
.Dq multi-af
mode, and zero otherwise.
+.It Dv TUNSTRANSIENT
+The argument should be a pointer to an
+.Va int ;
+this sets the transient flag on
+the
+.Nm
+device.
+A transient
+.Nm
+will be destroyed upon last close.
+.It Dv TUNGTRANSIENT
+The argument should be a pointer to an
+.Va int ;
+this stores the current state (enabled or disabled) of the transient flag into
+it.
.It Dv FIONBIO
Turn non-blocking I/O for reads off or on, according as the argument
.Vt int Ns 's
diff --git a/share/man/man4/u2f.4 b/share/man/man4/u2f.4
new file mode 100644
index 000000000000..4c51e140242e
--- /dev/null
+++ b/share/man/man4/u2f.4
@@ -0,0 +1,96 @@
+.\"
+.\" SPDX-License-Identifier: ISC
+.\"
+.\" $OpenBSD: fido.4,v 1.4 2020/08/21 19:02:46 mglocker Exp $
+.\"
+.\" Copyright (c) 2019 Reyk Floeter <reyk@openbsd.org>
+.\" Copyright (c) 2023 Vladimir Kondratyev <wulf@FreeBSD.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd August 21, 2023
+.Dt U2F 4
+.Os
+.Sh NAME
+.Nm u2f
+.Nd FIDO/U2F USB security keys
+.Sh SYNOPSIS
+.Cd "device u2f"
+.Pp
+In
+.Xr loader.conf 5 :
+.Cd u2f_load="YES"
+.Pp
+In
+.Xr sysctl.conf 5 :
+.Cd hw.hid.u2f.debug
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for FIDO/U2F-compatible USB security keys.
+They are Human Interface Devices (HID) which can be accessed via the
+.Pa /dev/u2f/N
+interface.
+.Pp
+The driver is compatible with the
+.Xr read 2 ,
+.Xr write 2 ,
+and
+.Xr ioctl 2
+operations of the generic
+.Xr uhid 4
+device but only accepts the optional HID
+.Xr ioctl 2
+calls from u2f group users.
+.Sh HARDWARE
+The
+.Nm
+driver supports FIDO/U2F-compatible USB security keys.
+.Sh SYSCTL VARIABLES
+The following variables are available as both
+.Xr sysctl 8
+variables and
+.Xr loader 8
+tunables:
+.Bl -tag -width indent
+.It Va hw.hid.u2f.debug
+Debug output level, where 0 is debugging disabled and larger values increase
+debug message verbosity.
+Default is 0.
+.El
+.Sh FILES
+.Bl -tag -width /dev/u2f/* -compact
+.It Pa /dev/u2f/*
+.El
+.Sh SEE ALSO
+.Xr uhid 4 ,
+.Xr usbhid 4 ,
+.Xr usb 4
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 15.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was written by
+.An Vladimir Kondratyev Aq Mt wulf@FreeBSD.org .
+.Pp
+This manual page was written by
+.An Vladimir Kondratyev Aq Mt wulf@FreeBSD.org
+based on the
+.Ox
+.Xr fido 4
+manual page.
diff --git a/share/man/man4/uchcom.4 b/share/man/man4/uchcom.4
index d5efe83286ba..6cee3d82c2ce 100644
--- a/share/man/man4/uchcom.4
+++ b/share/man/man4/uchcom.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" $NetBSD: uchcom.4,v 1.2 2008/04/30 13:10:54 martin Exp $
.\"
.\" Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -27,46 +30,74 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd April 26, 2017
+.Dd June 25, 2025
.Dt UCHCOM 4
.Os
.Sh NAME
.Nm uchcom
-.Nd WinChipHead CH341/CH340 serial adapter driver
+.Nd WinChipHead CH9102/CH343/CH341/CH340 USB to serial UART driver
.Sh SYNOPSIS
-To compile this driver into the kernel,
-place the following lines in your
-kernel configuration file:
-.Bd -ragged -offset indent
.Cd "device usb"
.Cd "device ucom"
.Cd "device uchcom"
-.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
-uchcom_load="YES"
-.Ed
+In
+.Xr rc.conf 5 :
+.Cd kld_list="uchcom"
+.Pp
+In
+.Xr sysctl.conf 5 :
+.Cd hw.usb.uchcom.debug=1
.Sh DESCRIPTION
The
.Nm
-driver provides support for the WinChipHead CH341/CH340 USB-to-RS-232
-Bridge chip.
-.Pp
+driver provides support for the WinChipHead USB to serial UART adapters.
+If the appropriate hardware is detected,
+the driver will be loaded automatically by
+.Xr devmatch 8 .
+To load the driver manually, add it to the
+.Ic kld_list
+in
+.Xr rc.conf 5 ,
+or use
+.Xr kldload 8
+at runtime.
The device is accessed through the
.Xr ucom 4
-driver which makes it behave like a
+driver, which makes it behave like a
.Xr tty 4 .
+.Pp
+Call out through this interface with applications like
+.Xr cu 1
+or
+.Xr tip 1 .
.Sh HARDWARE
The
.Nm
-driver supports the following adapters:
+driver supports the following USB to serial UART controllers:
.Pp
.Bl -bullet -compact
.It
-HL USB-RS232
+WinChipHead CH9102 (max 6Mbps)
+.It
+WinChipHead CH343 (max 6Mbps)
+.It
+WinChipHead CH341 (max 2Mbps)
+.It
+WinChipHead CH340 (max 2Mbps)
+.El
+.Sh SYSCTL VARIABLES
+These settings can be entered in the
+.Xr loader 8
+prompt, set in
+.Xr loader.conf 5 ,
+.Xr sysctl.conf 5 ,
+or changed at runtime with
+.Xr sysctl 8 :
+.Bl -tag -width "hw.usb.uchcom.debug"
+.It Va hw.usb.uchcom.debug
+Enable debugging messages, default
+.Ql 0
.El
.Sh FILES
.Bl -tag -width "/dev/ttyU*.init" -compact
@@ -83,18 +114,14 @@ for callout ports
corresponding callout initial-state and lock-state devices
.El
.Sh SEE ALSO
+.Xr cu 1 ,
.Xr tty 4 ,
.Xr ucom 4 ,
.Xr usb 4
.Sh HISTORY
The
.Nm
-driver first appeared in
-.Nx .
-The first
-.Fx
-release to include it was
-.Fx 8.0 .
-.Sh BUGS
-Actually, this chip seems unable to drive other than 8 data bits and
-1 stop bit line.
+driver appeared in
+.Fx 8.0
+from
+.Nx 5.0 .
diff --git a/share/man/man4/udbc.4 b/share/man/man4/udbc.4
new file mode 100644
index 000000000000..c8fa02ec18f1
--- /dev/null
+++ b/share/man/man4/udbc.4
@@ -0,0 +1,132 @@
+.\"
+.\" Copyright (c) 2025 The FreeBSD Foundation
+.\"
+.\" This documentation was written by Tom Jones <thj@freebsd.org> under
+.\" sponsorship from the FreeBSD Foundation.
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\"
+.Dd September 3, 2025
+.Dt UDBC 4
+.Os
+.Sh NAME
+.Nm udbc
+.Nd USB Debug Class device driver
+.Sh SYNOPSIS
+.Cd "device usb"
+.Cd "device ucom"
+.Cd "device udbc"
+.Pp
+In
+.Xr rc.conf 5 :
+.Cd kld_list="udbc"
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for USB Debug Class devices whose
+interface class is Diagnostic Class and the subclass is DbC.GP.
+.Pp
+The USB Debug Class is defined in the USB 3.1 Device Class
+Specification for Debug Devices.
+This is designed to provide a general-purpose communication channel
+for debugging.
+It has also been widely implemented in USB xHCs
+.Pq USB eXtensible Host Controllers ,
+which can be found on many commodity computers,
+as an optional feature.
+Once this feature is enabled on a USB xHC, one of the USB ports will
+behave as a USB Debug Class device,
+not a host port,
+when a USB debug cable is connected.
+The supported class in USB xHCs is typically DbC.GP,
+while the specification defines several types of Debug Class devices.
+The DbC.GP uses IN and OUT endpoint pairs and realizes a single
+bidirectional serial communication channel.
+On most systems,
+including
+.Fx ,
+the DbC.GP is seen as a simple serial device.
+.Pp
+Most systems with USB xHC can be configured to provide DbC.GP access.
+The
+.Nm
+is a driver that connects to DbC.GP-supported devices,
+offering
+.Xr tty 4
+devices to connect to them via the
+.Xr ucom 4
+device driver.
+.Sh HARDWARE CONFIGURATION
+A native DbC.GP device can be attached using the
+.Nm
+driver in a straightforward way.
+.Pp
+A USB xHC DbC.GP device on a target system needs a special hardware
+configuration because all of the ports are supposed to be a USB Host.
+There is one method to expose DbC.GP is to use a USB 3.1 A-to-A cable
+.Pq section 5.5.2 in USB 3.1 Legacy Cable and Connector Specification .
+When this cable is connected to a USB 3.1 port on the target system,
+the DbC-enabled USB xHC automatically switches the port as a USB Device.
+The
+.Nm
+driver can find a DbC.GP device on that port.
+.Pp
+Note that a USB xHC with USB 3.2 support
+.Pq USB Type-C connectors
+is not compatible with the USB 3.1 A-to-A cable.
+Connecting a USB 3.2 C-to-C cable or A-to-C cable does not automatically work,
+either,
+because it needs role configuration of the port, which is not supported on
+.Fx
+yet.
+.Sh FILES
+.Bl -tag -width "/dev/ttyU*.*.init" -compact
+.It Pa /dev/ttyU*.*
+for callin ports
+.It Pa /dev/ttyU*.*.init
+.It Pa /dev/ttyU*.*.lock
+corresponding callin initial-state and lock-state devices
+.Pp
+.It Pa /dev/cuaU*.*
+for callout ports
+.It Pa /dev/cuaU*.*.init
+.It Pa /dev/cuaU*.*.lock
+corresponding callout initial-state and lock-state devices
+.El
+.Sh SEE ALSO
+.Xr tty 4 ,
+.Xr ucom 4 ,
+.Xr usb 4 ,
+.Xr xhci 4
+.Sh STANDARDS
+.Rs
+.%T eXtensible Host Controller Interface for Universal Serial Bus (XHCI)
+.%U https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/extensible-host-controler-interface-usb-xhci.pdf
+.Re
+.Rs
+.%T USB 3.1 Device Class Specification for Debug Devices
+.%U https://www.usb.org/sites/default/files/documents/usb_debug_class_rev_1_0_final_0.pdf
+.Re
+.Rs
+.%T USB 3.1 Legacy Cable and Connector Specification
+.%U https://www.usb.org/document-library/usb-31-legacy-cable-and-connector-revision-10
+.Re
+.Sh HISTORY
+The
+.Nm
+driver first appeared
+.Fx
+15.0.
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was written by
+.An Hiroki Sato Aq Mt hrs@FreeBSD.org .
+.Sh BUGS
+According to the XHCI specification the host side of USB Debug should work with
+any USB 3.0 port,
+whether connected directly to a controller or with a hub in between.
+Testing on some controllers has encountered issues when using a hub rather than
+a directly connected port on the controller.
diff --git a/share/man/man4/ufshci.4 b/share/man/man4/ufshci.4
new file mode 100644
index 000000000000..d722c9902b98
--- /dev/null
+++ b/share/man/man4/ufshci.4
@@ -0,0 +1,181 @@
+.\"
+.\" Copyright (c) 2025, Samsung Electronics Co., Ltd.
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" ufshci driver man page.
+.\"
+.\" Author: Jaeyoon Choi <j_yoon.choi@samsung.com>
+.\"
+.Dd July 17, 2025
+.Dt UFSHCI 4
+.Os
+.Sh NAME
+.Nm ufshci
+.Nd Universal Flash Storage Host Controller Interface driver
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following line in the kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device ufshci"
+.Ed
+.Pp
+Or, to load the driver as a module at boot, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+ufshci_load="YES"
+.Ed
+.Sh DESCRIPTION
+Universal Flash Storage (UFS) is a low-power, high-performance storage
+standard composed of a host controller and a single target device.
+.Pp
+The driver currently provides:
+.Bl -bullet
+.It
+Initialization of the host controller and the target device
+.It
+Handling of UFS Interconnect (UIC) commands
+.It
+Support for UTP Transfer Requests (UTR) and UTP Task Management Requests (UTMR)
+.It
+Support for the SCSI command set
+.It
+Operation in the legacy single-doorbell queue mode
+.It
+Support for the PCI Express bus
+.El
+.Pp
+After initialization, the controller is registered with the
+.Xr cam 4
+subsystem and its logical unit appears as the device node
+.Pa /dev/daX .
+.Pp
+The driver is under active development; upcoming work includes full
+UFS 4.1 feature coverage, additional power-management modes, and
+ACPI/FDT-based attach support.
+.Sh HARDWARE
+The
+.Nm
+driver supports both host controllers and devices implementing the
+Universal Flash Storage Host Controller Interface 4.1 and earlier.
+.Sh CONFIGURATION
+The
+.Nm
+driver currently operates with a single doorbell (one I/O-queue), so any
+tunables that change the queue count are ignored.
+When Multi-Circular Queue (MCQ) support is added and multiple queues
+become available, the following queue count tunable values will take effect:
+.Pp
+To force a single I/O queue pair shared by all CPUs, set the following
+tunable value in loader.conf(5):
+.Bd -literal -offset indent
+hw.ufshci.per_cpu_io_queues=0
+.Ed
+.Pp
+To assign more than one CPU per I/O queue pair, thereby reducing the
+number of MSI-X vectors consumed by the device, set the following tunable
+value in loader.conf(5):
+.Bd -literal -offset indent
+hw.ufshci.min_cpus_per_ioq=X
+.Ed
+.Pp
+To change the I/O command timeout value (in seconds), set the following tunable
+value in loader.conf(5):
+.Bd -literal -offset indent
+hw.ufshci.timeout_period=X
+.Ed
+.Pp
+To change the I/O command retry count, set the following tunable value in
+loader.conf(5):
+.Bd -literal -offset indent
+hw.ufshci.retry_count=X
+.Ed
+.Pp
+To force the driver to use legacy INTx interrupts, set the following tunable
+value in loader.conf(5):
+.br
+(Note: until MCQ support is available the driver always uses legacy INTx, so
+this value effectively remains 1)
+.Bd -literal -offset indent
+hw.ufshci.force_intx=1
+.Ed
+.Sh SYSCTL VARIABLES
+The following controller-level
+.Xr sysctl 8
+nodes are currently implemented:
+.Bl -tag -width indent
+.It Va dev.ufshci.0.num_failures
+(R) Number of command failures for the entire controller.
+.It Va dev.ufshci.0.num_retries
+(R) Number of command retries for the entire controller.
+.It Va dev.ufshci.0.num_intr_handler_calls
+(R) Number of times the interrupt handler has been called.
+.It Va dev.ufshci.0.num_cmds
+(R) Total number of commands issued by the controller.
+.It Va dev.ufshci.0.timeout_period
+(RW) Configured timeout period (in seconds).
+.It Va dev.ufshci.0.cap
+(R) Host controller capabilities register value.
+.It Va dev.ufshci.0.num_io_queues
+(R) Number of I/O-queue pairs.
+.It Va dev.ufshci.0.io_queue_mode
+(R) Indicates single doorbell mode or multi circular queue mode.
+.It Va dev.ufshci.0.minor_version
+(R) Host controller minor version.
+.It Va dev.ufshci.0.major_version
+(R) Host controller major version.
+.It Va dev.ufshci.0.utmrq.num_failures
+(R) Number of failed UTP task-management requests.
+.It Va dev.ufshci.0.utmrq.ioq.num_retries
+(R) Number of retried UTP task-management requests.
+.It Va dev.ufshci.0.utmrq.num_intr_handler_calls
+(R) Number of interrupt handler calls caused by UTP task-management requests.
+.It Va dev.ufshci.0.utmrq.num_cmds
+(R) Number of UTP task-management requests issued.
+.It Va dev.ufshci.0.utmrq.cq_head
+(R) Current location of the UTP task-management completion queue head.
+.It Va dev.ufshci.0.utmrq.sq_tail
+(R) Current location of the UTP task-management submission queue tail.
+.It Va dev.ufshci.0.utmrq.sq_head
+(R) Current location of the UTP task-management submission queue head.
+.It Va dev.ufshci.0.utmrq.num_trackers
+(R) Number of trackers in the UTP task-management queue.
+.It Va dev.ufshci.0.utmrq.num_entries
+(R) Number of entries in the UTP task-management queue.
+.It Va dev.ufshci.0.ioq.0.num_failures
+(R) Number of failed UTP transfer requests.
+.It Va dev.ufshci.0.ioq.0.num_retries
+(R) Number of retried UTP transfer requests.
+.It Va dev.ufshci.0.ioq.0.num_intr_handler_calls
+(R) Number of interrupt-handler calls caused by UTP transfer requests.
+.It Va dev.ufshci.0.ioq.0.num_cmds
+(R) Number of UTP transfer requests issued.
+.It Va dev.ufshci.0.ioq.0.cq_head
+(R) Current location of the UTP transfer completion queue head.
+.It Va dev.ufshci.0.ioq.0.sq_tail
+(R) Current location of the UTP transfer submission queue tail.
+.It Va dev.ufshci.0.ioq.0.sq_head
+(R) Current location of the UTP transfer submission queue head.
+.It Va dev.ufshci.0.ioq.0.num_trackers
+(R) Number of trackers in the UTP transfer queue.
+.It Va dev.ufshci.0.ioq.0.num_entries
+(R) Number of entries in the UTP transfer queue.
+.El
+.Sh SEE ALSO
+.Xr cam 4 ,
+.Xr pci 4 ,
+.Xr disk 9
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 15.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was developed by Samsung Electronics and originally written by
+.An Jaeyoon Choi Aq Mt j_yoon.choi@samsung.com .
+.Pp
+This manual page was written by
+.An Jaeyoon Choi Aq Mt j_yoon.choi@samsung.com .
diff --git a/share/man/man4/uftdi.4 b/share/man/man4/uftdi.4
index 9bd3d4a4a293..b526143eaa25 100644
--- a/share/man/man4/uftdi.4
+++ b/share/man/man4/uftdi.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" $NetBSD: uftdi.4,v 1.5 2002/02/07 03:15:08 ross Exp $
.\"
.\" Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -27,61 +30,90 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd April 26, 2017
+.Dd June 25, 2025
.Dt UFTDI 4
.Os
.Sh NAME
.Nm uftdi
-.Nd USB support for serial adapters based on the FTDI family of USB
-serial adapter chips.
+.Nd Future Technology Devices International USB to serial UART driver
.Sh SYNOPSIS
-To compile this driver into the kernel,
-place the following lines in your
-kernel configuration file:
-.Bd -ragged -offset indent
.Cd "device usb"
.Cd "device ucom"
.Cd "device uftdi"
-.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
-uftdi_load="YES"
-.Ed
+In
+.Xr rc.conf 5 :
+.Cd kld_list="uftdi"
+.Pp
+In
+.Xr sysctl.conf 5 :
+.Cd hw.usb.uftdi.debug=1
+.Cd hw.usb.uftdi.skip_jtag_interfaces=0
.Sh DESCRIPTION
The
.Nm
-driver provides support for various serial adapters based on the
-following FTDI chips:
+driver supports FTDI USB to serial UART devices.
+If the appropriate hardware is detected,
+the driver will be loaded automatically by
+.Xr devmatch 8 .
+To load the driver manually, add it to the
+.Ic kld_list
+in
+.Xr rc.conf 5 ,
+or use
+.Xr kldload 8
+at runtime.
+The device is accessed through the
+.Xr ucom 4
+driver which makes it behave like a
+.Xr tty 4 .
+.Pp
+Call out through this interface with applications like
+.Xr cu 1
+or
+.Xr tip 1 .
+.Sh HARDWARE
+The
+.Nm
+driver supports the following USB to serial UART controllers:
.Pp
.Bl -bullet -compact
.It
-FT8U100AX
+FTDI FT4232H
.It
-FT8U232AM
+FTDI FT232R
.It
-FT8U232BM
+FTDI FT230X
.It
-FT232R
+FTDI FT2232H
.It
-FT2232C
+FTDI FT2232D
.It
-FT2232D
+FTDI FT2232C
.It
-FT2232H
+FTDI FT8U232BM
.It
-FT4232H
+FTDI FT8U232AM
.It
-FT230X
+FTDI FT8U100AX
.El
-.Pp
-The device is accessed through the
-.Xr ucom 4
-driver which makes it behave like a
-.Xr tty 4 .
-.Pp
+.Sh SYSCTL VARIABLES
+These settings can be entered in the
+.Xr loader 8
+prompt, set in
+.Xr loader.conf 5 ,
+.Xr sysctl.conf 5 ,
+or changed at runtime with
+.Xr sysctl 8 :
+.Bl -tag -width "hw.usb.uftdi.skip_jtag_interfaces"
+.It Va hw.usb.uftdi.debug
+Enable debugging messages, default
+.Ql 0
+.It Va hw.usb.uftdi.skip_jtag_interfaces
+Ignore JTAG interfaces, default
+.Ql 1
+.El
+.Sh IOCTLS
Many of the supported chips provide additional functionality
such as bitbang mode and the MPSSE engine for serial bus emulation.
The
@@ -219,27 +251,6 @@ ioctl, you must pass the special value
.Dv UFTDI_CONFIRM_ERASE
as the argument to this ioctl.
.El
-.Sh HARDWARE
-The
-.Nm
-driver supports the following adapters:
-.Pp
-.Bl -bullet -compact
-.It
-B&B Electronics USB->RS422/485 adapter
-.It
-Elexol USB MOD1 and USB MOD3
-.It
-HP USB-Serial adapter shipped with some HP laptops
-.It
-Inland UAS111
-.It
-QVS USC-1000
-.It
-Buffalo PC-OP-RS / Kurouto-shikou KURO-RS universal remote
-.It
-Prologix GPIB-USB Controller
-.El
.Sh FILES
.Bl -tag -width "/dev/ttyU*.init" -compact
.It Pa /dev/ttyU*
@@ -255,14 +266,14 @@ for callout ports
corresponding callout initial-state and lock-state devices
.El
.Sh SEE ALSO
+.Xr cu 1 ,
.Xr tty 4 ,
.Xr ucom 4 ,
.Xr usb 4
.Sh HISTORY
The
.Nm
-driver
-appeared in
+driver appeared in
.Fx 4.8
from
.Nx 1.5 .
diff --git a/share/man/man4/umass.4 b/share/man/man4/umass.4
index 03e8b6ff6ef1..8c6b03a3afea 100644
--- a/share/man/man4/umass.4
+++ b/share/man/man4/umass.4
@@ -1,3 +1,6 @@
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
.\" Copyright (c) 1999
.\" Nick Hibma <n_hibma@FreeBSD.org>. All rights reserved.
.\"
@@ -22,44 +25,44 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 27, 2020
+.Dd October 9, 2025
.Dt UMASS 4
.Os
.Sh NAME
.Nm umass
.Nd USB Mass Storage Devices 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 da"
.Cd "device scbus"
+.Cd "device pass"
.Cd "device usb"
.Cd "device umass"
-.Ed
.Pp
-Alternatively, to load the driver as a
-module at boot time, place the following line in
+In
.Xr loader.conf 5 :
-.Bd -literal -offset indent
-umass_load="YES"
-.Ed
+.Cd umass_load
.Sh DESCRIPTION
The
.Nm
driver provides support for Mass Storage devices that attach to the USB
-port.
+interface.
.Pp
-To use the
-.Nm
-driver,
+If the appropriate hardware is detected,
+the driver will be loaded automatically by
+.Xr devmatch 8 .
+To load the driver manually at boot time, use the
+.Cm umass_load
+command at the
+.Xr loader 8
+prompt, or add it to
+.Xr loader.conf 5 .
+.Pp
+To use the driver in a custom kernel,
.Xr usb 4
-and one of
-.Xr uhci 4
-or
-.Xr ohci 4
-or
-.Xr ehci 4
+and at least one of
+.Xr uhci 4 ,
+.Xr ohci 4 ,
+.Xr ehci 4 ,
or
.Xr xhci 4
must be configured in the kernel.
@@ -71,17 +74,22 @@ requires
and
.Xr scbus 4
to be included in the kernel.
-.Sh EXAMPLES
-.Bd -literal -offset indent
-device umass
-device scbus
-device da
-device pass
-.Ed
-.Pp
-Add the
+.Sh HARDWARE
+The
.Nm
-driver to the kernel.
+driver supports USB Mass Storage devices such as:
+.Pp
+.Bl -bullet -compact
+.It
+USB thumb drives
+.It
+USB hard disk drives
+.It
+USB floppy drives
+.El
+.Sh EXAMPLES
+Rescan all slots on a multi-slot flash reader,
+where the slots map to separate LUNs on a single SCSI ID:
.Bd -literal -offset indent
camcontrol rescan 0:0:0
camcontrol rescan 0:0:1
@@ -89,10 +97,9 @@ camcontrol rescan 0:0:2
camcontrol rescan 0:0:3
.Ed
.Pp
-Rescan all slots on a multi-slot flash reader, where the slots map to separate
-LUNs on a single SCSI ID.
Typically only the first slot will be enabled at boot time.
-This assumes that the flash reader is the first SCSI bus in the system and has 4 slots.
+This assumes that
+the flash reader is the first SCSI bus in the system and has 4 slots.
.Sh SEE ALSO
.Xr cfumass 4 ,
.Xr ehci 4 ,
@@ -101,7 +108,11 @@ This assumes that the flash reader is the first SCSI bus in the system and has 4
.Xr usb 4 ,
.Xr xhci 4 ,
.Xr camcontrol 8
-.\".Sh HISTORY
+.Sh HISTORY
+The
+.Nm
+driver appeared in
+.Fx 4.3 .
.Sh AUTHORS
.An -nosplit
The
diff --git a/share/man/man4/umb.4 b/share/man/man4/umb.4
index 7ecc9a39c1ca..37c86b3074f5 100644
--- a/share/man/man4/umb.4
+++ b/share/man/man4/umb.4
@@ -17,34 +17,33 @@
.\"
.\" $NetBSD: umb.4,v 1.4 2019/08/30 09:22:17 wiz Exp $
.\"
-.Dd May 11, 2025
+.Dd September 3, 2025
.Dt UMB 4
.Os
.Sh NAME
.Nm umb
.Nd USB Mobile Broadband Interface Model (MBIM) cellular modem driver
.Sh SYNOPSIS
-To compile this driver into the kernel,
-place the following lines in your
-kernel configuration file:
-.Bd -ragged -offset indent
.Cd "device usb"
.Cd "device umb"
-.Ed
.Pp
-Alternatively, to load the driver as a
-module at boot time, place the following line in
+In
.Xr loader.conf 5 :
-.Bd -literal -offset indent
-umb_load="YES"
-.Ed
-.Pp
-If neither of the above is done, the driver will automatically be loaded
-by devd(8) when the device is connected.
+.Cd umb_load="YES"
.Sh DESCRIPTION
The
.Nm
driver provides support for USB MBIM devices.
+If the appropriate hardware is detected,
+the driver will be loaded automatically by
+.Xr devmatch 8 .
+To load the driver manually,
+.Cm load
+it in
+.Xr loader.conf 5
+or at the
+.Xr loader 8
+prompt.
.Pp
MBIM devices establish connections via cellular networks such as
GPRS, UMTS, and LTE.
diff --git a/share/man/man4/usbhid.4 b/share/man/man4/usbhid.4
index 5109bbe72de6..0b2e7230e3f4 100644
--- a/share/man/man4/usbhid.4
+++ b/share/man/man4/usbhid.4
@@ -21,7 +21,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 12, 2021
+.Dd October 2, 2025
.Dt USBHID 4
.Os
.Sh NAME
@@ -60,16 +60,20 @@ and make its priority greater than other USB HID drivers, such as
.Xr ums 4 ,
and
.Xr uhid 4 .
-Default is 0.
+Default is 1.
.El
.Bl -tag -width indent
.It Va hw.usb.usbhid.debug
Debug output level, where 0 is debugging disabled and larger values increase
debug message verbosity.
Default is 0.
+Debug messages are printed on the system console and can be viewed using
+.Xr dmesg 8 .
.El
.Sh SEE ALSO
.Xr ehci 4 ,
+.Xr hkbd 4 ,
+.Xr hms 4 ,
.Xr ohci 4 ,
.Xr uhci 4 ,
.Xr usb 4 ,
@@ -80,6 +84,8 @@ The
.Nm
driver first appeared in
.Fx 13.0 .
+It was enabled by default in
+.Fx 15.0 .
.Sh AUTHORS
.An -nosplit
The
diff --git a/share/man/man4/vt.4 b/share/man/man4/vt.4
index ad050bdd0d59..21d69bf9d495 100644
--- a/share/man/man4/vt.4
+++ b/share/man/man4/vt.4
@@ -1,4 +1,4 @@
-.\"-
+.\"
.\" SPDX-License-Identifier: BSD-2-Clause
.\"
.\" Copyright (c) 2014 Warren Block
@@ -26,32 +26,32 @@
.\" SUCH DAMAGE.
.\"
.Dd July 7, 2024
-.Dt "VT" 4
+.Dt VT 4
.Os
.Sh NAME
.Nm vt
.Nd virtual terminal system video console driver
.Sh SYNOPSIS
-.Cd "options TERMINAL_KERN_ATTR=_attribute_"
-.Cd "options TERMINAL_NORM_ATTR=_attribute_"
-.Cd "options VT_MAXWINDOWS=N"
+.Cd "options TERMINAL_KERN_ATTR=<attribute>"
+.Cd "options TERMINAL_NORM_ATTR=<attribute>"
+.Cd "options VT_MAXWINDOWS=<N>"
.Cd "options VT_ALT_TO_ESC_HACK=1"
.Cd "options VT_TWOBUTTON_MOUSE"
-.Cd "options VT_FB_MAX_WIDTH=X"
-.Cd "options VT_FB_MAX_HEIGHT=Y"
+.Cd "options VT_FB_MAX_WIDTH=<X>"
+.Cd "options VT_FB_MAX_HEIGHT=<Y>"
.Cd "options SC_NO_CUTPASTE"
.Cd "device vt"
.Pp
In
.Xr loader.conf 5 :
-.Cd hw.vga.textmode=1
-.Cd hw.vga.acpi_ignore_no_vga=1
-.Cd kern.vty=vt
-.Cd kern.vt.color.<colornum>.rgb="<colorspec>"
-.Cd kern.vt.fb.default_mode="<X>x<Y>"
-.Cd kern.vt.fb.modes.<connector>="<X>x<Y>"
-.Cd kern.vt.slow_down=<delay>"
-.Cd screen.font="<X>x<Y>"
+.Cd "hw.vga.textmode=1"
+.Cd "hw.vga.acpi_ignore_no_vga=1"
+.Cd "kern.vty=vt"
+.Cd "kern.vt.color.<colornum>.rgb=<colorspec>"
+.Cd "kern.vt.fb.default_mode=<X>x<Y>"
+.Cd "kern.vt.fb.modes.<connector>=<X>x<Y>"
+.Cd "kern.vt.slow_down=<delay>"
+.Cd "screen.font=<X>x<Y>"
.Pp
In
.Xr loader.conf 5 or
@@ -130,8 +130,8 @@ These kernel options control the
.Nm
driver.
.Bl -tag -width MAXCONS
-.It Dv TERMINAL_NORM_ATTR= Ns Pa attribute
-.It Dv TERMINAL_KERN_ATTR= Ns Pa attribute
+.It Dv TERMINAL_NORM_ATTR=<attribute>
+.It Dv TERMINAL_KERN_ATTR=<attribute>
These options change the default colors used for normal and kernel
text.
Available colors are defined in
@@ -139,7 +139,7 @@ Available colors are defined in
See
.Sx EXAMPLES
below.
-.It Dv VT_MAXWINDOWS=N
+.It Dv VT_MAXWINDOWS=<N>
Set the number of virtual terminals to be created to
.Fa N .
The value defaults to 12.
@@ -152,10 +152,10 @@ In effect, this makes the right-hand mouse button perform a paste.
These options are checked in the order shown.
.It Dv SC_NO_CUTPASTE
Disable mouse support.
-.It VT_FB_MAX_WIDTH=X
+.It VT_FB_MAX_WIDTH=<X>
Set the maximum width to
.Fa X .
-.It VT_FB_MAX_HEIGHT=Y
+.It VT_FB_MAX_HEIGHT=<Y>
Set the maximum height to
.Fa Y .
.El
@@ -166,7 +166,7 @@ console device,
These options will be removed in a future
.Fx
version.
-.Bl -column -offset indent ".Sy vt VT_TWOBUTTON_MOUSE" ".Sy SC_TWOBUTTON_MOUSE"
+.Bl -column -offset indent "TERMINAL_KERN_ATTR" "SC_KERNEL_CONS_ATTR"
.It Sy vt Option Name Ta Sy sc Option Name
.It Dv TERMINAL_KERN_ATTR Ta Dv SC_KERNEL_CONS_ATTR
.It Dv TERMINAL_NORM_ATTR Ta Dv SC_NORM_ATTR
@@ -230,7 +230,7 @@ Note that
is not compatible with
.Xr UEFI 8
boot.
-.It Va kern.vt.color. Ns Ar colornum Ns Va .rgb
+.It Va kern.vt.color. Ns Ar colornum Ns . Ns Va rgb
Set this value to override default palette entry for color
.Pa colornum
which should be in a range from 0 to 15 inclusive.
@@ -245,15 +245,15 @@ Note: The
.Nm
VGA hardware driver does not support palette configuration.
.It Va kern.vt.fb.default_mode
-Set this value to a graphic mode to override the default mode picked by the
+Set this value to a graphic mode to override the default picked by the
.Nm
backend.
The mode is applied to all output connectors.
This is currently only supported by the
.Cm vt_fb
backend when it is paired with a KMS video driver.
-.It Va kern.vt.fb.modes. Ns Pa connector_name
-Set this value to a graphic mode to override the default mode picked by the
+.It Va kern.vt.fb.modes.<connector_name>
+Set this value to a graphic mode to override the default picked by the
.Nm
backend.
This mode is applied to the output connector
diff --git a/share/man/man4/vtnet.4 b/share/man/man4/vtnet.4
index 270366488a98..fd41b36882a6 100644
--- a/share/man/man4/vtnet.4
+++ b/share/man/man4/vtnet.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd January 22, 2012
+.Dd September 30, 2025
.Dt VTNET 4
.Os
.Sh NAME
@@ -54,6 +54,20 @@ TCP segmentation offload (TSO), TCP large receive offload (LRO),
hardware VLAN tag stripping/insertion features, a multicast hash filter,
as well as Jumbo Frames (up to 9216 bytes), which can be
configured via the interface MTU setting.
+.Pp
+Two flavors of TCP LRO are supported:
+Hardware TCP LRO, which is performed by the host providing TCP segments larger
+than the MTU to the guest, and Software TCP LRO, which is performed by the
+network stack of the guest processing TCP segments in an optimized way.
+Only one flavour of TCP LRO should be used.
+Since hardware TCP LRO can have bad interactions with IP forwarding and
+software TCP LRO mitigates several drawbacks of hardware TCP LRO, the default
+setting is to disable hardware TCP LRO.
+See the loader tunable
+.Va hw.vtnet. Ns Ar X Ns Va .lro_disable .
+.Pp
+TCP/UDP receive checksum offload cannot be configured independently for IPv4
+and IPv6.
Selecting an MTU larger than 1500 bytes with the
.Xr ifconfig 8
utility configures the adapter to receive and transmit Jumbo Frames.
@@ -68,16 +82,32 @@ prompt before booting the kernel or stored in
.Bl -tag -width "xxxxxx"
.It Va hw.vtnet.csum_disable
.It Va hw.vtnet. Ns Ar X Ns Va .csum_disable
-This tunable disables receive and send checksum offload.
+This tunable disables receive and transmit checksum offloading for TCP and
+UDP.
+This also implies that TCP segmentation offloading and large receive offload
+are disabled.
The default value is 0.
+.It Va hw.vtnet.fixup_needs_csum
+.It Va hw.vtnet. Ns Ar X Ns Va .fixup_needs_csum
+This tunable enforces the calculation of a valid TCP or UDP checksum for
+packets received with
+.Dv VIRTIO_NET_HDR_F_NEEDS_CSUM
+being set in the
+.Va flags
+field of the structure
+.Vt struct virtio_net_hdr .
+It also marks the checksum as being correct in the mbuf packet header.
+The default value is 0.
+This tunable is deprecated and will be removed in
+.Fx 16 .
.It Va hw.vtnet.tso_disable
.It Va hw.vtnet. Ns Ar X Ns Va .tso_disable
-This tunable disables TSO.
+This tunable disables TCP segmentation offloading.
The default value is 0.
.It Va hw.vtnet.lro_disable
.It Va hw.vtnet. Ns Ar X Ns Va .lro_disable
-This tunable disables LRO.
-The default value is 0.
+This tunable disables hardware TCP LRO.
+The default value is 1.
.It Va hw.vtnet.mq_disable
.It Va hw.vtnet. Ns Ar X Ns Va .mq_disable
This tunable disables multiqueue.
@@ -91,11 +121,157 @@ The number of queue pairs used is the lesser of the maximum supported by the
driver and the hypervisor, the number of CPUs present in the guest, and this
tunable if not zero.
The default value is 0.
+.It Va hw.vtnet.tso_maxlen
+.It Va hw.vtnet. Ns Ar X Ns Va .tso_maxlen
+This tunable sets the TSO burst limit.
+The default value is 65535.
+.It Va hw.vtnet.rx_process_limit
+.It Va hw.vtnet. Ns Ar X Ns Va .rx_process_limit
+This tunable sets the number of RX segments processed in one pass.
+The default value is 1024.
+.It Va hw.vtnet.lro_entry_count
+.It Va hw.vtnet. Ns Ar X Ns Va .lro_entry_count
+This tunable sets the software TCP LRO entry count.
+The default value is 128, the minimum value is 8.
+.It Va hw.vtnet.lro_mbufq_depth
+.It Va hw.vtnet. Ns Ar X Ns Va .lro_mbufq_depth
+This tunable sets the depth of the software TCP LRO mbuf queue.
+The default value is 0.
.It Va hw.vtnet.altq_disable
This tunable disables ALTQ support, allowing the use of multiqueue instead.
This option applies to all interfaces.
The default value is 0.
.El
+.Sh TRANSMIT QUEUE STATISTICS
+For each transmit queue of each interface the following read-only statistics
+are provided:
+.Bl -tag -width "xxxxxx"
+.It Va dev.vtnet. Ns Ar X Ns Va .txq Ns Ar Y Ns Va .rescheduled
+The number of times the transmit interrupt handler was rescheduled.
+.It Va dev.vtnet. Ns Ar X Ns Va .txq Ns Ar Y Ns Va .tso
+The number of times TCP segment offloading was performed.
+.It Va dev.vtnet. Ns Ar X Ns Va .txq Ns Ar Y Ns Va .csum
+The number of times transmit checksum offloading for UDP or TCP was
+performed.
+.It Va dev.vtnet. Ns Ar X Ns Va .txq Ns Ar Y Ns Va .omcasts
+The number of multicast packets that were transmitted.
+.It Va dev.vtnet. Ns Ar X Ns Va .txq Ns Ar Y Ns Va .obytes
+The number of bytes that were transmitted (based on Ethernet frames).
+.It Va dev.vtnet. Ns Ar X Ns Va .txq Ns Ar Y Ns Va .opackets
+The number of packets that were transmitted (Ethernet frames).
+.El
+.Sh RECEIVE QUEUE STATISTICS
+For each receive queue of each interface the following read-only statistics
+are provided:
+.Bl -tag -width "xxxxxx"
+.It Va dev.vtnet. Ns Ar X Ns Va .rxq Ns Ar Y Ns Va .rescheduled
+The number of times the receive interrupt handler was rescheduled.
+.It Va dev.vtnet. Ns Ar X Ns Va .rxq Ns Ar Y Ns Va .host_lro
+The number of times TCP large receive offload was performed.
+.It Va dev.vtnet. Ns Ar X Ns Va .rxq Ns Ar Y Ns Va .csum_failed
+The number of times a packet with a request for receive or transmit checksum
+offloading was received and this request failed.
+The different reasons for the failure are counted by
+.Va dev.vtnet. Ns Ar X Ns Va .rx_csum_inaccessible_ipproto ,
+.Va dev.vtnet. Ns Ar X Ns Va .rx_csum_bad_ipproto ,
+.Va dev.vtnet. Ns Ar X Ns Va .rx_csum_bad_ethtype ,
+and
+.Va dev.vtnet. Ns Ar X Ns Va .rx_csum_bad_offset .
+.It Va dev.vtnet. Ns Ar X Ns Va .rxq Ns Ar Y Ns Va .csum
+The number of times receive checksum offloading for UDP or TCP was performed.
+.It Va dev.vtnet. Ns Ar X Ns Va .rxq Ns Ar Y Ns Va .ierrors
+The number of times an error occurred during input processing.
+.It Va dev.vtnet. Ns Ar X Ns Va .rxq Ns Ar Y Ns Va .iqdrops
+The number of times a packet was dropped during input processing.
+.It Va dev.vtnet. Ns Ar X Ns Va .rxq Ns Ar Y Ns Va .ibytes
+The number of bytes that were received (based on Ethernet frames).
+.It Va dev.vtnet. Ns Ar X Ns Va .rxq Ns Ar Y Ns Va .ipackets
+The number of packets that were received (Ethernet frames).
+.El
+.Sh INTERFACE TRANSMIT STATISTICS
+For each interface the following read-only transmit statistics are provided:
+.Bl -tag -width "xxxxxx"
+.It Va dev.vtnet. Ns Ar X Ns Va .tx_task_rescheduled
+The sum of
+.Va dev.vtnet. Ns Ar X Ns Va .txq Ns Ar Y Ns Va .rescheduled
+over all transmit queues of the interface.
+.It Va dev.vtnet. Ns Ar X Ns Va .tx_tso_offloaded
+The sum of
+.Va dev.vtnet. Ns Ar X Ns Va .txq Ns Ar Y Ns Va .tso
+over all transmit queues of the interface.
+.It Va dev.vtnet. Ns Ar X Ns Va .tx_csum_offloaded
+The sum of
+.Va dev.vtnet. Ns Ar X Ns Va .txq Ns Ar Y Ns Va .csum
+over all transmit queues of the interface.
+.It Va dev.vtnet. Ns Ar X Ns Va .tx_defrag_failed
+The number of times an attempt to defragment an mbuf chain failed during a
+transmit operation.
+.It Va dev.vtnet. Ns Ar X Ns Va .tx_defragged
+The number of times an mbuf chain was defragmented during a transmit operation.
+.It Va dev.vtnet. Ns Ar X Ns Va .tx_tso_without_csum
+The number of times TCP segment offloading was attempted without transmit
+checksum offloading.
+.It Va dev.vtnet. Ns Ar X Ns Va .tx_tso_not_tcp
+The number of times TCP segment offloading was attempted for a non-TCP packet.
+.It Va dev.vtnet. Ns Ar X Ns Va .tx_csum_proto_mismatch
+The number of times the IP protocol version of the transmit checksum
+offloading request did not match the IP protocol version of the packet.
+.It Va dev.vtnet. Ns Ar X Ns Va .tx_csum_unknown_ethtype
+The number of times a transmit offload operation was requested for an
+ethernet frame for which the EtherType was neither IPv4 nor IPv6
+(considering simple VLAN tagging).
+.El
+.Sh INTERFACE RECEIVE STATISTICS
+For each interface the following read-only receive statistics are provided:
+.Bl -tag -width "xxxxxx"
+.It Va dev.vtnet. Ns Ar X Ns Va .rx_task_rescheduled
+The sum of
+.Va dev.vtnet. Ns Ar X Ns Va .rxq Ns Ar Y Ns Va .rescheduled
+over all receive queues of the interface.
+.It Va dev.vtnet. Ns Ar X Ns Va .rx_csum_offloaded
+The sum of
+.Va dev.vtnet. Ns Ar X Ns Va .rxq Ns Ar Y Ns Va .csum
+over all receive queues of the interface.
+.It Va dev.vtnet. Ns Ar X Ns Va .rx_csum_failed
+The sum of
+.Va dev.vtnet. Ns Ar X Ns Va .rxq Ns Ar Y Ns Va .csum_failed
+over all receive queues of the interface.
+.It Va dev.vtnet. Ns Ar X Ns Va .rx_csum_inaccessible_ipproto
+The number of times a packet with a request for receive or transmit checksum
+offloading was received where the IP protocol was not accessible.
+.It Va dev.vtnet. Ns Ar X Ns Va .rx_csum_bad_offset
+The number of times fixing the checksum required by
+.Va hw.vtnet.fixup_needs_csum
+or
+.Va hw.vtnet. Ns Ar X Ns Va .fixup_needs_csum
+was attempted for a packet where the csum is not located in the first mbuf.
+.It Va dev.vtnet. Ns Ar X Ns Va .rx_csum_bad_ipproto
+The number of times a packet with a request for receive or transmit checksum
+offloading was received where the IP protocol was neither TCP nor UDP.
+.It Va dev.vtnet. Ns Ar X Ns Va .rx_csum_bad_ethtype
+The number of times a packet with a request for receive or transmit checksum
+offloading was received where the EtherType was neither IPv4 nor IPv6.
+.It Va dev.vtnet. Ns Ar X Ns Va .rx_mergeable_failed
+The number of times receiving a mergable buffer failed.
+.It Va dev.vtnet. Ns Ar X Ns Va .rx_enq_replacement_failed
+The number of times the enqueuing the replacement receive mbuf chain failed.
+.It Va dev.vtnet. Ns Ar X Ns Va .rx_frame_too_large
+The number of times the frame was loger than the mbuf chain during large
+receive offload without mergeable buffers.
+.It Va dev.vtnet. Ns Ar X Ns Va .mbuf_alloc_failed
+The number of times an mbuf cluster allocation for the receive buffer failed.
+.El
+.Sh INTERFACE CONFIGURATION PARAMETER
+For each interface the following read-only configuration parameters are
+provided:
+.Bl -tag -width "xxxxxx"
+.It Va dev.vtnet. Ns Ar X Ns Va .act_vq_pairs
+The number of active virtqueue pairs.
+.It Va dev.vtnet. Ns Ar X Ns Va .req_vq_pairs
+The number of requested virtqueue pairs.
+.It Va dev.vtnet. Ns Ar X Ns Va .max_vq_pairs
+The maximum number of supported virtqueue pairs.
+.El
.Sh SEE ALSO
.Xr arp 4 ,
.Xr netintro 4 ,
diff --git a/share/man/man4/watchdog.4 b/share/man/man4/watchdog.4
index b74640de8469..fc2d600328dd 100644
--- a/share/man/man4/watchdog.4
+++ b/share/man/man4/watchdog.4
@@ -41,24 +41,22 @@ The device
supports several optional
.Xr ioctl 2
calls for configuration, and
-responds to a single operational
+responds to a set of operational
.Xr ioctl 2
-call,
-.Dv WDIOCPATPAT .
-It takes a single argument which represents a timeout value specified as a
-power of two nanoseconds, or-ed with a flag selecting active or passive control
-of the watchdog.
+calls:
+.Bl -tag -width "WDIOC_CONTROL int "
+.It Dv WDIOCPATPAT
+Pat the watchdog.
+.It Dv WDIOC_CONTROL
+Enable, disable, or reset the watchdog.
+.El
.Pp
-.Dv WD_ACTIVE
-indicates that the
-.Nm
-will be kept from timing out from userland, for instance by the
-.Xr watchdogd 8
-daemon.
-.Dv WD_PASSIVE
-indicates that the
-.Nm
-will be kept from timing out from the kernel.
+The
+.Dv WDIOCPATPAT
+.Xr ioctl 2
+call takes a single argument which represents a timeout value specified as a
+.Vt sbintime_t
+of the timeout period for the watchdog.
.Pp
The
.Dv WDIOCPATPAT
@@ -77,27 +75,43 @@ none of
implementations support the timeout length, all watchdogs are disabled and must
be explicitly re-enabled.
.Pp
-To disable the watchdogs pass
-.Dv WD_TO_NEVER .
+To disable the watchdogs use the
+.Dv WDIOC_CONTROL
+.Xr ioctl 2
+call with the
+.Dv WD_CTRL_DISABLE
+flag.
If disarming the watchdog(s) failed an error is returned.
The watchdog might
still be armed!
+To reenable the watchdogs use the
+.Dv WDIOC_CONTROL
+.Xr ioctl 2
+call with the
+.Dv WD_CTRL_ENABLE
+flag.
+Another way to pat the watchdog is with the
+.Dv WDIOC_CONTROL
+.Xr ioctl 2
+call passing the
+.Dv WDIOC_CTRL_RESET
+flag.
.Pp
The optional configuration
.Xr ioctl 2
commands are listed here, along with the type of the parameter used.
Examples of their use can be found in
.Xr watchdogd 8 .
-.Bl -tag -width "WDIOC_SETSOFTTIMEOUTACT int "
-.It Dv WDIOC_SETTIMEOUT Fa int
+.Bl -tag -width "WDIOC_GETPRETTIMEOUT sbintime_t"
+.It Dv WDIOC_SETTIMEOUT Fa sbintime_t
set/reset the timer
-.It Dv WDIOC_GETTIMEOUT Fa int
+.It Dv WDIOC_GETTIMEOUT Fa sbintime_t
get total timeout
-.It Dv WDIOC_GETTIMELEFT Fa int
+.It Dv WDIOC_GETTIMELEFT Fa sbintime_t
get time left
-.It Dv WDIOC_GETPRETIMEOUT Fa int
+.It Dv WDIOC_GETPRETIMEOUT Fa sbintime_t
get the pre-timeout
-.It Dv WDIOC_SETPRETIMEOUT Fa int
+.It Dv WDIOC_SETPRETIMEOUT Fa sbintime_t
set the pre-timeout
.It Dv WDIOC_SETPRETIMEOUTACT Fa int
Set the action when a pre-timeout occurs (see
diff --git a/share/man/man4/wlan.4 b/share/man/man4/wlan.4
index 4cd1bfbdc9d5..ff983c66c1cb 100644
--- a/share/man/man4/wlan.4
+++ b/share/man/man4/wlan.4
@@ -23,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd May 5, 2023
+.Dd June 13, 2025
.Dt WLAN 4
.Os
.Sh NAME
@@ -44,7 +44,7 @@ module is required by all native 802.11 drivers.
.Nm
supports multi-mode devices capable of
operating in both 2.4GHz and 5GHz bands and supports numerous
-802.11 standards: 802.11a, 802.11b, 802.11g, 802.11n, and 802.11s (Draft 3.0).
+802.11 standards: 802.11a, 802.11b, 802.11g, 802.11n, 802.11ac, and 802.11s (Draft 3.0).
The WPA, 802.11i, and 802.1x security protocols are supported
through a combination of in-kernel code and user-mode applications.
The WME/WMM multi-media protocols are supported entirely within
@@ -174,6 +174,7 @@ Stations implementing earlier drafts (e.g., Linux) may be incompatible.
.Xr iwlwifi 4 ,
.Xr iwm 4 ,
.Xr iwn 4 ,
+.Xr iwx 4 ,
.Xr malo 4 ,
.Xr mwl 4 ,
.Xr netintro 4 ,
@@ -181,6 +182,7 @@ Stations implementing earlier drafts (e.g., Linux) may be incompatible.
.Xr ral 4 ,
.Xr rsu 4 ,
.Xr rtw88 4 ,
+.Xr rtw89 4 ,
.Xr rtwn 4 ,
.Xr rum 4 ,
.Xr run 4 ,
@@ -190,6 +192,7 @@ Stations implementing earlier drafts (e.g., Linux) may be incompatible.
.Xr urtw 4 ,
.Xr wlan_acl 4 ,
.Xr wlan_ccmp 4 ,
+.Xr wlan_gcmp 4 ,
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4 ,
.Xr wlan_xauth 4 ,
diff --git a/share/man/man4/wlan_ccmp.4 b/share/man/man4/wlan_ccmp.4
index f0efa86d2fdb..ffd4da8694e9 100644
--- a/share/man/man4/wlan_ccmp.4
+++ b/share/man/man4/wlan_ccmp.4
@@ -53,6 +53,7 @@ calculations in hardware, the
module will do the work.
.Sh SEE ALSO
.Xr wlan 4 ,
+.Xr wlan_gcmp 4 ,
.Xr wlan_tkip 4 ,
.Xr wlan_wep 4
.Sh STANDARDS
diff --git a/share/man/man4/wlan_gcmp.4 b/share/man/man4/wlan_gcmp.4
new file mode 100644
index 000000000000..a7657a9ad91b
--- /dev/null
+++ b/share/man/man4/wlan_gcmp.4
@@ -0,0 +1,72 @@
+.\"
+.\" Copyright (c) 2004 Sam Leffler
+.\" All rights reserved.
+.\" Copyright (c) 2025 The FreeBSD Foundation
+.\"
+.\" Portions of this documentation were written by Bj\xc3\xb6rn Zeeb
+.\" under sponsorship from the FreeBSD Foundation.
+.\"
+.\" 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.
+.\"
+.\" Based on wlan_ccmp.4.
+.\"
+.Dd June 13, 2025
+.Dt WLAN_GCMP 4
+.Os
+.Sh NAME
+.Nm wlan_gcmp
+.Nd AES-GCMP crypto support for 802.11 devices
+.Sh SYNOPSIS
+.Cd "device wlan_gcmp"
+.Sh DESCRIPTION
+The
+.Nm
+module handles the
+.Em Galois/Counter Mode Protocol
+cryptographic requirements of the IEEE 802.11ad and WPA2/WPA3 protocols.
+It does encapsulation and decapsulation of GCMP-encoded 802.11 frames
+and optionally calculates the AES-GCMP cipher.
+The
+.Nm
+module is an 802.11 cryptographic plugin module for use by the
+.Xr wlan 4
+module.
+This module is automatically loaded if an AES-GCMP key is configured;
+typically by a WPA supplicant program such as wpa_supplicant,
+or a WPA authenticator program such as
+.Nm hostapd .
+Should the underlying network device not be capable of doing the AES-GCMP
+calculations in hardware, the
+.Nm
+module will do the work.
+.Sh SEE ALSO
+.Xr wlan 4 ,
+.Xr wlan_ccmp 4 ,
+.Xr wlan_tkip 4 ,
+.Xr wlan_wep 4
+.Sh STANDARDS
+More information can be found in the IEEE 802.11, and WPA Standards.
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 15.0 .
diff --git a/share/man/man4/wlan_tkip.4 b/share/man/man4/wlan_tkip.4
index 2e812ceffe9a..e74c24d45614 100644
--- a/share/man/man4/wlan_tkip.4
+++ b/share/man/man4/wlan_tkip.4
@@ -54,6 +54,7 @@ module will do the work.
.Sh SEE ALSO
.Xr wlan 4 ,
.Xr wlan_ccmp 4 ,
+.Xr wlan_gcmp 4 ,
.Xr wlan_wep 4
.Sh STANDARDS
More information can be found in the IEEE 802.11, WPA, and 802.11i Standards.
diff --git a/share/man/man4/wlan_wep.4 b/share/man/man4/wlan_wep.4
index 4e5887bbc35e..d83ef23e7a4e 100644
--- a/share/man/man4/wlan_wep.4
+++ b/share/man/man4/wlan_wep.4
@@ -51,6 +51,7 @@ module will do the work.
.Sh SEE ALSO
.Xr wlan 4 ,
.Xr wlan_ccmp 4 ,
+.Xr wlan_gcmp 4 ,
.Xr wlan_tkip 4
.Sh STANDARDS
More information can be found in the IEEE 802.11 Standard.
diff --git a/share/man/man4/wsp.4 b/share/man/man4/wsp.4
index b08449f9e71f..50ada937e104 100644
--- a/share/man/man4/wsp.4
+++ b/share/man/man4/wsp.4
@@ -55,51 +55,58 @@ A single-finger press generates a left button click.
A two-finger press maps to the right button; whereas a three-finger
press gets treated as a middle button click.
.Pp
-The trackpad functions with presses and taps. A press is a full-forced
-press which causes a physical lowering of the trackpad. A tap is a
+The trackpad functions with presses and taps.
+A press is a full-forced
+press which causes a physical lowering of the trackpad.
+A tap is a
touch of the trackpad which does not depress the physical trackpad.
.Pp
The
.Nm
-driver supports receiving evdev input device data if enabled. This data
+driver supports receiving evdev input device data if enabled.
+This data
is used for extended usage of the touchpad like multi-finger support,
-pressure detection, tap support, and gestures. At least the second bit
-of the
+pressure detection, tap support, and gestures.
+At least the second bit of the
.Xr sysctl 8
tunable
.Va kern.evdev.rcpt_mask
-must be set. This can be enabled with
+must be set.
+This can be enabled with
.Va kern.evdev.rcpt_mask=3 .
.Pp
Vertical scrolling (z-axis) is enabled by default with a two-finger
tap and the movement of a finger up and down.
Horizontal scrolling (t-axis) is not natively supported by the sysmouse
-protocol, therefore must be enabled with evdev data. This can be enabled
-with the
+protocol, therefore must be enabled with evdev data.
+This can be enabled with the
.Xr sysctl 8
tunable
-.Va kern.evdev.sysmouse_t_axis=3.
+.Va kern.evdev.sysmouse_t_axis=3 .
Horizontal scrolling can be used with a two-finger tap and the movement
-of a finger from side to side. The
+of a finger from side to side.
+The
.Xr sysctl 8
tunable
.Va hw.usb.wsp.t_factor
must be greater than 0 for horizontal scrolling to be enabled, too.
.Pp
Horizontal swiping with a three-finger tap is registered as mouse buttons
-8 and 9, depending on the direction. These buttons default to backwards
-and forwards keyboard events.
+8 and 9, depending on the direction.
+These buttons default to backwards and forwards keyboard events.
.Sh SYSCTL VARIABLES
The following variables are available as
.Xr sysctl 8
tunables:
.Bl -tag -width indent
.It Va hw.usb.wsp.scale_factor
-Controls the pointer sensitivity. Default is 12.
+Controls the pointer sensitivity.
+Default is 12.
.El
.Bl -tag -width indent
.It Va hw.usb.wsp.enable_single_tap_clicks
-Enables single-tap to register as a left-click. Default is 1 (enabled).
+Enables single-tap to register as a left-click.
+Default is 1 (enabled).
.El
.Bl -tag -width indent
.It Va hw.usb.wsp.enable_single_tap_movement
@@ -114,45 +121,55 @@ finger (a lower value is used for palm detection). Default is 1900.
.Bl -tag -width indent
.It Va max_scroll_finger_distance
Specifies the maximum distance between two fingers where z-axis
-and t-axis movements are registered. Z-axis and T-axis movements
+and t-axis movements are registered.
+Z-axis and T-axis movements
are vertical and horizontal movements with more than one finger
-tapped (not clicked), respectively. Default is 8192.
+tapped (not clicked), respectively.
+Default is 8192.
.El
.Bl -tag -width indent
.It Va hw.usb.wsp.max_double_tap_distance
Specifies the maximum distance between two fingers that a two-finger
-click will be registered as a right-click. Default is 2500.
+click will be registered as a right-click.
+Default is 2500.
.El
.Bl -tag -width indent
.It Va hw.usb.wsp.scr_threshold
Specifies the minimum horizontal or vertical distance required to
-register as a scrolling gesture. Default is 20.
+register as a scrolling gesture.
+Default is 20.
.El
.Bl -tag -width indent
.It Va hw.usb.wsp.z_factor
-Z-axis sensitivity. Default is 5.
+Z-axis sensitivity.
+Default is 5.
.El
.Bl -tag -width indent
.It Va hw.usb.wsp.z_invert
-Z-axis inversion. Default is 0 (disabled).
+Z-axis inversion.
+Default is 0 (disabled).
.El
.Bl -tag -width indent
.It Va hw.usb.wsp.t_factor
-T-axis sensitivity. Default is 0 (disabled).
+T-axis sensitivity.
+Default is 0 (disabled).
.El
.Bl -tag -width indent
.It Va hw.usb.wsp.t_invert
-T-axis inversion. Default is 0 (disabled).
+T-axis inversion.
+Default is 0 (disabled).
.El
.Bl -tag -width indent
.It Va hw.usb.wsp.scroll_finger_count
Specifies the number of tapped fingers which registers as a scrolling
-movement. Default is 2.
+movement.
+Default is 2.
.El
.Bl -tag -width indent
.It Va hw.usb.wsp.horizontal_swipe_finger_count
Speifies the number of tapped fingers which registers as a swipe
-gesture. Default is 3.
+gesture.
+Default is 3.
.El
.Bl -tag -width indent
.It Va hw.usb.wsp.pressure_touch_threshold
@@ -173,7 +190,9 @@ Default is 120.
.It Va hw.usb.wsp.debug
Specifies the
.Nm
-driver debugging level (0-3). Default is 1.
+driver debugging level (0-3).
+Default is 1.
+.El
.Sh FILES
.Nm
creates a blocking pseudo-device file,
@@ -184,8 +203,7 @@ or
.Em mousesystems
type device--see
.Xr moused 8
-for an explanation of these mouse
-types.
+for an explanation of these mouse types.
.Sh SEE ALSO
.Xr sysmouse 4 ,
.Xr usb 4 ,