.\"-
.\" Copyright (c) 2023-2024 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.
.\"
.\" $FreeBSD$
.\"
.Dd October 12, 2024
.Dt RTW89 4
.Os
.Sh NAME
.Nm rtw89
.Nd Realtek IEEE 802.11ax wireless network driver
.Sh SYNOPSIS
The driver will auto-load without any user interaction using
.Xr devmatch 8
if enabled in
.Xr rc.conf 5 .
.Pp
Only if auto-loading is explicitly disabled, place the following
lines in
.Xr rc.conf 5
to manually load the driver as a module at boot time:
.Bd -literal -offset indent
kld_list="${kld_list} if_rtw89"
.Ed
.Pp
It is discouraged to load the driver from
.Xr loader 8 .
.Sh DESCRIPTION
The
.Nm
driver is derived from Realtek's Linux rtw89 driver.
.Pp
This driver requires firmware to be loaded before it will work.
The package
.Pa wifi-firmware-rtw89-kmod
from the
.Pa ports/net/wifi-firmware-rtw89-kmod
port needs to be installed before the driver is loaded.
Otherwise no
.Xr wlan 4
interface can be created using
.Xr ifconfig 8 .
One should use
.Xr fwget 8
to install the correct firmware package.
.Pp
The driver uses the
.\" No LinuxKPI man pages so no .Xr here.
.Em linuxkpi_wlan
and
.Em linuxkpi
compat framework to bridge between the Linux and
native
.Fx
driver code as well as to the native
.Xr net80211 4
wireless stack.
.Pp
While
.Nm
supports all 802.11 a/b/g/n/ac and ax
the compatibility code currently only supports 802.11 a/b/g modes.
Support for 802.11 n/ac is to come.
.Sh LOADER TUNABLES
.Bl -tag -width indent
.It Va compat.linuxkpi.skb.mem_limit
If you are running a 64bit system with more than 4GB of main memory
you need to set this tunable to
.Sy 1
in
.Xr loader.conf 5
and reboot once to make it effective.
This tunable will work around a problem with DMA and limit allocations
for network buffer memory to the lower 32bit of physical memory and
make the driver work.
.El
.Sh HARDWARE
The
.Nm
driver supports PCIe devices with the following chipsets:
.Pp
.Bl -tag -width Ds -offset indent -compact
.It Realtek 8851BE Wi-Fi 6  (RTL8851BE)
.It Realtek 8852AE Wi-Fi 6  (RTL8852AE)
.It Realtek 8852BE Wi-Fi 6  (RTL8852BE)
.It Realtek 8852CE Wi-Fi 6E (RTL8852CE)
.It Realtek 8922AE Wi-Fi 7  (RTL8922AE)
.El
.Sh BUGS
Certainly.
.Pp
Does not seem to work (reliably) on machines with more than 4GB of
main memory.
See in the
.Sx LOADER TUNABLES
section above.
.Sh SEE ALSO
.Xr wlan 4 ,
.Xr fwget 8 ,
.Xr ifconfig 8 ,
.Xr wpa_supplicant 8
.Sh HISTORY
The
.Nm
driver first appeared in
.Fx 14.2 .