Hello,
The i,MX95 is in early stage and some configuration are not in design. However your i.MX95 with ATH12K via PCIe2 failing on
lf-6.12.y but working on lf-6.6.y suggests a regression or driver interaction change in newer kernel's PCIe or Wi-Fi stack, likely involving PCIe power management (ASPM), MSI mapping, or specific PCIe endpoint quirks for the ATH12K, often resolved by kernel patches or disabling ASPM in boot args for newer kernels; check dmesg for PCIe errors, compare devicetree, and look for related commits in NXP/Linux kernel mailing lists.
Here's a breakdown of potential causes and troubleshooting steps:
1. Check Kernel Logs (dmesg)
- Look for PCIe Errors: Search for "PCI", "MSI", "ATH12K", "Error", "Firmware", or "Timeout" messages in
dmesg on the failing lf-6.12.y kernel.
- Firmware Loading: Verify the
ath12k firmware is loaded correctly and if there are any errors during initialization.
2. PCIe Power Management (ASPM)
- Common Issue: Newer kernels often enable Active State Power Management (ASPM) by default, which can cause issues with PCIe devices like the ATH12K on embedded systems, especially older firmware/hardware.
- Try Disabling ASPM: Add
pcie_aspm=off to your kernel boot arguments (e.g., in U-Boot or GRUB) and test again.
3. Devicetree/DTB Differences
- Compare DTBs: Generate and compare the Device Tree Blobs (DTBs) used with both kernels (
.dtb files). Look for changes in the PCIe node for pci2, especially related to interrupts, power domains, or compatibility properties.
4. Kernel Driver/Firmware Regressions
- Specific Commits: The ATH12K driver (
ath12k), mac80211, or core PCIe/ARM code in lf-6.12.y might have introduced a change breaking your setup.
- Search Mailing Lists: Check the Linux Kernel Mailing Lists (LKML) and NXP's lists for related patches or discussions around
ath12k, i.MX95, and newer kernels (6.12+).
5. MSI Handling
- Interrupt Remapping: While you receive interrupts, the way they are handled (MSI-X vs. MSI, interrupt remapping) might have subtle changes.
- Check Interrupts in
proc/interrupts: See if the interrupt distribution or count differs between kernels.
6. Firmware Blobs
- Firmware Version: Ensure you are using the correct firmware for the ATH12K, compatible with the newer kernel's driver. Sometimes newer drivers require newer firmware.
In summary, start with dmesg and try disabling ASPM; these are the most frequent culprits for PCIe Wi-Fi failures in newer kernels on embedded platforms
Regards