xobs/tnt: While debugging the unittests (most failing cases are due yo bitrot of the tests) I stumbled upon an issue with the oe12 signal coming from tx/nrzi. It is generated in the 48mhz domain and used asynchronously in 12 MHz by TxPacketSend.FSM and goes through UsbTransfer.FSM into the commit signal. This is part of the 12mhz interface of the USB core so when using it it is sometimes missed. I fixed that by activating the commented-out multireg (but using just one stage, since there is no phase drift between the clocks) which revealed further issues in epmem. When a transfer completes, commit is asserted which in turn disarms the corresponding ep. This is in general expected, but problems arise when there is a "long" transfer split into multiple transfers (see test/common.test_control_transfer_out). Then the ep is disarmed after the first out transfer and NACKs the second one. The question now is how to handle "multi-transfers" in epmem. Should there be some hw functionality to check the space available in the output buffer or should sw be required to rearm the ep? The individual out transfers can happen quite quickly after each other. Any recommendations on how this case should be handled from your point of view? Or insights on the decision to not synchronize oe12 (the multireg comment was there)?