2019-12-11 04:14 AM
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
2020-01-16 11:54 PM
@FHill did you ever get resolution to these errors you were seeing with the 9377? what was the fix?