You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 in cmdline.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)
Compile, install and boot up the custom kernel
Use nmcli to connect to a WiFi network
kernel panic
(With a valid WiFi configuration set up)
Boot device with custom kernel
kernel panic
Device (s)
Raspberry Pi 5
System
Kernel version:
$ git rev-parse HEAD
84ab77459e61c648299d32464127b89ca65de40a
$ uname -a
Linux raspberrypi 6.6.56-v8-16k-x+ #1 SMP PREEMPT Thu Oct 17 13:34:10 BST 2024 aarch64 GNU/Linux
.config used to compile the kernel, which is essentially the standard 2712 config with ath11k enabled, attached: kernel-config.zip
config.txt used on device:
dtoverlay=disable-wifi
dtoverlay=disable-bt
# For QCN9074
dtparam=pciex1
dtparam=pciex1_gen=3
# Force PCIe config to support 32bit DMA addresses at the expense of having to bounce buffers.
# https://github.com/raspberrypi/firmware/blob/b154632e320b87ea95c6ce8b59f96dbbe523ecf1/boot/overlays/README#L3597
dtoverlay=pcie-32bit-dma
# Compatibility features
# https://github.com/raspberrypi/firmware/blob/b154632e320b87ea95c6ce8b59f96dbbe523ecf1/boot/overlays/README#L3611
# no-mip: Use if a) more than 8 interrupt vectors are required or b) the EP requires DMA and MSI addresses to be 32bit.
dtoverlay=pciex1-compat-pi5,no-mip
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
# Additional overlays and parameters are documented
# /boot/firmware/overlays/README
# Automatically load overlays for detected cameras
camera_auto_detect=1
# Automatically load overlays for detected DSI displays
display_auto_detect=1
# Automatically load initramfs files, if found
auto_initramfs=1
# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2
# Don't have the firmware create an initial video= setting in cmdline.txt.
# Use the kernel's default instead.
disable_fw_kms_setup=1
# Run in 64-bit mode
arm_64bit=1
# Disable compensation for displays with overscan
disable_overscan=1
# Run as fast as firmware / board allows
arm_boost=1
[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1
[cm5]
dtoverlay=dwc2,dr_mode=host
Logs
Working kit (Unit with 2GB RAM)
$ cat /proc/cpuinfo | grep "Model"
Model : Raspberry Pi 5 Model B Rev 1.0
$ free -m
total used free shared buff/cache available
Mem: 2009 254 1638 5 172 1754
Swap: 199 0 199
$ vcgencmd get_mem arm && vcgencmd get_mem gpu
arm=1020M
gpu=4M
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?
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: