cancel
Showing results for 
Search instead for 
Did you mean: 

Suggestions to poor SDIO Wifi Performance.

FHill
Associate

I have problems with different SDIO WiFi Modules on the stm32mp157-dk2. Those Modules are connected to the sdmmc3. The modules are qca9377-3 and wilc3000. Both Modules are slow compared to the on the dk2 embedded device and both are slow compared to its adaption to the rpi 3b+. I have tested against 4.19.9, 4.19.49 and 4.9.82 (git). Below are Messages from those drivers indication there is something wrong.

Switching debug on

#echo -n 'module mmc_core +p' > /sys/kernel/debug/dynamic_debug/control 

#echo -n 'file sdio_irq.c +p' > /sys/kernel/debug/dynamic_debug/control

does not show any error messages.

I suspect with the sdio implementation on the stm, but I am not sure about that. When I tested the qcacld-2.0 driver on the 4.9.82 Kernel the message did not come up again, but in the transfer speed did not change.

For the qcacld Driver I have implemented the usage of an out of band irq with a gpio but again without gaining any performance.

Looking at the mmc driver mmci.c and mmci_stm32_sdmmc.c I realized the option to use DMA_ENGINE or idma. But I am not able to evaluate the usage of DMA. There is also code to tune the delay line but it does not seem to get executed.

QCA9377-3:

https://github.com/8devices/qcacld-2.0

Periodic Message of the driver:

[ 119.482429] Debug Assert Caught, File /pub/dev/canfd/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/stm32mp1-openstlinux-4.19-thud-mp1-19-02-20/sources/

[ 124.155801] HIFDevProcessRecvHeader, lookahead mismatch! (pPkt:0xCE293F40 flags:0x5), 0x062E4001 != 0x062EA001

[ 124.164381] <---------Dumping 1590 Bytes : BAD HTC Recv PKT ------>

[ 124.170708] [0]: 01 40 2E 06 00 2C 00 00 01 41 04 00 00 20 4D 01

..

..

WILC3000

https://github.com/linux4wilc/driver.git

Periodic Message of the driver:

cfg_indicate_rx: Receive unknown message 75-5-128-16-4-81-162-235

DT Entry:

&sdmmc3 {

   pinctrl-names = "default", "opendrain", "sleep";

   pinctrl-0 = <&sdmmc3_b4_pins_a>;

   pinctrl-1 = <&sdmmc3_b4_od_pins_a>;

   pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>;

   #broken-cd;            //   1 no change

   bus-width = <4>;      //   1 no change

   no-1-8-v;

   //dmas = <&dma 29 0 0x2>, /* Logical - DevToMem */

   //     <&dma 29 0 0x0>; /* Logical - MemToDev */      

   //dma-names = "rx", "tx";

   //dmas = <&dmamux1 39 0x0 0x02>,

   //      <&dmamux1 39 0x0 0x00>;

   //dma-names = "rx", "tx";

   vmmc-supply = <&v3v3>;

   status = "okay";

   #address-cells = <1>;

   #size-cells = <0>;

   wilc_sdio@0 {   

      compatible = "microchip,wilc1000", "microchip,wilc3000";

      irq-gpios = <&gpioa 8 0>;

      reset-gpios = <&gpiod 13 0>;

      chip_en-gpios = <&gpioa 10 0>;

      //clocks = <&pck1>;

      //clock-names = "rtc_clk";

      //assigned-clocks = <&pck1>;

      //assigned-clock-rates = <32768>;

      status = "okay";

      reg = <0>;

      bus-width = <4>;

   };   

};

Can someone give suggestion on what to try?

Regards

Florian Hillen

1 REPLY 1
Rwhea.1
Associate

@FHill​  did you ever get resolution to these errors you were seeing with the 9377? what was the fix?