-
Notifications
You must be signed in to change notification settings - Fork 5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ath11k kernel panic on Pi 5 with 8GB RAM, but not on 2GB (DMA/PCI-E kernel panic) #6424
Comments
Are you saying that using
in config.txt on an 8GB device results in a kernel panic? |
It's likely this bug - https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/#25662182 Usage of virt_to_phys() is bad. This is fixed in kernel 6.9 and onwards. Our rpi-6.12.y branch is mostly functional (and will be the next target for rpi-update releases), can you try building that? |
Went through this trying to use a QCN9074 module. I was running on the latest release RPi kernel compiled with the ath11k drivers and the network interface was able to be initiated. I then began having the problems described here when trying to make a network connection. Following your instructions, I upgraded to kernel rpi-6.12.y. After upgrading, the Network interface no longer mounts.
Any ideas? |
Remove |
With 12856cc compiled and running, here's various combinations of config.txt options and ath11k output. It appears that both
This was on a 8GB board running the latest bootloader:
Thanks in advance for the pointers, @P33M. |
Hm. It really is a 32-bit device. No-mip is also necessary because the endpoint needs 16 vectors. |
With the system running as it was:
After adding
Config + ath11k output:
No change, unfortunately. |
The driver must be allocating a huge amount of DMA coherent memory (and because it's forced to be DMA32, going via swiotlb) for the transfer ring in a single chunk. It's failing on the first tcl_comp setup where apparently we've already created HAL_SW2WBM_RELEASE, HAL_TCL_CMD, HAL_TCL_STATUS, and one HAL_TCL_DATA ring. I don't know enough about the swiotlb internals to suggest how to expand the slots within the reserved memory segment. |
Can you build a rpi-6.12.y kernel with |
Trying to figure out if this is a problem with my config, but so far no luck building 12856cc:
|
Hmm, reliance on an unexported symbol. It builds for me with |
10da9e6 is using However that then uses |
Still no luck even with 10da9e6 reverted. Here's what I am doing, and the results with both stock cmdline.txt and the modified one:
@6by9 you mentioned some changes between 6.6 and 6.12, does this mean dynamic swiotlb is currrently broken? Thanks for your assistance. |
Describe the bug
ath11k kernel module works as expected on a Raspberry Pi 5 board with 2 GB RAM but the same image (same boot media) fails with a DMA/memory related kernel panic on the 8GB unit.
Limiting the memory of the 8GB unit to 2GB (
mem=2G
incmdline.txt
) fixes the issue. Detailed logs below.Test setup consists of two units:
Unit 1: Raspberry Pi 5, 2GB RAM, Official M.2 Hat, QCN9074 WiFi module (PCI-E)
Unit 2: Raspberry Pi 5, 8GB RAM, Official M.2 Hat, QCN9074 WiFi module (PCI-E)
WiFi modules used are identical brand/model and from the same batch, boot media is shared across the two units to ensure there are no config-related issues.
Not entirely sure if this is specifically an issue with the ath11k driver, as it is seems to work on other platforms, perhaps this is a BCM2712 DMA / PCI-E restriction? Speculating, of course, thanks in advance for your assistance.
Steps to reproduce the behaviour
(On a fresh device, with no WiFi configuration)
nmcli
to connect to a WiFi network(With a valid WiFi configuration set up)
Device (s)
Raspberry Pi 5
System
Kernel version:
.config
used to compile the kernel, which is essentially the standard 2712 config withath11k
enabled, attached: kernel-config.zipconfig.txt
used on device:Logs
Working kit (Unit with 2GB RAM)
ath11k is loaded on boot:
WiFi networks are listed:
nmcli
used to connect to WiFi network:Works as expected, no issue to report.
Non-working kit (Unit with 8GB RAM)
Trying to connect to a WiFi network results in a kernel panic:
Non-working 8GB unit made to work with
mem=2G
incmdline.txt
By limiting the memory to 2GB, the 8GB unit works as expected.
Additional context
I have tried various permutations of the following config options in
cmdline.txt
with no success:iommu=soft
iommu.strict=1
coherent_pool=1M
The text was updated successfully, but these errors were encountered: