Skip to content

[msc] fix CSW parsing and CBW tag handling - #1

Merged
antonello-contini-ok merged 1 commit into
oktima-0.21.0from
fix-stale-csw
Oct 19, 2026
Merged

antonello-contini-ok merged 1 commit into
oktima-0.21.0from
fix-stale-csw

Conversation

@antonello-contini-ok

@antonello-contini-ok antonello-contini-ok commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Potenzialmente si interseca con hathach#4009

  • TinyUSB non gestisce correttamente gli eventi STALL che arrivano dalla chiavetta USB.
    • La specifica USB impone che l'host pulisca la condizione di STALL dal device sull'endpoint bulk,
      con una richiesta su EP0.
    • TinyUSB non lo fa, quindi il device continua a rispondere STALL.
    • Sequenza di eventi in una transazione BOT:
      1. L'host manda il CBW; il device lo accetta e risponde correttamente.
      2. L'host chiede il DATA IN; il device risponde STALL.
        • TinyUSB ignora lo STALL e non pulisce il device.
      3. L'host chiede il CSW IN; il device risponde ancora STALL.
        • TinyUSB ignora lo STALL e ci riporta il CSW della transazione precedente.
      4. L'host lavora con dati stale.
    • Secondo Claude, TinyUSB si discosta dalla specifica in quattro punti:
      1. Gestione dello STALL sui dati
      • La specifica chiede di pulire il device e andare avanti.
      • TinyUSB non pulisce il device.
      1. Gestione dello STALL sul CSW
      • La specifica chiede di pulire il device e richiedere di nuovo il CSW.
      • TinyUSB non fa nulla.
      1. Parsing del CSW
      • La specifica richiede di validare il CSW (signature, tag).
      • TinyUSB non lo valida.
      1. Valore del tag nel CBW
      • La specifica richiede un tag diverso per ogni transazione.
      • TinyUSB usa sempre lo stesso valore.
    • Risoluzione:
      • Abbiamo patchato TinyUSB per validare il CSW e assegnare un tag diverso a ogni CBW, sistemando gli ultimie due punti.
      • I restanti due vanno gestiti dal chiamante, che ri-enumera il device in caso di STALL

@antonello-contini-ok
antonello-contini-ok merged commit 1aa68d3 into oktima-0.21.0 Oct 19, 2026
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