* [PATCH v2 0/2] Enable WiFi on Spacemit K3 Pico ITX
@ 2026-07-16 23:05 Anirudh Srinivasan
2026-07-16 23:05 ` [PATCH v2 1/2] PCI: Move Spacemit vendor and device IDs to linux/pci_ids.h Anirudh Srinivasan
2026-07-16 23:05 ` [PATCH v2 2/2] wifi: rtw89: pci: enable 36-bit DMA on spacemit K3 Anirudh Srinivasan
0 siblings, 2 replies; 5+ messages in thread
From: Anirudh Srinivasan @ 2026-07-16 23:05 UTC (permalink / raw)
To: Bjorn Helgaas, Yixun Lan, Ping-Ke Shih, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Rob Herring,
Inochi Amaoto, Aurelien Jarno
Cc: linux-pci, linux-kernel, linux-riscv, spacemit, linux-wireless,
Anirudh Srinivasan
The Spacemit K3 Pico ITX has a RTL8852BE Wifi card attached via PCIe.
The probe for the rtw89 driver currently fails because driver tries to
allocate a kernel page with GFP_DMA32, and this board has memory only
above the 32 bit range. The rtw89 driver has the ability to use 36 bit
DMA addresses, but this is only enabled for certain PCIe bridge/rootport
that have been validated to work on. Enable this ability for the PCIe
root port. A similar patch seems to exist in the vendor kernel tree.
To test this, you'll need the 3 patch series adding the K3 PCIe RC
Driver[1], K3 PCIe Phy[2] and K3 PCIe DTS[3].
I've dropped the dependency on [1] from v1 and added the PCI IDs to
pci_ids.h here directly. Inochi's PCIe RC series will now use the PCI
IDs added by this series.
One question I had was about whether the IOMMU on the K3 could be used
to do DMA mappings and allow the wifi card to work with a 32 bit virtual
address. The K3's IOMMU isn't supported currently in the kernel DT. It
seems to not be enabled in the vendor kernel too. Even if the IOMMU was
enabled, I'm not sure if it would help with this exact problem. The fix
proposed in this patch works to solve this problem, so I've sent it to
the list.
[1] https://lore.kernel.org/spacemit/20260709040027.958400-1-inochiama@gmail.com/
[2] https://lore.kernel.org/spacemit/20260703021024.495433-1-inochiama@gmail.com/
[3] https://lore.kernel.org/spacemit/20260709040415.977784-1-inochiama@gmail.com/
Signed-off-by: Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>
---
Changes in v2:
- Updated Patch 1's commit with reason for where the PCI IDs will be used
- Dropped the hard dependency on Inochi's PCIe RC series and add the PCI ids in this patch directly
- Added Acked by from Bjorn and Ping-Ke, Tested by from Aurelien
- Link to v1: https://patch.msgid.link/20260715-rtw89-spacemit-k3-v1-0-e577bc63706b@oss.tenstorrent.com
---
Anirudh Srinivasan (2):
PCI: Move Spacemit vendor and device IDs to linux/pci_ids.h
wifi: rtw89: pci: enable 36-bit DMA on spacemit K3
drivers/net/wireless/realtek/rtw89/pci.c | 4 ++++
drivers/pci/controller/dwc/pcie-spacemit-k1.c | 3 ---
include/linux/pci_ids.h | 4 ++++
3 files changed, 8 insertions(+), 3 deletions(-)
---
base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482
change-id: 20260715-rtw89-spacemit-k3-a37c9771b3c3
Best regards,
--
Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 1/2] PCI: Move Spacemit vendor and device IDs to linux/pci_ids.h
2026-07-16 23:05 [PATCH v2 0/2] Enable WiFi on Spacemit K3 Pico ITX Anirudh Srinivasan
@ 2026-07-16 23:05 ` Anirudh Srinivasan
2026-07-16 23:08 ` sashiko-bot
2026-07-16 23:05 ` [PATCH v2 2/2] wifi: rtw89: pci: enable 36-bit DMA on spacemit K3 Anirudh Srinivasan
1 sibling, 1 reply; 5+ messages in thread
From: Anirudh Srinivasan @ 2026-07-16 23:05 UTC (permalink / raw)
To: Bjorn Helgaas, Yixun Lan, Ping-Ke Shih, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Rob Herring,
Inochi Amaoto, Aurelien Jarno
Cc: linux-pci, linux-kernel, linux-riscv, spacemit, linux-wireless,
Anirudh Srinivasan
Move the vendor and device ID for the existing Spacemit K1 PCIe Root
Complex to include/linux/pci_ids.h. Also add K3's Root Complex device ID
to this header. This is done so that these values can be referenced in
the rtw89 driver to enable 36-bit DMA ability in it for WiFi to function
on the K3 Pico ITX board.
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>
---
drivers/pci/controller/dwc/pcie-spacemit-k1.c | 3 ---
include/linux/pci_ids.h | 4 ++++
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/controller/dwc/pcie-spacemit-k1.c b/drivers/pci/controller/dwc/pcie-spacemit-k1.c
index be20a520255b6..f89c6d46c7684 100644
--- a/drivers/pci/controller/dwc/pcie-spacemit-k1.c
+++ b/drivers/pci/controller/dwc/pcie-spacemit-k1.c
@@ -21,9 +21,6 @@
#include "pcie-designware.h"
-#define PCI_VENDOR_ID_SPACEMIT 0x201f
-#define PCI_DEVICE_ID_SPACEMIT_K1 0x0001
-
/* Offsets and field definitions for link management registers */
#define K1_PHY_AHB_IRQ_EN 0x0000
#define PCIE_INTERRUPT_EN BIT(0)
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 1c9d40e09107d..d6f26cacc8e35 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -2640,6 +2640,10 @@
#define PCI_VENDOR_ID_SUNIX 0x1fd4
#define PCI_DEVICE_ID_SUNIX_1999 0x1999
+#define PCI_VENDOR_ID_SPACEMIT 0x201f
+#define PCI_DEVICE_ID_SPACEMIT_K1 0x0001
+#define PCI_DEVICE_ID_SPACEMIT_K3 0x0002
+
#define PCI_VENDOR_ID_HINT 0x3388
#define PCI_DEVICE_ID_HINT_VXPROII_IDE 0x8013
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] wifi: rtw89: pci: enable 36-bit DMA on spacemit K3
2026-07-16 23:05 [PATCH v2 0/2] Enable WiFi on Spacemit K3 Pico ITX Anirudh Srinivasan
2026-07-16 23:05 ` [PATCH v2 1/2] PCI: Move Spacemit vendor and device IDs to linux/pci_ids.h Anirudh Srinivasan
@ 2026-07-16 23:05 ` Anirudh Srinivasan
2026-07-16 23:08 ` sashiko-bot
1 sibling, 1 reply; 5+ messages in thread
From: Anirudh Srinivasan @ 2026-07-16 23:05 UTC (permalink / raw)
To: Bjorn Helgaas, Yixun Lan, Ping-Ke Shih, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Rob Herring,
Inochi Amaoto, Aurelien Jarno
Cc: linux-pci, linux-kernel, linux-riscv, spacemit, linux-wireless,
Anirudh Srinivasan
The Spacemit K3 Pico ITX Board has a RTL8852BE pcie card behind a PCIe
root port, but the SoC doesn't have any 32 bit DMA addreseses which the
rtw89 seems to use by default. Enable 36 bit DMA ability that the driver
has when this particular root port is detected so that the driver can
probe on this SoC.
Tested-by: Aurelien Jarno <aurelien@aurel32.net>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>
---
drivers/net/wireless/realtek/rtw89/pci.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtw89/pci.c b/drivers/net/wireless/realtek/rtw89/pci.c
index 102bae4881805..c5b82fc46d063 100644
--- a/drivers/net/wireless/realtek/rtw89/pci.c
+++ b/drivers/net/wireless/realtek/rtw89/pci.c
@@ -3326,6 +3326,10 @@ static bool rtw89_pci_is_dac_compatible_bridge(struct rtw89_dev *rtwdev)
if (bridge->device == 0x2806)
return true;
break;
+ case PCI_VENDOR_ID_SPACEMIT:
+ if (bridge->device == PCI_DEVICE_ID_SPACEMIT_K3)
+ return true;
+ break;
}
return false;
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 2/2] wifi: rtw89: pci: enable 36-bit DMA on spacemit K3
2026-07-16 23:05 ` [PATCH v2 2/2] wifi: rtw89: pci: enable 36-bit DMA on spacemit K3 Anirudh Srinivasan
@ 2026-07-16 23:08 ` sashiko-bot
0 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-07-16 23:08 UTC (permalink / raw)
To: Anirudh Srinivasan; +Cc: linux-pci
> The Spacemit K3 Pico ITX Board has a RTL8852BE pcie card behind a PCIe
> root port, but the SoC doesn't have any 32 bit DMA addreseses which the
> rtw89 seems to use by default. Enable 36 bit DMA ability that the driver
> has when this particular root port is detected so that the driver can
> probe on this SoC.
>
> Tested-by: Aurelien Jarno <aurelien@aurel32.net>
> Acked-by: Ping-Ke Shih <pkshih@realtek.com>
> Signed-off-by: Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>
Sashiko has reviewed this patch and found no issues. It looks great!
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260716-rtw89-spacemit-k3-v2-0-392b577ebf75@oss.tenstorrent.com?part=2
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] PCI: Move Spacemit vendor and device IDs to linux/pci_ids.h
2026-07-16 23:05 ` [PATCH v2 1/2] PCI: Move Spacemit vendor and device IDs to linux/pci_ids.h Anirudh Srinivasan
@ 2026-07-16 23:08 ` sashiko-bot
0 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-07-16 23:08 UTC (permalink / raw)
To: Anirudh Srinivasan; +Cc: linux-pci
> Move the vendor and device ID for the existing Spacemit K1 PCIe Root
> Complex to include/linux/pci_ids.h. Also add K3's Root Complex device ID
> to this header. This is done so that these values can be referenced in
> the rtw89 driver to enable 36-bit DMA ability in it for WiFi to function
> on the K3 Pico ITX board.
>
> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
> Signed-off-by: Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>
Sashiko has reviewed this patch and found no issues. It looks great!
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260716-rtw89-spacemit-k3-v2-0-392b577ebf75@oss.tenstorrent.com?part=1
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-07-16 23:08 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-16 23:05 [PATCH v2 0/2] Enable WiFi on Spacemit K3 Pico ITX Anirudh Srinivasan
2026-07-16 23:05 ` [PATCH v2 1/2] PCI: Move Spacemit vendor and device IDs to linux/pci_ids.h Anirudh Srinivasan
2026-07-16 23:08 ` sashiko-bot
2026-07-16 23:05 ` [PATCH v2 2/2] wifi: rtw89: pci: enable 36-bit DMA on spacemit K3 Anirudh Srinivasan
2026-07-16 23:08 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox