hi :
我们使用AM335X上用RTL8723BS的WIFI,现在碰到个问题,ifconfig -a发现没有wlan0设备,调试驱动发现一直卡在sdio_readl函数中,mmc_wait_for_req这个函数一直没有返回值,我问了下模块供应商,他们说在WIFI上电的时候需要一个rescan函数。这个需要找平台厂家,我想请教下,ti平台下,类似功能的函数叫什么函数名?
下面的是SUNXI平台的函数例子
int platform_wifi_power_on(void)
{
int ret = 0;
#ifdef CONFIG_MMC_SUNXI_POWER_CONTROL
unsigned int mod_sel = mmc_pm_get_mod_type();
#endif // CONFIG_MMC_SUNXI_POWER_CONTROL
printk("[huzz]%s:%s\n",__func__,__FILE__);
#ifdef CONFIG_MMC_SUNXI_POWER_CONTROL
if (mod_sel == SUNXI_SDIO_WIFI_NUM_RTL8189ES) {
rtl8189es_sdio_powerup();
sunximmc_rescan_card(SDIOID, 1);
printk("[rtl8189es] %s: power up, rescan card.\n", __FUNCTION__);
} else {
ret = -1;
printk("[rtl8189es] %s: mod_sel = %d is incorrect.\n", __FUNCTION__, mod_sel);
}
#endif // CONFIG_MMC_SUNXI_POWER_CONTROL
return ret;
}
Eggsy Pang:
参考以下link:
http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/127565.aspx
zizhen hu:
回复 Eggsy Pang:
hi:
现在的情况是/sys/bus/sdio/devices下已经有mmc1设备了,但是ifconfig -a没有wlan0。WIFI的上电也OK了。经过调试,发现wifi的probe函数没有执行完,卡在mmc_wait_for_req,在这个函数不往下跑了。
Jian Zhou:
回复 zizhen hu:
这个函数有进去看卡在哪里了么?是不是DMA传输没有完成?
zizhen hu:
回复 Jian Zhou:
hi:
周工,从调试来看,好像是CMD53命令没有完成。发送CMD53的时候,卡在mmc_wait_for_req_done函数的wait_for_completion函数中。
Jian Zhou:
回复 zizhen hu:
那就是SDIO wifi没有回复。
你的SDIO wifi需要SD 卡那种scan的过程么?如果不需要可以把这部分精简掉。
zizhen hu:
回复 Jian Zhou:
周工:
应该是需要的,我在帖子的第一楼想问的就是这个rescan函数。我想请教下,SDK-PROCESSOR-3.02有没有类似的rescan函数?
我问厂家,厂家是这么回复我的。
根据你发来的log,应该是在软件里面没有rescan,可参考platform_ARM_SUNnI_sdio.c
rescan的代码需要找处理器的平台厂商要!
有rescan的kernel的log参考如下:
Jian Zhou:
回复 zizhen hu:
AM335x的接口是支持SD V3.01协议的,整个rescan SD卡的过程,请参考AM335x TRM的Figure 18-35和Figure 18-36。
你的SDIO wifi支持什么样的协议?
zizhen hu:
回复 Jian Zhou:
数据手册里这么些的。Complies with SDIO 1.1/2.0/3.0 for WLAN with clock rate up to 100MHz (DDR50)
具体的rescan代码可否给个样例?
还有您说的rescan过程的图示,在TRM文档中,图18-35和图18-36是寄存器的说明。
PS:rescan的操作具体是指什么?比如通常SD卡插入的时候,是不是会自动rescan?
我刚才做了个测试,开机的时候不加载WIFI驱动,开机后才加载WIFI驱动,并把dts中的ti,non-removable去掉。这样当我手动Insmod 8723bs的时候是不是就相当于一次插入卡的操作?会不会自动rescan?实验结果和开机自动加载模块的结果一样,卡在CMD53命令。测量示波器,发现整个启动过程中,SD_D0上也没发现数据,只有SD_CLK和SD_CMD有数据。
Jian Zhou:
回复 zizhen hu:
你看的是哪版的TRM,下一个最新的看下,可能标号不一样,寄存器描述之前就是scan流程。
数据线上没有数据的话,就是因为AM3352发出cmd以后,wifi没有给response导致的,你问问厂家支持不支持cmd53这个command。
zizhen hu:
回复 Jian Zhou:
周工,您好,抱歉现在才回复。和厂家邮件通讯太没效率了。
今天我和厂家那边沟通,他们确认说支持CMD53命令。他们硬件给出的建议是SDIO的6个线上是否必须要用到3.3v上拉,他说他们以前碰到的项目不需要这个上拉,请教下
1.SDIO的3.3V上拉是必须的吗?
2.CMD53没有应答还有其他原因导致吗?
谢谢。