wifi 88w8782固件传输完成,cmd id 0xa9超时

发表在 SDIO2019-1-17 11:28 [复制链接] 9 917

本帖最后由 _Tony_ 于 2019-1-17 14:17 编辑
; }% q2 K1 G, X* F9 k( ]* z( U: c  \  Z( c) A: c  o- T8 l$ ~
请教一个问题,MCU是ARM9,使用RT-Thread SDIO驱动框架能成功读写sd卡,换成88w8782 wifi传输完固件,发送命令0xa9(HostCmd_CMD_FUNC_INIT)响应超时了,具体log见附件。请问一下,这一般是什么原因造成的?+ @4 K8 ], n9 x% B( z8 G

% t& k, q% ~, D4 o( nwlan: Loading MWLAN driver- y7 O$ C# {- t5 Q* d& y7 w
vendor=0x02DF device=0x9121 class=0 function=1) x0 h1 S& N) d! r, N1 r4 G0 T
rx_work=0 cpu_num=16 D) u8 R3 M0 y* _! ^( w
Wlan: FW download over, firmwarelen=254036 downloaded 254036
6 n* o  R0 S- T; l; OWLAN FW is active# C1 C' L4 c' ^9 _+ G# C# `/ c
Timeout cmd id (32.560000) = 0xa9, act = 0x0
9 M3 {, g9 k( [3 ?a9 00 08 00 01 00 00 00 00 00 00 00 00 00 00 00. V1 Z3 f& Z8 e7 g$ ^
BSS type = 0 BSS role= 0" G2 c7 U1 g5 U: V) k/ e
------------Dump info-----------! ?4 N" P) k2 [
Commmand Timeout, {% P) r) S/ a; H+ N* G  n
pending command id: 0x3 ioctl_buf=00000000( C5 r, L% i: _3 |9 [
pending command id: 0xd9 ioctl_buf=00000000
; x  x+ \# ]; E8 o% Epending command id: 0xe4 ioctl_buf=00000000
" x  b! o0 ]9 z5 K9 y' a+ Hpending command id: 0xe4 ioctl_buf=000000006 d- @' V. q' Z- |
pending command id: 0xd6 ioctl_buf=000000008 ?- W4 Y2 ^8 v% `% _( G6 C6 ]# h
pending command id: 0x1e ioctl_buf=00000000" m7 o8 _; N/ `; q+ ~( F
pending command id: 0x83 ioctl_buf=00000000
( _3 B% i+ S+ Z1 d; ?" Bpending command id: 0xdf ioctl_buf=00000000% c, [, i9 l7 w& G! k$ a$ i4 R  f& W
pending command id: 0x28 ioctl_buf=00000000
/ h. ]: O! D; RNo pending scan command
$ r- F) ?0 o8 ?% S+ T
" i* O  c1 {" Y9 O! G) W; m2 E9 B7 I

1 {7 d  j+ g* ?3 c
- Q) [* ]+ a1 F4 ?8 c9 e/ r0 E$ B/ h5 z

log.txt

53.78 KB, 下载次数: 375

使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-1-21 15:54:46 | 显示全部楼层
命令0xa9的响应是resp是哪种类型? 是否驱动中没有支持?
使用道具 举报 回复
发表于 2019-1-21 16:34:31 | 显示全部楼层
本帖最后由 _Tony_ 于 2019-1-21 16:44 编辑 3 q8 n" y" W* K9 o9 L$ f$ [
aozima 发表于 2019-1-21 15:54
1 u! n" J- _: i; \' E1 D命令0xa9的响应是resp是哪种类型? 是否驱动中没有支持?

) F2 @+ _. Q/ h( C以下是对应的log,看着是有响应的。wlan_init_fw 返回对应是MLAN_STATUS_PENDING,不知道有没有什么影响?
, ~$ {( ~  t. ^# N& I, c8 l  c# f* O0 k- ?6 u, _' p9 l1 B- Q
DNLD_CMD (46.265000): 0xa9, act 0x0, len 8, seqno 0x1
7 X4 e' `/ n' X+ M% I8 p9 a" wDNLD_CMD:6 _9 b; G* N! U- z- @; v
a9 00 08 00 01 00 00 003 p# }/ X1 P: k; k( Y& v
Enter: wlan_sdio_host_to_card
* ?5 P# a/ g! }Enter: wlan_write_data_sync
$ o  A4 J( o" k) E3 A3 W[D/SDIO] CMD:53 ARG:0x92000100 RES:R5 rw:w len:256 blksize:256
; t* V2 m- r  r" T# |/ y+ K; |[I/SDIO]        resp[0] = 0x00002000
- i1 `. C: ]: `. ^! S9 C. c# r
Leave: wlan_write_data_sync
$ Y( l, f: J  t; M" s4 ZSDIO Blk Wr:, v' g% V- k# k9 J2 f
0c 00 01 00 a9 00 08 00 01 00 00 00 00 00 00 00( X+ y8 q% E) Z
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00: J1 ]+ R+ r# a/ |0 V( \, X$ a' m
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
7 b. ~5 n5 C$ a; \  C00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 007 r4 O" a/ A. u2 Y
Leave: wlan_sdio_host_to_card. N2 U% s7 W1 w' f
Leave: wlan_dnld_cmd_to_fw
$ ^9 v: k- `/ E  o6 M6 b! t0 x6 a# S5 [Leave: wlan_exec_next_cmd/ N8 w; y% o2 g  p5 ~9 W
Leave: mlan_main_process
, V! i9 G/ ~1 Y. ALeave: wlan_init_fw
6 p8 C* E  ]% `9 `5 B, t0 ^wlan_init_fw returned ret=0x11 e8 p+ J  |; Y- I
Leave: mlan_init_fw
' v% B$ p# J/ p4 e- K1 |Enter: wlan_cmd_timeout_func
1 `  q3 R. G* v% ~+ Q5 zTimeout cmd id (66.331000) = 0xa9, act = 0x0
: |+ e& \0 D2 p3 C. ra9 00 08 00 01 00 00 00 00 00 00 00 00 00 00 00
# Y3 y3 H7 N5 A, l4 s- y: X+ C% xBSS type = 0 BSS role= 0
$ e2 @: ^8 b, b) A/ w6 ]6 b
" e3 E$ s( D2 v/ M- r% k: X
使用道具 举报 回复
发表于 2019-1-21 16:49:02 | 显示全部楼层
>[D/SDIO] CMD:53 ARG:0x92000100 RES:R5 rw:w len:256 blksze:256( E- W: S9 w/ @1 \0 @4 F* [
我是说这个,你看下是否有没处理全的响应类型,每个命令可能有自己对应的响应类型
; e' T) @% p  H) W另外,SDIO也可以用逻辑分析仪来抓,这样比较直观。抓的时候速度调低些。
- i) l+ S- S. d0 P5 h
. x( u& q& R2 V5 Y
使用道具 举报 回复
发表于 2019-1-21 16:51:34 | 显示全部楼层
看了你日志,可能我理解有误,你这个A9是你WIFI模块本身的命令。) h5 ]& H! x+ k  }) m1 h5 l3 p, |* [
不是SDIO的。: l* L) `6 s* D+ ?: `$ M
8 f$ D4 w4 J) D7 E7 n
所以你得检查模块和固件本身。6 f6 {, ?: {' z1 E' z
1。 A9之外其它的命令是否有响应?还是A9是第一个?
7 c$ v( Q; W$ V. I- o- t2。 固件是否成功下载进去了?可能下载的数据出了错?
. ~. J9 U3 d. s2 |1 A7 N, @3。 固件本身是否与模块匹配? 不然固件可能 无法2次boot; o4 }. N3 p; f+ X8 m$ l
4。 more...
使用道具 举报 回复
发表于 2019-1-21 17:46:10 | 显示全部楼层
aozima 发表于 2019-1-21 16:51
6 ^( ]7 L: B1 W看了你日志,可能我理解有误,你这个A9是你WIFI模块本身的命令。" q) H! l$ b/ S0 c- |' y/ B7 ]) W
不是SDIO的。
$ J: z; D; Y. P) N9 z/ @) i
1、0x00a9(HostCmd_CMD_FUNC_INIT)是第一个发出的模块命令,后续也都无法识别,后面有丢出信息
0 n% J+ K5 a1 @# X9 E7 }" e  zQUEUE_CMD: cmd=0xa9 is queued/ w" N  Z% Q( K  e
QUEUE_CMD: cmd=0x3 is queued# {8 e/ I0 n0 r& j0 V* e5 A  `
QUEUE_CMD: cmd=0xd9 is queued/ M9 [9 Z1 B4 t2 w
...* d5 A1 k  Y. h1 V. Y" m
------------Dump info-----------5 e# f% U( g6 m- n
Commmand Timeout5 V9 j+ U! Q# r4 f: r5 F
pending command id: 0x3 ioctl_buf=00000000
/ Z, P: B; e- X* D* ^9 Qpending command id: 0xd9 ioctl_buf=00000000
+ ^1 f4 ^1 g6 e6 ipending command id: 0xe4 ioctl_buf=00000000- W5 {# K8 x- c$ n  I* k
...
0 l7 y/ p% `# s  b7 h0 d1 d2、固件有传输过去了。若固件在传输过程中传输错误,会报CRC错误,并多次尝试重传,都失败后,会提示固件传输失败并终止传输。5 w2 X2 U) M; {- ~& ]' m
3、固件是 \packages\wlanmarvell-latest\FwImage 对应型号的镜像,应该不会错的。wifi packages是latest版本;
使用道具 举报 回复
发表于 2019-3-11 10:15:13 | 显示全部楼层
关注中
使用道具 举报 回复
发表于 2019-11-18 18:19:06 | 显示全部楼层
问题解决了,忘记结贴了!
1 H( G5 u7 b3 \将SD主机时钟一直开着,空闲的时候也让时钟一直在跑,就没出现crc错误,wifi模块也能正常驱动使用了!
' X+ ]3 K" _3 u5 s可能空闲时候关闭SD时钟,通过其他方式也可以解决问题,后面没有再去深究了。
使用道具 举报 回复
发表于 2019-11-18 19:00:46 | 显示全部楼层
见过有些芯片要靠SDIO时钟活着,不能关掉省电。
2 h! W: g* b0 q- x* j甚至要求SDIO只能是特定的几个频率。  `6 m* r( J% i; `2 K
这应该和芯片的硬件设计有关。
使用道具 举报 回复
发表于 2019-11-18 22:43:25 | 显示全部楼层
aozima 发表于 2019-11-18 19:00
+ j! h7 f8 _3 x+ b, b9 B见过有些芯片要靠SDIO时钟活着,不能关掉省电。0 ?6 }3 w0 P. t% }
甚至要求SDIO只能是特定的几个频率。2 e) e! B0 A: y' c
这应该和芯片的硬件设 ...
1 Z% u4 n2 Z" p  N$ C/ M6 Q- W
感谢前段时间的指导,感恩!
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

快速回复 返回顶部 返回列表