|Summary:||pci-aardvark: kernel panics on espressobin (and upstreaming fixes from the marvell tree)|
|Severity:||high||CC:||bjorn, pali, thomas.petazzoni|
Description matthieu.bouron 2017-07-12 08:55:11 UTC
Booting the espressobin board with an Intel 7260 mini pcie wifi card plugged leads to the following kernel panic: http://sprunge.us/haED It happens with a bare 4.12 kernel and with the one provided by Arch Linux  which a 4.12 with the following patches (taken from the linux-arm ml) applied: * ARM64: dts: marvell: armada37xx: Fix timer interrupt specifiers * ARM64: dts: marvell: armada37xx: Fix GIC maintenance interrupt * ARM64: dts: marvell: armada37xx: Enable memory-mapped GIC CPU interface * ARM64: dts: marvell: armada37xx: Wire PMUv3 * ARM64: dts: marvell: armada37xx: Enable USB2 on espressobin * arm64: dts: marvell: Enable second SDHCI controller in Armada 37xx * arm64: dts: marvell: Add microsd card definition for the ESPRESSObin * arm64: marvell: armada37xx: Add eth0 alias I found out that the marvell tree  have some fixes for the Aardvark PCI driver: * https://github.com/MarvellEmbeddedProcessors/linux-marvell/commit/d3f1b58f7759f376cff71b0f87bd838035dee995 * https://github.com/MarvellEmbeddedProcessors/linux-marvell/commit/ca899e6ee055a938ffab20d820dbfbea531e5ee7 * https://github.com/MarvellEmbeddedProcessors/linux-marvell/commit/7ce8f8c52db804157a7bc6689cd0b7db154b3204 * https://github.com/MarvellEmbeddedProcessors/linux-marvell/commit/e2c75634d9e930b66bdb29b7a42f56f357e329f5 Applying those patches to a 4.12 kernel (plus the patches that uses Arch Linux) fixes the kernel panic and the wifi card work properly. The kernel configuration I used is: * make defconfig * enable cfg80211 extensions compatibility * enable network DSA * enable marvell DSA specific drivers * enable iwlwifi Let me know if you need more information.  https://github.com/archlinuxarm/PKGBUILDs/tree/master/core/linux-espressobin  https://github.com/MarvellEmbeddedProcessors/linux-marvell/commits/linux-4.4.52-armada-17.06
Comment 1 matthieu.bouron 2017-07-12 14:11:08 UTC
Here is a branch with the mentionned patches applied: https://github.com/mbouron/linux/commits/linux-espressobin
Comment 2 Bjorn Helgaas 2017-07-12 22:18:53 UTC
Created attachment 257473 [details] espressobin panic Captured from http://sprunge.us/haED so we don't have to worry about that site staying around.
Comment 3 Thomas Petazzoni 2017-07-25 13:42:34 UTC
Thanks a lot Matthieu for this bug report. Do you know which of those 4 commits specifically fixes your issue? Indeed it's quite important to distinguish the fixes from the improvements, so that only the appropriate commits gets backported into LTS kernel releases.
Comment 4 Thomas Petazzoni 2017-09-08 21:39:19 UTC
I have sent a patch series with those fixes, and a few other Aardvark patches: https://marc.info/?l=linux-pci&m=150486444201879&w=2
Comment 5 Pali Rohár 2020-04-03 18:35:15 UTC
Hello Matthieu! Could you or somebody else check if this problem with Intel 7260 card still happens on 5.6 kernel? I would like to know if Intel 7260 wifi card on aardvark pci controller still needs to disable ASPM L0S state on 5.6 kernel as this is the last patch from this bugzilla ticket which is not present in 5.6 kernel.
Comment 6 Pali Rohár 2020-06-22 13:12:28 UTC
Kernel 5.8 contains change after which aardvark pcie driver does not touch ASPM L0s registers anymore. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=90c6cb4a355e7befcb557d217d1d8b8bd5875a05 Kernel ASPM code then take care about ASPM states and enable or disable them as needed. So now all patches from this bugzilla ticket are in some form included in mainline kernel.