SDIO WiFi 驱动,请教高手

liaifeilove 2010-06-18 11:16:30
我想把Marvel SD8686的驱动移植到TI的WD7123上,不知道各位有什么思路没有?


我现在已经将8686的驱动加载到系统里面,并且系统插卡后能正确加载这个驱动,
只是在初始化的过程中,初始化卡的时候返回错误。
按照CE6.0 SD驱动体系来说,Client层的驱动应该和硬件没有关系了,查看代码也看不出什么东西来,
请问,我是否需要修改SD host controler 或者SD bus层的驱动?

...全文
1233 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Linux_lee 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 liaifeilove 的回复:]

引用 16 楼 linux_lee 的回复:
移植这类的驱动应该只需要修改跟接口相关部分代码,使得WIFI的固件能顺利下载运行,基本就不会有大问题了

每类 WiFi模块都需要在启动后下载固件吗?为什么固件不直接写在模块中,而需要重新下载呢?
[/Quote]

就MAVELL的8086来说就是这样的,我估计这样的方式只是方便用户升级固件
liaifeilove 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 linux_lee 的回复:]
移植这类的驱动应该只需要修改跟接口相关部分代码,使得WIFI的固件能顺利下载运行,基本就不会有大问题了
[/Quote]
每类 WiFi模块都需要在启动后下载固件吗?为什么固件不直接写在模块中,而需要重新下载呢?
liaifeilove 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 cgenghui 的回复:]
或者将
functionEnable.ReadyRetryCount值改大试试
[/Quote]
好的,谢谢了,方便留个联系方式吗?我对Wifi驱动不是很熟悉,还有其他问题。
比如:在初始化的时候要向SDIO 网卡中load 一个初始化文件,这个文件里边的内容是怎么确定的?
是不是所有的SDIO网卡都需要load文件?
还有就是驱动是通过哪个函数发送命令的?
Linux_lee 2010-06-21
  • 打赏
  • 举报
回复
移植这类的驱动应该只需要修改跟接口相关部分代码,使得WIFI的固件能顺利下载运行,基本就不会有大问题了
liaifeilove 2010-06-21
  • 打赏
  • 举报
回复
SDIO WiFi驱动是不是每个芯片的都大不一样啊?有没有什么资料或者教程?
cgenghui 2010-06-21
  • 打赏
  • 举报
回复
mail:
sino-japan@163.com

[Quote=引用 13 楼 liaifeilove 的回复:]
引用 10 楼 cgenghui 的回复:
或者将
functionEnable.ReadyRetryCount值改大试试

好的,谢谢了,方便留个联系方式吗?我对Wifi驱动不是很熟悉,还有其他问题。
比如:在初始化的时候要向SDIO 网卡中load 一个初始化文件,这个文件里边的内容是怎么确定的?
是不是所有的SDIO网卡都需要load文件?
还有就是驱动是通过哪个函数发送命令的……
[/Quote]
owen9173 2010-06-20
  • 打赏
  • 举报
回复
支持楼上
quansui 2010-06-20
  • 打赏
  • 举报
回复
有没有发现wifi驱动和U盘驱动冲突啊。我发现板子先接入wifi好使并可以连接上网,然后再插U盘就提示无法识别的usb设备。如果先插U盘也好使,再插wifi就会提示无法识别的usb设备。谁知道怎么回事啊。
cgenghui 2010-06-18
  • 打赏
  • 举报
回复
或者将
functionEnable.ReadyRetryCount值改大试试
cgenghui 2010-06-18
  • 打赏
  • 举报
回复
好像不需要先disable function
sdStatus = SDSetCardFeature(pAdapter->hDevice,
SD_IO_FUNCTION_DISABLE,
&functionEnable,
sizeof(functionEnable));
直接enable function就可以了
尝试将
functionEnable.Interval = 500;
functionEnable.ReadyRetryCount = 3;
改为
functionEnable.Interval = 100;
functionEnable.ReadyRetryCount = 2;
试试
liaifeilove 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cgenghui 的回复:]
卡初始化出错
是哪个命令呢?
CMD5,3,7?
[/Quote]
发送命令是哪个函数?我看了半天都没看到到底是什么函数在确定发送命令。
liaifeilove 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 panzekai 的回复:]
和6410的类似吗?
[/Quote]

