Libertas: Command 3 timed out issue

Dongas dongas86 at gmail.com
Wed May 6 03:37:07 EDT 2009


Hi Bing,

> Something is interesting in your log.
>
>> libertas RX Data: Before chop rxpd: 00 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00
>> libertas RX Data: Before chop rxpd: 80 00 00 00 2e 00 00 00 00 00 00 00 02 00 00 00
>> libertas RX Data: Before chop rxpd: 00 00 00 00 00 00 00 00 00 00 00 00 02 00
>
> Look at the "RX Data" printed in your if_sdio_card_to_host():
>
> 00 00 00 00, 01 00 00 00, 00 00 00 00, 03 00 00 00
> 80 00 00 00, 2e 00 00 00, 00 00 00 00, 02 00 00 00
> 00 00 00 00, 00 00 00 00, 00 00 00 00, 02 00
>
> If I take only the first byte of each 4-byte group I will get:
>
> 00 01 00 03
> 80 2e 00 02
> 00 00 00 02
>
> Does it look like a command response?
> No? Let's look at it this way:
>
> ?? 00 (length)
> 01 00 (type)
> 03 80 2e 00 02 00 00 00 02 ...
>
> Where is the first byte of the header?
>
>> libertas thread: packet of type 0 and size 50 bytes
>
> Here it is, 50 (0x32)!
>
> 32 00 (length)
> 01 00 (type)
> 03 80 2e 00 02 00 00 00 02 ...
>
> Now, does it look like the CMD RESP (ID=0x8003, Size=0x002e, SeqNum=0x0002, Result=0x0000)?
>
> 32 00 (size, 0x2e + 4 bytes for header)
> 01 00 (type)
> 03 80 2e 00 02 00 00 00 02 ?? ?? ?? ?? ?? ?? ??
> ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
> ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
>
>
> You may want to print out more "RX Data" in your if_sdio_card_to_host() to find out what the "??" bytes are.

Thanks for your reply.
With your suggestions, i found that our board SD host driver failed to
read the responsed data of CMD3 properly (involved with bytes sequence
problem).
After fixing the issue of host driver, the libertas driver runs well.

Thanks

Regards
Dongas



More information about the libertas-dev mailing list