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 <tome...@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@lists.openwrt.org https://lists.openwrt.org/listinfo/openwrt-devel