This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PROCESSOR-SDK-AM437X: SDIO MMC3 kernel-5.4.106 support

Part Number: PROCESSOR-SDK-AM437X
Other Parts Discussed in Thread: AM4372

Hi Team,

Presently we have SDIO interfaced Wi-Fi module on MMC3 lines in one of our custom boards having processor AM437x platform kernel version 5.4.106 and we are seeing some issue with respect to receiving (Rx) packet loss with Wi-Fi module if above 6MHz SDIO clock frequency the same Wi-Fi module connected in external USB interface works fine without any issues. 

SDIO MMC3 DTS structure configuration for Wi-Fi module. 

&mmc3 { 

status = "okay"; 

/* these are on the crossbar and are outlined in the 

   xbar-event-map element */ 

dmas = <&edma_xbar 30 0 1>, 

<&edma_xbar 31 0 2>; 

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

vmmc-supply = <&evm_v3_3d>; 

bus-width = <4>; 

pinctrl-names = "default"; 

pinctrl-0 = <&mmc3_wi_pins_default>; 

pinctrl-1 = <&mmc3_wi_pins_sleep>; 

cap-power-off-card; 

keep-power-in-suspend; 

enable-sdio-wakeup; 

ti,non-removable; 

  

#address-cells = <1>; 

#size-cells = <0>; 

rsi: rsi@0 { 

compatible = "rsi_91x,mac80211","mac80211,cfg80211","rsi,rsi-91x","rsi,rsi_91x","rsi,RSI-91x"; 

reg = <1>; 

wakeup-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>; 

}; 

}; 

mmc3_wi_pins_default: mmc3_wi_pins_default { 

pinctrl-single,pins = < 

AM4372_IOPAD(0x88c, PIN_INPUT | MUX_MODE3) /* (A12) gpmc_clk.mmc2_clk */ 

AM4372_IOPAD(0x888, PIN_INPUT | MUX_MODE3) /* (B12) gpmc_csn3.mmc2_cmd */ 

AM4372_IOPAD(0x844, PIN_INPUT | MUX_MODE3) /* (C5) gpmc_a1.mmc2_dat0 */ 

AM4372_IOPAD(0x848, PIN_INPUT | MUX_MODE3) /* (C6) gpmc_a2.mmc2_dat1 */ 

AM4372_IOPAD(0x84c, PIN_INPUT | MUX_MODE3) /* (A4) gpmc_a3.mmc2_dat2 */ 

AM4372_IOPAD(0x878, PIN_INPUT | MUX_MODE3) /* (A3) gpmc_be1n.mmc2_dat3 */ 

>; 

}; 

  

mmc3_wi_pins_sleep: mmc3_wi_pins_sleep { 

pinctrl-single,pins = < 

AM4372_IOPAD(0x88c, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A12) gpmc_clk.mmc2_clk */ 

AM4372_IOPAD(0x888, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B12) gpmc_csn3.mmc2_cmd */ 

AM4372_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (C5) gpmc_a1.mmc2_dat0 */ 

AM4372_IOPAD(0x848, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (C6) gpmc_a2.mmc2_dat1 */ 

AM4372_IOPAD(0x84c, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A4) gpmc_a3.mmc2_dat2 */ 

AM4372_IOPAD(0x878, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A3) gpmc_be1n.mmc2_dat3 */ 

>; 

};

Please suggest us SDIO MMC3 configuration any issue fixes or bug fixes for kernel 5.4.106 patches.

Regards,

-Ashok 

  • Hi Ashok,

    I see your &mmc3 configuration has no much difference from that in am437x-gp-evm.dts, so I don't think the issue will likely be in mmc3 device tree configuration, it is more likely about the WIFI device and its driver, which is out of the support scope on this forums.

    One thing I noticed is that you have "enable-sdio-wakeup;". Is possible to disable the WIFI module sleep? I am wonder if the GPIO wakeup is not fast enough in SDIO highspeed, which leads to packet loss?

  • Thanks for the sugestion we wiil work on same, also is any SDIO controller issue fixes for controller host driver side, we are using 5.4.106 kernel is any pathes avilable, please let me know.

  • Hi Ashok,

    In the last several years, I didn't received any issue report from customers regarding AM437x MMC interfaces, so I didn't pay attention to the kernel MMC driver update. But you might want to test with the latest Processor SDK v9.1 kernel to see if the issue still exist there.