[linux-dvb] Re: Unbranded USB DVB device afatech af9005

Luca Olivetti luca at ventoso.org
Wed Nov 29 12:06:29 CET 2006


En/na Manu Abraham ha escrit:
> Sorry, was looking at something else.
> 
> Apollo Datasheet v1.1 9002/3/5
> page 41 says
> 
> In 2nd phase the host will download OFSM image to ASIC RAM, which is
> starting from 0x4100.
> In last phase, the host polls status register (0xC90B) to check if this
> downloading is successful or failed.
> So there is a firmware involved.

Ok, now I have that document, and that page refers to firmware 
downloading in MPEG TS mode, in usb mode the procedure is different 
(however it is documented with source code).
I made some sniffing and I can see that the firmware downloading is done 
according to the example software, but in the capture file I see some 
things that aren't documented.

Now comes the question:

0)everything (commands, replies, ts data) is done with bulk transfers
1)all commands are sent on endpoint 2
2)to each command corresponds a reply that comes through endpoint 1 (but 
usbsnoop identifies it as endpoint 0x81)
3)what appears to be TS data comes through endpoint 4 (0x84 in usbsnoop)

The fact that commands and replies are on 2 different endpoints means 
that I cannot use dvb_usb_generic_rw/dvb_usb_generic_write, yes, no, or 
am I just being stupid?
I suppose I can just make a private copy of those functions where, 
instead of using

  usb_sndbulkpipe(d->udev, d->props.generic_bulk_ctrl_endpoint)
  usb_rcvbulkpipe(d->udev, d->props.generic_bulk_ctrl_endpoint)

I would hardcode

  usb_sndbulkpipe(d->udev, 2)
  usb_rcvbulkpipe(d->udev, 1)   (or 0x81?)


Another stupid question: doesn't the usb protocol ensure data integrity? 
Because it seems awkward to me that they go to such great lengths to a) 
encode the packet length as the first 2 bytes of the packet data and b) 
put a checksum on eack packet.

Bye
-- 
Luca

A: Because it destroys the flow of the conversation
Q: Why is it bad?
A: No, it's bad.
Q: Should I top post in replies to mailing lists?



More information about the linux-dvb mailing list