From: Ping-Ke Shih <pkshih@realtek.com>
To: "lonthn@163.com" <lonthn@163.com>,
"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Subject: RE: [rtw89] PCI Passthrough Issue: rtl8852be on ARM VM (Ubuntu host/OpenWrt guest)
Date: Thu, 12 Jun 2025 01:33:29 +0000 [thread overview]
Message-ID: <aca750d0c0094ba29fbef520eb1702aa@realtek.com> (raw)
In-Reply-To: <68499419.220006.00001@m16.mail.163.com>
lonthn@163.com <lonthn@163.com> wrote:
> Hi rtw89 maintainers,
> I'm having trouble passing through an rtl8852be PCIe device to an ARM KVM guest and hope you could help.
> Key details:
>
> ==== Environment ====
> * Host: Ubuntu 5.10.160 (ARM)
> * Guest: Openwrt 6.6.73
> * Working case: Identical setup works for rtl8125 passthrough
>
> ==== Issue ====
> Guest fails to initialize rtl8852be with timeout errors.
>
> ==== Diagnostic snippets ====
[...]
> [ 746.369036] rtw89_8852be 0000:06:00.0: Firmware version 0.29.29.5 (da87cccd), cmd version 0, type 5
> [ 746.373384] rtw89_8852be 0000:06:00.0: Firmware version 0.29.29.5 (da87cccd), cmd version 0, type 3
> [ 746.377254] rtw89_8852be 0000:06:00.0: [BTC] use version def[6] = 0x001d1d00
> [ 747.783549] rtw89_8852be 0000:06:00.0: [ERR]FWDL path ready
> [ 747.784119] rtw89_8852be 0000:06:00.0: [ERR]fwdl 0x1E0 = 0x23
> [ 747.784652] rtw89_8852be 0000:06:00.0: [ERR]fwdl 0x83F0 = 0x70000
This looks like interoperability problem of 36-bit DMA.
If you have below commit in your guest OS:
1fd4b3fe52ef ("wifi: rtw89: pci: support 36-bit PCI DMA address")
Please also have below commit to rollback 32-bit DMA.
aa70ff0945fe ("wifi: rtw89: pci: early chips only enable 36-bit DMA on specific PCI hosts")
With the latest kernel, you can just comment code as below to use 32-bit DMA.
diff --git a/drivers/net/wireless/realtek/rtw89/pci.c b/drivers/net/wireless/realtek/rtw89/pci.c
index 204a3748d913..3d1a3ac4a1e6 100644
--- a/drivers/net/wireless/realtek/rtw89/pci.c
+++ b/drivers/net/wireless/realtek/rtw89/pci.c
@@ -3141,7 +3141,7 @@ static int rtw89_pci_setup_mapping(struct rtw89_dev *rtwdev,
goto err;
}
- if (!rtw89_pci_is_dac_compatible_bridge(rtwdev))
+ //if (!rtw89_pci_is_dac_compatible_bridge(rtwdev))
goto try_dac_done;
ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(36));
>
> ==== Questions ====
> * Any known ARM passthrough quirks for this chip?
I have not ever tried passthrough, so I'm not sure if it can work.
Can I know how different the passthrough is?
Does rtl8852be work on host OS?
> * Suggested debug steps for error -100?
See my comment above.
next prev parent reply other threads:[~2025-06-12 1:33 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-11 14:35 [rtw89] PCI Passthrough Issue: rtl8852be on ARM VM (Ubuntu host/OpenWrt guest) lonthn
2025-06-12 1:33 ` Ping-Ke Shih [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-06-12 7:38 lonthn
2025-06-12 12:38 ` lonthn
2025-06-13 0:55 ` Ping-Ke Shih
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aca750d0c0094ba29fbef520eb1702aa@realtek.com \
--to=pkshih@realtek.com \
--cc=linux-wireless@vger.kernel.org \
--cc=lonthn@163.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.