Realtek RTW89

Driver is in main. Disconnected from build so far.

Support for Realtek's rtw89 driver. The driver should auto-load once committed, if not try to load kldload if_rtw89.

  • Q: Does this driver also support RTL8821AE? A: No. This is part of a different generation of driver support in Linux (rtlwifi) which is GPL-only and a totally different can of worms. It would more fit rtwn in FreeBSD I think but no one was working on that from what I know.
  • Q: What about RTL8821/RTL8822? A: No. See Rtw88 for those.
  • Q: I am running 13.1-RELEASE but I cannot find the driver? A: That is because at the time the release was published the driver was not yet committed to even main (14-CURRENT). Let me know if you want to test.
    A: Once the driver will be in main it is likely that it will be merged to stable/13 and hopefully be available for 13.2-RELEASE.
    A: It is unlikely that we will provide an out-of-tree version for 13.1-RELEASE.
  • Q: Something does not work? What can I do? A: Patience or debug. Drop me or wireless a note and I will add more content here.
  • Q: This fails and prints out errors. A: Do you have more than 4GB of RAM? See currently known issues below.
    A: Otherwise let me know.
  • Q: It seems I cannot associate? A: That was the last state when I checked. Someone needs to figure out why. I have ideas if you want to help let me know!
  • Q: How different is this from the Linux driver? A: At the time of writing: 14 files changed, 209 insertions(+) (and about 1/3rd should be to use busdma functions).
  • Not fully functional yet; scanning works already. TX likely needs a bit more work.
  • Does not work on machines with more than 4GB of physical memory. Likely busdma+LinuxKPI problem to be investigated. D34715 has a change to gather data (which is in freebsd/main by now). You need to boot with compat.linuxkpi.skb.mem_limit=1 in loader.conf to limit DMA to 32bit (announcement on freebsd-wireless for more info).

Older solutions were: try hw.physmem="4G" in loader.conf and see if rtw88 starts working. If it does, please let me know along with PCI IDs (and if you want dmesg). Alternatively and possibly a better approach as it does not limit your memory is to apply this patch, rebuild, and re-install your kernel and see if that works (please also let us know).

Which chipset was tested?

Card PCI IDs Current state
RTL8852AE 0x10ec/0x8852/0x17aa/0x4852 ?? See above
RTL8852CE 0x10ec/0xc852/0x????/0x???? ?? Recently added in 2022, not seen HW yet.

You can reach me at (bz at FreeBSD.ORG) or via the freebsd-wireless mailing list. If possible add “[rtw89]” to the subject. Let me kindly ask you to give me some time to reply and help; I am not doing this full-time but I will try to acknowledge your email as soon as I can.

Is / will there be?

To keep track and references to some problems or other significant changes during development / testing:

  • 20220909 - driver committed to main (disconnected from build)
  • 20220322 - driver published with a snapshot

  • wifi/rtw89.txt
  • Last modified: 2023/09/07 19:42
  • by BjoernZeeb