xref: /freebsd/share/man/man4/iwlwifi.4 (revision 24e4dcf4ba5e9dedcf89efd358ea3e1fe5867020)
1.\"
2.\" SPDX-License-Identifier: BSD-2-Clause
3.\"
4.\" Copyright (c) 2021-2025 The FreeBSD Foundation
5.\"
6.\" This documentation was written by Bj\xc3\xb6rn Zeeb under sponsorship from
7.\" the FreeBSD Foundation.
8.\"
9.\" Redistribution and use in source and binary forms, with or without
10.\" modification, are permitted provided that the following conditions
11.\" are met:
12.\" 1. Redistributions of source code must retain the above copyright
13.\"    notice, this list of conditions and the following disclaimer.
14.\" 2. Redistributions in binary form must reproduce the above copyright
15.\"    notice, this list of conditions and the following disclaimer in the
16.\"    documentation and/or other materials provided with the distribution.
17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28.\" SUCH DAMAGE.
29.\"
30.Dd August 19, 2025
31.Dt IWLWIFI 4
32.Os
33.Sh NAME
34.Nm iwlwifi
35.Nd Intel IEEE 802.11a/b/g/n/ac/ax/be wireless network driver
36.Sh SYNOPSIS
37The driver will auto-load without any user interaction using
38.Xr devmatch 8
39if enabled in
40.Xr rc.conf 5 .
41.Pp
42Only if auto-loading is explicitly disabled, place the following
43lines in
44.Xr rc.conf 5
45to manually load the driver as a module at boot time:
46.Bd -literal -offset indent
47kld_list="${kld_list} if_iwlwifi"
48.Ed
49.Pp
50The driver should automatically load any
51.Xr iwlwififw 4
52firmware needed for the particular chipset.
53See section
54.Sx "FILES"
55below for how to install the firmware.
56.Pp
57It is not possible to load the driver from
58.Xr loader 8 .
59.Sh DESCRIPTION
60The
61.Nm
62driver provides support for Intel Wireless network devices.
63.Pp
64.Nm
65is derived from Intel's Linux iwlwifi driver.
66The
67.Xr iwm 4
68and
69.Xr iwx 4
70drivers together are approximately equivalent to Intel's Linux iwlwifi/mvm
71driver.
72.Pp
73In addition
74.Nm
75already supports Intel's Linux iwlwifi/mld chipsets.
76.Pp
77.Nm
78still complements the
79.Xr iwn 4
80driver which supports older chipsets and would be equivalent to
81Intel's Linux iwlwifi/dvm, which
82.Nm
83does not support.
84.Pp
85The driver uses the
86.\" No LinuxKPI man pages so no .Xr here.
87.Sy linuxkpi_wlan
88and
89.Sy linuxkpi
90compat framework to bridge between the Linux and
91native
92.Fx
93driver code as well as to the native
94.Xr net80211 4
95wireless stack.
96.Sh HARDWARE
97The
98.Nm
99driver supports PCIe devices from the
100.Sy mvm
101sub-driver with the following chipset generations:
102.Pp
103.\" awk -F\\t '{ print $5 }' ~/tmp/iwlwifi_pci_ids_name.txt | \
104.\" grep -v undefined | sort -V | uniq | grep -v ^$ | \
105.\" awk '{ printf ".It\n%s\n", $0 }'
106.Bl -bullet -compact
107.It
1087000
109.It
1108000
111.It
1129000
113.It
11422000
115.It
116AX210
117.El
118.Pp
119The
120.Nm
121driver supports PCIe devices from the
122.Sy mld
123sub-driver with the following chipset generations:
124.Pp
125.Bl -bullet -compact
126.It
127BZ
128.It
129SC
130.El
131.Pp
132These chipset generations match the following common device names:
133.Pp
134.Bl -bullet -compact
135.\" --------------------------------------------------------------------
136.\" This list is manually generated from a sysctl and post-processing.
137.\" Edits will be overwritten on next update.
138.\" awk -F\\t '{ if ($2 == "") { next; } if (seen[$2]) { next; } \
139.\" seen[$2]=1; printf ".It\n%s\n", $2; }' iwlwifi_pci_ids_name.txt
140.\" --------------------------------------------------------------------
141.It
142Intel(R) Dual Band Wireless AC 7260
143.It
144Intel(R) Dual Band Wireless N 7260
145.It
146Intel(R) Wireless N 7260
147.It
148Intel(R) Dual Band Wireless AC 3160
149.It
150Intel(R) Dual Band Wireless N 3160
151.It
152Intel(R) Wireless N 3160
153.It
154Intel(R) Dual Band Wireless AC 3165
155.It
156Intel(R) Dual Band Wireless AC 3168
157.It
158Intel(R) Dual Band Wireless AC 7265
159.It
160Intel(R) Wireless N 7265
161.It
162Intel(R) Dual Band Wireless N 7265
163.It
164Intel(R) Dual Band Wireless AC 8260
165.It
166Intel(R) Dual Band Wireless N 8260
167.It
168Intel(R) Dual Band Wireless AC 4165
169.It
170Intel(R) Dual Band Wireless AC 8265
171.It
172Intel(R) Dual Band Wireless AC 8275
173.It
174Killer (R) Wireless-AC 1550 Wireless Network Adapter (9260NGW) 160MHz
175.It
176Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)
177.It
178Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
179.It
180Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz
181.It
182Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz
183.It
184Killer(R) Wi-Fi 6E AX1690s 160MHz Wireless Network Adapter (411D2W)
185.It
186Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW)
187.It
188Intel(R) Wireless-AC 9260-1
189.It
190Intel(R) Wi-Fi 6 AX200 160MHz
191.It
192Killer(R) Wi-Fi 6 AX1650w 160MHz Wireless Network Adapter (200D2W)
193.It
194Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW)
195.It
196Intel(R) Wi-Fi 6 AX201 160MHz
197.It
198Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W)
199.It
200Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)
201.It
202Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201NGW)
203.It
204Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201D2W)
205.It
206Intel(R) Wi-Fi 6E AX211 160MHz
207.It
208Intel(R) Wi-Fi 6 AX210 160MHz
209.It
210Killer(R) Wi-Fi 6E AX1675w 160MHz Wireless Network Adapter (210D2W)
211.It
212Killer(R) Wi-Fi 6E AX1675x 160MHz Wireless Network Adapter (210NGW)
213.It
214Intel(R) Wi-Fi 6E AX411 160MHz
215.It
216Killer(R) Wi-Fi 6E AX1675s 160MHz Wireless Network Adapter (211NGW)
217.It
218Killer(R) Wi-Fi 6E AX1675i 160MHz Wireless Network Adapter (211NGW)
219.It
220Intel(R) Wireless-AC 9461 160MHz
221.It
222Intel(R) Wireless-AC 9461
223.It
224Intel(R) Wireless-AC 9462 160MHz
225.It
226Intel(R) Wireless-AC 9462
227.It
228Intel(R) Wireless-AC 9560 160MHz
229.It
230Intel(R) Wireless-AC 9560
231.It
232Intel(R) Wireless-AC 9270 160MHz
233.It
234Intel(R) Wireless-AC 9270
235.It
236Intel(R) Wireless-AC 9162 160MHz
237.It
238Intel(R) Wireless-AC 9162
239.It
240Intel(R) Wireless-AC 9260 160MHz
241.It
242Intel(R) Wireless-AC 9260
243.It
244Intel(R) Wi-Fi 6 AX101
245.It
246Intel(R) Wi-Fi 6 AX203
247.It
248Intel(R) Wi-Fi 6E AX231 160MHz
249.It
250Intel(R) Wi-Fi 7 BE201 320MHz
251.It
252Intel(R) Wi-Fi 7 BE200 320MHz
253.It
254Intel(R) Wi-Fi 7 BE202 160MHz
255.It
256Intel(R) TBD Sc device
257.It
258Intel(R) TBD Sc2 device
259.It
260Intel(R) TBD Sc2f device
261.\" --------------------------------------------------------------------
262.El
263.Sh LOADER TUNABLES
264The
265.Nm
266driver supports the following
267.Xr loader 8
268tunable and read-only
269.Xr sysctl 8
270variables:
271.Bl -tag -width "compat.linuxkpi.iwlwifi_disable_11ac"
272.It Va compat.linuxkpi.iwlwifi_11n_disable
273Turn off 802.11n support in the driver.
274Default
275.Ql 1 .
276.It Va compat.linuxkpi.iwlwifi_disable_11ac
277Turn off 802.11ac support in the driver.
278Default
279.Ql 1 .
280.El
281.Pp
282The names of the tunables are derived from the Linux iwlwifi driver
283module parameters and are mapped automatically by
284.Sy linuxkpi .
285They were not adjusted so that they stay consistent with upstream
286Linux, e.g., for documentation available and problem investigations.
287This left their names inconsistent between themselves and incosistent to
288.Fx
289style.
290.Pp
291The tunables are automatically adjusted by the firmware package for
292chipsets which can enable 11n and 11ac.
293In case of problems a user may want to override the provided values
294in
295.Pa /boot/loader.conf.local
296with the above defaults.
297.Sh FILES
298The
299.Nm
300driver requires firmware from
301.Pa ports/net/wifi-firmware-iwlwifi-kmod .
302This firmware package will be installed automatically with
303.Xr fwget 8
304if the appropriate hardware is detected at installation or runtime.
305.Pp
306As a last resort for bootstrapping, individual firmware files can be
307manually downloaded, e.g., on a different computer and transferred using a
308.Xr umass 4
309device.
310The firmware files can be found at
311.Lk git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
312with names as requested by the driver.
313Copies should be placed into the
314.Pa /boot/firmware
315directory.
316.Sh SEE ALSO
317.Xr iwlwififw 4 ,
318.Xr iwm 4 ,
319.Xr iwn 4 ,
320.Xr iwx 4 ,
321.Xr wlan 4 ,
322.Xr networking 7 ,
323.Xr fwget 8 ,
324.Xr ifconfig 8 ,
325.Xr wpa_supplicant 8
326.Sh HISTORY
327The
328.Nm
329driver first appeared in
330.Fx 13.1 .
331802.11n and 802.11ac support for the 22000 and later chipsets first appeared in
332.Fx 14.3 .
333.Sh BUGS
334.Lk https://bugs.freebsd.org/bugzilla/showdependencytree.cgi?id=iwlwifi "iwlwifi known bugs"
335.Pp
336While
337.Nm
338supports 802.11a/b/g/n/ac/ax/be modes,
339the compatibility code currently only supports 802.11a/b/g/n/ac modes.
340802.11n/ac is only available on the 22000 and later chipset generations.
341802.11ax/be and 6Ghz support are planned.
342