Skip to content

Commit

Permalink
rtw89: add man page and hook driver up to the build
Browse files Browse the repository at this point in the history
After two years, add the initial man page and hook Realteks rtw89
driver up to the build for more people to test given successful
reports.
devd.conf is already providing support based on the rtw<n+> regex.
The driver uses the LinuxKPI compat layer.

Firmware is provided by ports: net/wifi-firmware-rtw89-kmod or
one of the flavours.  People are advised to used fwget(8) to
automatically install the correct firmware for their chipset.

Please note that for the moment the driver requires a tunable to
be set in loader.conf: compat.linuxkpi.skb.mem_limit=1

Many thanks to everyone who in the last two years helped testing,
debugged, submitted patches to get the driver to this stage where
initial functionality seems working.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
  • Loading branch information
Bjoern A. Zeeb authored and Bjoern A. Zeeb committed Oct 11, 2024
1 parent ce15215 commit 310c31d
Show file tree
Hide file tree
Showing 3 changed files with 129 additions and 0 deletions.
1 change: 1 addition & 0 deletions share/man/man4/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -494,6 +494,7 @@ MAN= aac.4 \
rtnetlink.4 \
rtsx.4 \
rtw88.4 \
rtw89.4 \
rtwn.4 \
rtwnfw.4 \
rtwn_pci.4 \
Expand Down
126 changes: 126 additions & 0 deletions share/man/man4/rtw89.4
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
.\"-
.\" 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 10, 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 802.11ax wireless 8851be (RTL8851BE)
.It Realtek 802.11ax wireless 8852ae (RTL8852AE)
.It Realtek 802.11ax wireless 8852be (RTL8852BE)
.It Realtek 802.11ax wireless 8852ce (RTL8852CE)
.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 .
2 changes: 2 additions & 0 deletions sys/modules/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,7 @@ SUBDIR= \
${_rockchip} \
rtsx \
${_rtw88} \
${_rtw89} \
rtwn \
rtwn_pci \
rtwn_usb \
Expand Down Expand Up @@ -573,6 +574,7 @@ _iwlwifi= iwlwifi
_iwlwififw= iwlwififw
.endif
_rtw88= rtw88
_rtw89= rtw89
_vmware= vmware
.endif

Expand Down

0 comments on commit 310c31d

Please sign in to comment.