Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Usb request enhancements #1

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Conversation

StefanBruens
Copy link
Owner

Several enhancements to the usb_request decoder

Append OUT data only if it has been ACKed. OUT transfers (BULK OUT or
CONTROL transfer DATA stage) are typically NACKed to create backpressure.

Always keep IN and OUT transfers separate. On the physical layer, the
endpoint number only uses 4 bits, and IN and OUT use separate tokens.
In case the transfer is an IN transfer, set the high bit as used in the
endpoint descriptors (i.e. 0x81 is IN enpoint 1, 0x01 is OUT endpoint 1).
E.g. CONTROL and BULK IN transfers may overlap each other, and as a result
only one of the two can be seen in pulseview.

Partly solves bug #1046. In case a device has multiple IN/OUT endpoints,
transfers would still overlap, but many simple devices have just one each.
From a protocol level, a BULK IN transfer starts when the host starts
polling the respective endpoint. For analysis, it is sometimes useful
to show when the devices starts to answer the requests.

As both are useful for different use cases (the old, default one emphasizes
the host behavior, the new one shows the endpoint/device behavior), make
the display configurable.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant