Re: Trouble loading firmware to USB device
- Reply: Hans Petter Selasky : "Re: Trouble loading firmware to USB device"
- In reply to: Hans Petter Selasky : "Re: Trouble loading firmware to USB device"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 21 Apr 2022 17:51:47 UTC
On Thu, 2022-04-21 at 07:57 +0200, Hans Petter Selasky wrote: > Hi, > > 8) usbdump will answer this question. > > I see some more bugs: > > [ATHN_RX_INTR] = { > .type = UE_INTERRUPT, > .endpoint = 0x83, // AR_PIPE_RX_INTR, > .direction = UE_DIR_ANY, > ^^^^ try to use UE_DIR_RX here, else > you might > bind for TX! > > And use UE_DIR_TX for TX. Ditto for the other transfers. Any change? > > Second note, is that you should set some buffer size for the > non-interrupt endpoints, else the buffer size will only be > wMaxPacketSize bytes big! > > --HPS Hi Hans! I did both, but there is no change in the behavior, 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 Still not working :/ - Farhan ----- static const struct usb_config athn_config_common[ATHN_N_TRANSFERS] = { [ATHN_TX_DATA] = { .type = UE_BULK, .endpoint = 0x01, // AR_PIPE_TX_DATA, .direction = UE_DIR_TX, .flags = { .short_xfer_ok = 1, // .force_short_xfer = 1, .pipe_bof = 1 }, .callback = athn_data_tx_callback, .bufsize = 0x200, }, [ATHN_RX_DATA] = { .type = UE_BULK, .endpoint = 0x82, //AR_PIPE_RX_DATA, .direction = UE_DIR_RX, .flags = { .short_xfer_ok = 1, // .force_short_xfer = 1, .pipe_bof = 1 }, .callback = athn_data_rx_callback, .bufsize = 0x200, }, [ATHN_RX_INTR] = { .type = UE_INTERRUPT, .endpoint = 0x83, // AR_PIPE_RX_INTR, .direction = UE_DIR_RX, .flags = { .short_xfer_ok = 1, // .force_short_xfer = 1, .pipe_bof = 1 }, .callback = athn_usb_intr, .bufsize = 0x40, // .callback = athn_intr_rx_callback, }, [ATHN_TX_INTR] = { .type = UE_INTERRUPT, .endpoint = 0x04, //AR_PIPE_TX_INTR, .direction = UE_DIR_TX, .flags = { .short_xfer_ok = 1, // .force_short_xfer = 1, .pipe_bof = 1 }, .callback= athn_intr_tx_callback, .bufsize = 0x40, } }; -----