aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2022-03-30 22:06:14 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2022-06-03 15:49:22 +0000
commitd3b0a58ee78ecdc5e2700e0aaaab21755496d148 (patch)
treee8209b92218bc4071fd471b9fe7373459a431774
parentb130a058aaf8e87efcc2a5af3140fa2b4d2e7f22 (diff)
downloadsrc-d3b0a58ee78ecdc5e2700e0aaaab21755496d148.tar.gz
src-d3b0a58ee78ecdc5e2700e0aaaab21755496d148.zip
rtw88: import firmware for Realtek's rtw88 supported chipsets.
Import the most recent versions of the firmware images for the rtw88 driver. This is based on linux-firmware at 681281e49fb6778831370e5d94e6e1d97f0752d6. rtw8822c firmware got downgraded in a later commit to 9.9.10: firmware version 9.9.11 added support for hw_scan and is reportedly causing more problems than 9.9.10 does. The license of the firmware matches the previous rtwnfw(4) firmware files (modulo a Copyright year) and you can find a copy in sys/contrib/dev/rtw88fw/LICENCE.rtlwifi_firmware.txt. Add build infrastructure to create the .ko files but do not yet hook it up to the build until all parts are in the tree. Approved by: core (imp) PR: 248235 (cherry picked from commit 73d4ebea3567f18db549638c3d897b6d6758faa4) (cherry picked from commit 3443476ca9e751cebbb1c467091551bf3d518814)
-rw-r--r--sys/contrib/dev/rtw88fw/LICENCE.rtlwifi_firmware.txt39
-rw-r--r--sys/contrib/dev/rtw88fw/README34
-rw-r--r--sys/contrib/dev/rtw88fw/WHENCE19
-rw-r--r--sys/contrib/dev/rtw88fw/rtw8723d_fw.binbin0 -> 28884 bytes
-rw-r--r--sys/contrib/dev/rtw88fw/rtw8821c_fw.binbin0 -> 138984 bytes
-rw-r--r--sys/contrib/dev/rtw88fw/rtw8822b_fw.binbin0 -> 150984 bytes
-rw-r--r--sys/contrib/dev/rtw88fw/rtw8822c_fw.binbin0 -> 200312 bytes
-rw-r--r--sys/contrib/dev/rtw88fw/rtw8822c_wow_fw.binbin0 -> 145224 bytes
-rw-r--r--sys/modules/rtw88fw/Makefile10
-rw-r--r--sys/modules/rtw88fw/Makefile.inc17
-rw-r--r--sys/modules/rtw88fw/rtw8723d/Makefile6
-rw-r--r--sys/modules/rtw88fw/rtw8821c/Makefile6
-rw-r--r--sys/modules/rtw88fw/rtw8822b/Makefile6
-rw-r--r--sys/modules/rtw88fw/rtw8822c/Makefile6
-rw-r--r--sys/modules/rtw88fw/rtw8822c_wow/Makefile6
15 files changed, 149 insertions, 0 deletions
diff --git a/sys/contrib/dev/rtw88fw/LICENCE.rtlwifi_firmware.txt b/sys/contrib/dev/rtw88fw/LICENCE.rtlwifi_firmware.txt
new file mode 100644
index 000000000000..d70921f49379
--- /dev/null
+++ b/sys/contrib/dev/rtw88fw/LICENCE.rtlwifi_firmware.txt
@@ -0,0 +1,39 @@
+Copyright (c) 2010, Realtek Semiconductor Corporation
+All rights reserved.
+
+Redistribution. Redistribution and use in binary form, without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions must reproduce the above copyright notice and the
+ following disclaimer in the documentation and/or other materials
+ provided with the distribution.
+* Neither the name of Realtek Semiconductor Corporation nor the names of its
+ suppliers may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+* No reverse engineering, decompilation, or disassembly of this software
+ is permitted.
+
+Limited patent license. Realtek Semiconductor Corporation grants a world-wide,
+royalty-free, non-exclusive license under patents it now or hereafter
+owns or controls to make, have made, use, import, offer to sell and
+sell ("Utilize") this software, but solely to the extent that any
+such patent is necessary to Utilize the software alone, or in
+combination with an operating system licensed under an approved Open
+Source license as listed by the Open Source Initiative at
+http://opensource.org/licenses. The patent license shall not apply to
+any other combinations which include this software. No hardware per
+se is licensed hereunder.
+
+DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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
+COPYRIGHT OWNER 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.
diff --git a/sys/contrib/dev/rtw88fw/README b/sys/contrib/dev/rtw88fw/README
new file mode 100644
index 000000000000..01449ca72e4c
--- /dev/null
+++ b/sys/contrib/dev/rtw88fw/README
@@ -0,0 +1,34 @@
+
+ rtw88 firmware
+================
+
+This repository contains firmware images supported by Realtek's wireless
+driver rtw88. And some of the devices run with more than one firmware
+file. Basically, a "normal" firmware is necessary to be downloaded to
+the device.
+And another is called "wowlan" firmware, it should be loaded when a
+device is going to suspend. Which means driver will "re-download/swap"
+the firmware image. The wowlan firmware contains wake up functions that
+can recognize specific events and send a wake up signal to device if
+needed, and the system will resume to running state. During resume,
+driver will then swap the normal firmware back, return to running state.
+
+If any distros or platforms do not require wowlan feature, they can
+_only_ pick the normal firmware. And everything still works fine,
+except that the device cannot be waken from the wireless NICs.
+
+Currently supported devices with corresponding firmwares:
+
+RTL8822BE
+ rtw8822b_fw.bin
+
+RTL8821CE
+ rtw8821c_fw.bin
+
+RTL8822CE
+ rtw8822c_fw.bin
+ rtw8822c_wow_fw.bin
+
+RTL8723DE
+ rtw8723d_fw.bin
+
diff --git a/sys/contrib/dev/rtw88fw/WHENCE b/sys/contrib/dev/rtw88fw/WHENCE
new file mode 100644
index 000000000000..71cb61f86a1f
--- /dev/null
+++ b/sys/contrib/dev/rtw88fw/WHENCE
@@ -0,0 +1,19 @@
+Driver: rtw88 - Realtek 802.11ac WLAN driver for RTL8822BE and RTL8822CE
+
+Info: Sent to Larry Finger by Realtek engineer Yan-Hsuan Chuang <yhchuang@realtek.com>
+File: rtw88/rtw8822b_fw.bin
+File: rtw88/rtw8822c_fw.bin
+File: rtw88/rtw8822c_wow_fw.bin
+File: rtw88/README
+File: rtw88/rtw8723d_fw.bin
+File: rtw88/rtw8821c_fw.bin
+
+Licence: Redistributable. See LICENCE.rtlwifi_firmware.txt for details.
+
+ These firmware should be put under /lib/firmware/rtw88/
+ And note that the rtw88 driver is able to support wake-on-wireless LAN
+ for RTL8822C devices, after kernel v5.6+. So, make sure the firmware
+ rtw88/rtw8822c_wow_fw.bin is also packed, otherwise the firmware load
+ fail could be a problem.
+ Although RTL8723D devices are 802.11n device, they are also supported
+ by rtw88 because the hardware arch is similar.
diff --git a/sys/contrib/dev/rtw88fw/rtw8723d_fw.bin b/sys/contrib/dev/rtw88fw/rtw8723d_fw.bin
new file mode 100644
index 000000000000..ac2b9250c39e
--- /dev/null
+++ b/sys/contrib/dev/rtw88fw/rtw8723d_fw.bin
Binary files differ
diff --git a/sys/contrib/dev/rtw88fw/rtw8821c_fw.bin b/sys/contrib/dev/rtw88fw/rtw8821c_fw.bin
new file mode 100644
index 000000000000..8264e3480cc8
--- /dev/null
+++ b/sys/contrib/dev/rtw88fw/rtw8821c_fw.bin
Binary files differ
diff --git a/sys/contrib/dev/rtw88fw/rtw8822b_fw.bin b/sys/contrib/dev/rtw88fw/rtw8822b_fw.bin
new file mode 100644
index 000000000000..0934ffcc77a3
--- /dev/null
+++ b/sys/contrib/dev/rtw88fw/rtw8822b_fw.bin
Binary files differ
diff --git a/sys/contrib/dev/rtw88fw/rtw8822c_fw.bin b/sys/contrib/dev/rtw88fw/rtw8822c_fw.bin
new file mode 100644
index 000000000000..af894bc10185
--- /dev/null
+++ b/sys/contrib/dev/rtw88fw/rtw8822c_fw.bin
Binary files differ
diff --git a/sys/contrib/dev/rtw88fw/rtw8822c_wow_fw.bin b/sys/contrib/dev/rtw88fw/rtw8822c_wow_fw.bin
new file mode 100644
index 000000000000..1ce74fda8bff
--- /dev/null
+++ b/sys/contrib/dev/rtw88fw/rtw8822c_wow_fw.bin
Binary files differ
diff --git a/sys/modules/rtw88fw/Makefile b/sys/modules/rtw88fw/Makefile
new file mode 100644
index 000000000000..9a3b82b78922
--- /dev/null
+++ b/sys/modules/rtw88fw/Makefile
@@ -0,0 +1,10 @@
+# $FreeBSD$
+
+SUBDIR= \
+ rtw8723d \
+ rtw8821c \
+ rtw8822b \
+ rtw8822c \
+ rtw8822c_wow
+
+.include <bsd.subdir.mk>
diff --git a/sys/modules/rtw88fw/Makefile.inc b/sys/modules/rtw88fw/Makefile.inc
new file mode 100644
index 000000000000..dfdfd17cb245
--- /dev/null
+++ b/sys/modules/rtw88fw/Makefile.inc
@@ -0,0 +1,17 @@
+# $FreeBSD$
+#
+# Common rules for building firmware. Note this gets auto-included
+# by the subdir Makefile's as a consequence of included bsd.kmod.mk.
+
+_NAME= rtw${NAME}_fw.bin
+
+IMG= ${_NAME}
+KMOD= ${_NAME}
+
+CLEANFILES+= ${IMG}
+
+FIRMWS= ${IMG}:${IMG}:${VERSION}
+
+${IMG}: ${SRCTOP}/sys/contrib/dev/rtw88fw/${IMG}
+ cp ${.ALLSRC} ${.TARGET}
+
diff --git a/sys/modules/rtw88fw/rtw8723d/Makefile b/sys/modules/rtw88fw/rtw8723d/Makefile
new file mode 100644
index 000000000000..6bc8dcecc365
--- /dev/null
+++ b/sys/modules/rtw88fw/rtw8723d/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+VERSION= 48
+NAME= 8723d
+
+.include <bsd.kmod.mk>
diff --git a/sys/modules/rtw88fw/rtw8821c/Makefile b/sys/modules/rtw88fw/rtw8821c/Makefile
new file mode 100644
index 000000000000..d8a7c03e82e9
--- /dev/null
+++ b/sys/modules/rtw88fw/rtw8821c/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+VERSION= 2408
+NAME= 8821c
+
+.include <bsd.kmod.mk>
diff --git a/sys/modules/rtw88fw/rtw8822b/Makefile b/sys/modules/rtw88fw/rtw8822b/Makefile
new file mode 100644
index 000000000000..12a732d3907a
--- /dev/null
+++ b/sys/modules/rtw88fw/rtw8822b/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+VERSION= 0
+NAME= 8822b
+
+.include <bsd.kmod.mk>
diff --git a/sys/modules/rtw88fw/rtw8822c/Makefile b/sys/modules/rtw88fw/rtw8822c/Makefile
new file mode 100644
index 000000000000..38313ecaf87e
--- /dev/null
+++ b/sys/modules/rtw88fw/rtw8822c/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+VERSION= 9910
+NAME= 8822c
+
+.include <bsd.kmod.mk>
diff --git a/sys/modules/rtw88fw/rtw8822c_wow/Makefile b/sys/modules/rtw88fw/rtw8822c_wow/Makefile
new file mode 100644
index 000000000000..149d9bdf378e
--- /dev/null
+++ b/sys/modules/rtw88fw/rtw8822c_wow/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+VERSION= 994
+NAME= 8822c_wow
+
+.include <bsd.kmod.mk>