[OpenWrt-Devel] [PATCH 2/3] mvebu: reduce speed to gen1 for armada 37xx devices pcie

Tomasz Maciej Nowak tomek_n at o2.pl
Sat Jun 9 10:13:41 EDT 2018


Since the beginning there's been an issue with initializing the Atheros
based MiniPCIe wlan cards. Here's an example of kerenel log:

advk-pcie d0070000.pcie: Posted PIO Response Status: CA,0xe00 @ 0x3c
advk-pcie d0070000.pcie: Posted PIO Response Status: CA,0xe00 @ 0x44
advk-pcie d0070000.pcie: Posted PIO Response Status: CA,0xe00 @ 0x4
ath9k 0000:00:00.0: enabling device (0000 -> 0002)
advk-pcie d0070000.pcie: Posted PIO Response Status: CA,0xe00 @ 0x3c
advk-pcie d0070000.pcie: Posted PIO Response Status: CA,0xe00 @ 0xc
advk-pcie d0070000.pcie: Posted PIO Response Status: CA,0xe00 @ 0x4
advk-pcie d0070000.pcie: Posted PIO Response Status: CA,0xe00 @ 0x40
ath9k 0000:00:00.0: request_irq failed
advk-pcie d0070000.pcie: Posted PIO Response Status: CA,0xe00 @ 0x4
ath9k: probe of 0000:00:00.0 failed with error -22

The same happens for ath5k cards, while ath10k card didn't appear at
all (not detected). Following the issue on esppressobin.net forum [1]
the workaround seems to be limiting the speed of PCIe bridge to 1st
generation. This fixed the initialization of ath5k, ath9k and ath10k
cards. The change shouldn't affect the performance for wireless cards,
it could reduce the performance of storage controller cards but since
OpenWrt focuses on wireless connectivity, fixing compatibility with
wireless cards should be a priority.
For the record, the iwlwifi and mt76 cards were not affected by this
issue.

1. http://espressobin.net/forums/topic/which-pcie-wlan-cards-are-supported

Signed-off-by: Tomasz Maciej Nowak <tomek_n at o2.pl>
---
Please also cherry-pick this to OpenWrt 18.06.
---
 .../527-pci-aardvark-reduce-speed-to-gen1.patch   | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 target/linux/mvebu/patches-4.14/527-pci-aardvark-reduce-speed-to-gen1.patch

diff --git a/target/linux/mvebu/patches-4.14/527-pci-aardvark-reduce-speed-to-gen1.patch b/target/linux/mvebu/patches-4.14/527-pci-aardvark-reduce-speed-to-gen1.patch
new file mode 100644
index 0000000000..1974c5684f
--- /dev/null
+++ b/target/linux/mvebu/patches-4.14/527-pci-aardvark-reduce-speed-to-gen1.patch
@@ -0,0 +1,15 @@
+--- a/drivers/pci/host/pci-aardvark.c
++++ b/drivers/pci/host/pci-aardvark.c
+@@ -311,10 +311,10 @@ static void advk_pcie_setup_hw(struct ad
+ 		PCIE_CORE_CTRL2_TD_ENABLE;
+ 	advk_writel(pcie, reg, PCIE_CORE_CTRL2_REG);
+ 
+-	/* Set GEN2 */
++	/* Set GEN1 */
+ 	reg = advk_readl(pcie, PCIE_CORE_CTRL0_REG);
+ 	reg &= ~PCIE_GEN_SEL_MSK;
+-	reg |= SPEED_GEN_2;
++	reg |= SPEED_GEN_1;
+ 	advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG);
+ 
+ 	/* Set lane X1 */
-- 
2.17.1


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/listinfo/openwrt-devel



More information about the openwrt-devel mailing list