usb_request: Fix some decoding errors
authorStefan Brüns <stefan.bruens@rwth-aachen.de>
Mon, 17 Jun 2019 17:51:29 +0000 (19:51 +0200)
committerStefan Brüns <stefan.bruens@rwth-aachen.de>
Mon, 17 Jun 2019 17:51:29 +0000 (19:51 +0200)
commit7c4029417cbdd12fdbfbd2a94107e215c1eaa605
treec127f00bce1ce593ec731b6b36472d835cbff687
parentff73d589b60677cf405d8e6af8810c849595fd7a
usb_request: Fix some decoding errors

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).
decoders/usb_request/pd.py