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