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.

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)
MFC after:	2 weeks
This commit is contained in:
Bjoern A. Zeeb 2022-03-30 22:06:14 +00:00
parent 2774f20680
commit 73d4ebea35
15 changed files with 149 additions and 0 deletions

View file

@ -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.

View file

@ -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

View file

@ -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.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,10 @@
# $FreeBSD$
SUBDIR= \
rtw8723d \
rtw8821c \
rtw8822b \
rtw8822c \
rtw8822c_wow
.include <bsd.subdir.mk>

View file

@ -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}

View file

@ -0,0 +1,6 @@
# $FreeBSD$
VERSION= 48
NAME= 8723d
.include <bsd.kmod.mk>

View file

@ -0,0 +1,6 @@
# $FreeBSD$
VERSION= 2408
NAME= 8821c
.include <bsd.kmod.mk>

View file

@ -0,0 +1,6 @@
# $FreeBSD$
VERSION= 0
NAME= 8822b
.include <bsd.kmod.mk>

View file

@ -0,0 +1,6 @@
# $FreeBSD$
VERSION= 9911
NAME= 8822c
.include <bsd.kmod.mk>

View file

@ -0,0 +1,6 @@
# $FreeBSD$
VERSION= 994
NAME= 8822c_wow
.include <bsd.kmod.mk>