你调试过6410吗?这个应该和用哪个CPU关系不太大
liaifeilove 2010-06-18
  • 打赏
  • 举报
回复
调用这个函数在
sdStatus = SDSetCardFeature(pAdapter->hDevice,
SD_IO_FUNCTION_DISABLE,
&functionEnable,
sizeof(functionEnable));

//MessageBox(NULL, TEXT("Enable IO FUN"), (TEXT(IFSTRN) TEXT(CHIPSTRN) TEXT("_") TEXT(RFSTRN)), MB_OK);

//031407 Need to do delay here. Don't try to save the time....
DBGPRINT(DBG_LOAD|DBG_ERROR, (L"%S() - Sleeping for %d ms\n", __FUNCTION__, 100));
NdisMSleep(100000);

functionEnable.Interval = 500;
functionEnable.ReadyRetryCount = 3;

// turn on our function
sdStatus = SDSetCardFeature(pAdapter->hDevice,
SD_IO_FUNCTION_ENABLE,
&functionEnable,
sizeof(functionEnable));

返回错误。
打印消息:
+CESDHCSlot::BspESDHCIsCardPresent
+CESDHCSlot::HandleInsertion
+CSDDevice::GetCustomRegPath:\Drivers\SDCARD\ClientDrivers\Custom\MANF-0097-CARDID-4076
+CSDDevice::GetCustomRegPath:\Drivers\SDCARD\ClientDrivers\Custom\MANF-0097-CARDID-4076
+CSDDevice::GetCustomRegPath:\Drivers\SDCARD\ClientDrivers\Custom\MANF-0097-CARDID-4076
SDNDISLDR: +NDL_Init
SDNDISLDR:Open path \Drivers\SDCARD\ClientDrivers\Custom\MANF-0097-CARDID-4076-FUNC-1 SDNDISLDR: -NDL_Init
SDNDISLDR: +LoadMiniport
SDNDISLDR: stringBuff: ?#??
SDNDISLDR: Tokenizing instance information: SDIO8686:SDIO86861 SDNDISLDR: Miniport instance path \Comm\SDIO86861\Parms SDNDISLDR: Storing ActiveKey Path Drivers\Active\62
LoadMiniport: NdisRegisterAdapter MiniportName:SDIO8686
MiniportInstance:SDIO86861
INIT - Enter MrvDrvInitialize
[WiFi]: Driver Version: 38.p47
SDNdis: Active path str == Drivers\Active\62SDNdis: Active Path Retrieved: Drivers\Active\62
SDNDIS : Enabling Card ...
SDNDIS: Failed to enable Function:0xC0000012
*** SDIOInitialization FAILED! ***
*** SDIOInitialization FAILED! ***
[TT] SDIO initialization is failed! Quit initialization process

SDNDISLDR: -LoadMinipor failure
cgenghui 2010-06-18
  • 打赏
  • 举报
回复
能否把打印信息贴出来呢
cgenghui 2010-06-18
  • 打赏
  • 举报
回复
卡初始化出错
是哪个命令呢?
CMD5,3,7?
[Quote=引用楼主 liaifeilove 的回复:]
我想把Marvel SD8686的驱动移植到TI的WD7123上,不知道各位有什么思路没有?


我现在已经将8686的驱动加载到系统里面,并且系统插卡后能正确加载这个驱动,
只是在初始化的过程中,初始化卡的时候返回错误。
按照CE6.0 SD驱动体系来说,Client层的驱动应该和硬件没有关系了,查看代码也看不出什么东西来,
请问,我是否需要修改SD host controler 或……
[/Quote]
panzekai 2010-06-18
  • 打赏
  • 举报
回复
和6410的类似吗?
InsaneCode 2010-06-18
  • 打赏
  • 举报
回复
帮你顶一下,没有一直过这个驱动。但是我觉得sD的控制寄存器应该是需要修改的吧。
liaifeilove 2010-06-18
  • 打赏
  • 举报
回复
怎么没人理啊》?顶起

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