-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
Operating System
Linux
Commit SHA
3a0
Board
MSPM0G5187
Firmware
Sorry this is my first time creating issue here, please respond if i need to provide something else.
What happened ?
While using DFU via TinyUSB on an MUSB-based controller, DFU_UPLOAD intermittently fails after one successful upload. The failure occurs specifically when the host issues a DFU_GETSTATUS request immediately after a DFU_UPLOAD transfer.
This results in:
• Device no longer responding to GETSTATUS
• DFU state machine getting stuck
• Subsequent DFU operations failing until reset
How to reproduce ?
These are the steps:
• Device completes an IN data stage (DFU_UPLOAD)
• MUSB auto-ACKs STATUS OUT
• Host immediately sends the next SETUP packet (DFU_GETSTATUS)
At this point:
• _dcd.status_out is still set
• A new valid SETUP packet is already present
• The driver incorrectly interprets the new SETUP as STATUS handling and drops it
This causes GETSTATUS to never be processed.
Debug Log as txt file (LOG/CFG_TUSB_DEBUG=2)
NA
Screenshots
When i change this highlighted OR condition to AND condition , everything is working fine without status request getting stuck after upload request.
I have checked existing issues, discussion and documentation
- I confirm I have checked existing issues, discussion and documentation.