tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Support for USBD_FORCE_SHORT_XFER for xhci
> On Sep 3, 2025, at 8:40 AM, Nat Sloss <nathanialsloss%yahoo.com.au@localhost> wrote:
>
> On Mon, 1 Sep 2025 18:12:18 sc dying wrote:
>> On Sun, Aug 31, 2025 at 11:49 AM Jason Thorpe <thorpej%me.com@localhost> wrote:
>>
>> BTW is it due to clearing data toggle?
FWIW, with -current sources from today, + jak's data toggle patch:
stinky:thorpej 3$ minipro -t
Found TL866II+ 04.2.132 (0x284)
Device code: 20775599
Serial code: G4KDI3JQE8KOPVT8G3ZA
USB speed: 12Mbps (USB 1.1)
VPP driver pin 1 is OK
VPP driver pin 2 is OK
VPP driver pin 3 is OK
VPP driver pin 4 is OK
VPP driver pin 5 is OK
VPP driver pin 6 is OK
VPP driver pin 7 is OK
VPP driver pin 8 is OK
VPP driver pin 9 is OK
VPP driver pin 10 is OK
VPP driver pin 30 is OK
VPP driver pin 31 is OK
VPP driver pin 32 is OK
VPP driver pin 33 is OK
VPP driver pin 34 is OK
VPP driver pin 35 is OK
VPP driver pin 36 is OK
VPP driver pin 37 is OK
VPP driver pin 38 is OK
VPP driver pin 39 is OK
VPP driver pin 40 is OK
VCC driver pin 1 is OK
VCC driver pin 2 is OK
VCC driver pin 3 is OK
VCC driver pin 4 is OK
VCC driver pin 5 is OK
VCC driver pin 6 is OK
VCC driver pin 7 is OK
VCC driver pin 8 is OK
VCC driver pin 9 is OK
VCC driver pin 10 is OK
VCC driver pin 11 is OK
VCC driver pin 12 is OK
VCC driver pin 13 is OK
VCC driver pin 14 is OK
VCC driver pin 15 is OK
VCC driver pin 16 is OK
VCC driver pin 25 is OK
VCC driver pin 26 is OK
VCC driver pin 27 is OK
VCC driver pin 28 is OK
VCC driver pin 29 is OK
VCC driver pin 30 is OK
VCC driver pin 31 is OK
VCC driver pin 32 is OK
VCC driver pin 33 is OK
VCC driver pin 34 is OK
VCC driver pin 35 is OK
VCC driver pin 36 is OK
VCC driver pin 37 is OK
VCC driver pin 38 is OK
VCC driver pin 39 is OK
VCC driver pin 40 is OK
GND driver pin 1 is OK
GND driver pin 2 is OK
GND driver pin 3 is OK
GND driver pin 4 is OK
GND driver pin 5 is OK
GND driver pin 6 is OK
GND driver pin 7 is OK
GND driver pin 8 is OK
GND driver pin 9 is OK
GND driver pin 10 is OK
GND driver pin 11 is OK
GND driver pin 12 is OK
GND driver pin 13 is OK
GND driver pin 14 is OK
GND driver pin 15 is OK
GND driver pin 16 is OK
GND driver pin 20 is OK
GND driver pin 21 is OK
GND driver pin 25 is OK
GND driver pin 26 is OK
GND driver pin 27 is OK
GND driver pin 28 is OK
GND driver pin 29 is OK
GND driver pin 30 is OK
GND driver pin 31 is OK
GND driver pin 32 is OK
GND driver pin 33 is OK
GND driver pin 34 is OK
GND driver pin 35 is OK
GND driver pin 36 is OK
GND driver pin 37 is OK
GND driver pin 38 is OK
GND driver pin 39 is OK
GND driver pin 40 is OK
VPP overcurrent protection is OK.
VCC overcurrent protection is OK.
Hardware test completed successfully!
stinky:thorpej 4$ minipro -p AT28C64B -r CV-rom.bin
Found TL866II+ 04.2.132 (0x284)
Device code: 20775599
Serial code: G4KDI3JQE8KOPVT8G3ZA
USB speed: 12Mbps (USB 1.1)
Reading Code... 0%
IO error: submit_transfer: LIBUSB_ERROR_TIMEOUT
stinky:thorpej 5$
...and:
[ 362.861914] xhci0: xhci_device_cleartoggle()
..but obviously still didn't work.
So, it is possible to do some things (as evidenced by running the "minipro -t" hardware test), but reading a ROM croaks. Without the data toggle patch, it doesn't get this far... "minipro -t" works, but "minipro -r" immediately stalls and blocks forever until I ^C.
Once in this state, device is catatonic until I unplug and re-plug.
> Just wondering I had a good look at ugen(4) and found that it uses
> usbd_bulk_transfer which will sets USBD_SYNCHRONOUS on all xfers receieved.
>
> I wonder what would happen if usbd_bulk_transfer was replaced with
> usbd_setup_xfer/usbd_xfer without setting SYCHRONOUS/SYNCRONOUS_SIG?
I'm not sure how that would help? As far as I can tell, all SYNCHRONOUS does it cause used_transfer() to wait for completion (and the _SIG variant makes for an interruptible wait). Entirely possible I'm missing something subtle, though.
-- thorpej
Home |
Main Index |
Thread Index |
Old Index