Re: Trouble loading firmware to USB device

From: Farhan Khan <farhan_at_farhan.codes>
Date: Thu, 21 Apr 2022 20:51:57 UTC
On Thu, 2022-04-21 at 20:19 +0200, Hans Petter Selasky wrote:
> On 4/21/22 19:51, Farhan Khan wrote:
> > The usb_config is listed below. I got the bufsize's by running
> > `lsusb`
> > on Linux, but it should be the same basic output from FreeBSD
> > tools. A
> > link to my latest commit is here:
> > https://github.com/khanzf/freebsd/blob/30fe0bd7677f07fd290e4150ccec620b7b09d532/sys/dev/athn/usb/if_athn_usb.c#L249
> 
> bufsize from lsusb is just wMaxPacketSize and is not correct. You
> need 
> to check the driver how big transfers it is doing per endpoint.
> 
> Can you capture all traffic using "usbdump -i usbusX -f Y -s 256 -
> vvv" 
> after you load the driver?
> 
> --HPS

I fooled around a bit with `-f Y`, because I was not certain if the
offset was 0 or 1, but I think (could be wrong) the value for the
interrupt and what the data is loaded over is interrupt 3.

It appears to me that the size of the interrupt is 1024 based on this:

-------
$ sudo usbdump -i usbus3  -s 256 -vvv -f 3
16:46:25.723242 usbus3.3 SUBM-CTRL-
EP=00000000,SPD=HIGH,NFR=2,SLEN=1024,IVAL=0
 frame[0] WRITE 0 bytes
 frame[1] WRITE 1024 bytes
 flags 0x10 <PROXY_BUFFER|0>
 status 0xea0a3
<OPEN|TRANSFERRING|STARTED|CONTROL_XFR|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_
SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
--------

Should this change make a difference to the interrupt issue?

- Farhan