<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/src/portable/synopsys, branch dcd_ch32hs_spd</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/src/portable/synopsys?h=dcd_ch32hs_spd</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/src/portable/synopsys?h=dcd_ch32hs_spd'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-06-11T03:17:28Z</updated>
<entry>
<title>Fix stm32f723disco host/cdc_msc_hid HIL: UART RX starvation + DWC2 DMA split-IN NAK storm (#3677)</title>
<updated>2026-06-11T03:17:28Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-11T03:17:28Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=dffc57135846a4b00aca06b2f588daa6d13b67ef'/>
<id>urn:sha1:dffc57135846a4b00aca06b2f588daa6d13b67ef</id>
<content type='text'>
Fix stm32f723disco host HIL: UART RX starvation + DWC2 split bulk NAK/XactErr handling (#3677)
stm32f7 BSP — UART RX starvation
- The host console USART shared interrupt priority with the USB OTG ISR, so a long
  OTG interrupt could starve RXNE and drop received bytes. Raise the USART RX IRQ
  above OTG_FS/OTG_HS in both the bare-metal and FreeRTOS init paths, guarded by
  #ifdef UART_ID so boards without a UART console keep the default OTG priority.

dwc2 host — split NAK/XactErr handling
- Slave mode: a persistently-NAKing split bulk/control IN poll re-armed the
  start-split immediately, storming the ISR and starving task context. Throttle by
  disabling the channel and re-arming on the resulting halt (no frame deferral).
- Buffer-DMA mode: a pure split bulk-OUT NAK was unhandled, leaving the channel
  halted and stalling the transfer — the dominant cause of CDC echo truncation.
  Handle it by rewinding the buffer pointers and retrying the start-split
  (Programming Guide v4.20a 5.1.4.2).
- Buffer-DMA mode: a split bulk-OUT XactErr was retried immediately, exhausting
  HCD_XFER_ERROR_MAX before the transient cleared. Throttle via channel_disable +
  re-arm to give the hub TT a recovery gap, mirroring slave mode.
- All three are scoped to split transfers (hcsplt.split_en); non-split NAK/XactErr
  keep the core-handled / immediate-retry behavior. The OUT XactErr throttle also
  excludes periodic split, where channel_disable() is a no-op and would wedge the
  channel. The nak_disabled flag is generalized to retry_disabled and honors
  xfer-&gt;closing so an endpoint close during a throttled retry tears down cleanly.

Verified on stm32f723disco HIL (slave + CFG_TUH_DWC2_DMA_ENABLE): host/cdc_msc_hid,
msc_file_explorer, and device_info all pass on both variants; DMA CDC echo went
from ~15-25% raw failure to 10/10 clean.</content>
</entry>
<entry>
<title>dwc2: cleanup setup_packet pointer cast (review feedback)</title>
<updated>2026-06-04T13:46:49Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-04T13:46:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=a900ea93db686cacde5e595dc09fdfeaa334d556'/>
<id>urn:sha1:a900ea93db686cacde5e595dc09fdfeaa334d556</id>
<content type='text'>
Cast DOEPDMA0 through uintptr_t and use sizeof(tusb_control_request_t)
instead of the magic constant 8, matching project convention. Add a
reference to Programming Guide v4.20a 9.1.2.1 for the DOEPDMAn-8 rule.

Addresses Copilot review comment; no functional change.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Update setup buffer size definition based on DMA configuration</title>
<updated>2026-06-04T10:55:44Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-04T10:55:44Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=b5e080732e67a52afefa6966ca33474c91a53d0c'/>
<id>urn:sha1:b5e080732e67a52afefa6966ca33474c91a53d0c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'master' into dwc2_postfix</title>
<updated>2026-06-04T08:31:45Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-04T08:31:45Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=0393a5eaa1fc9ef33cbfd847c924cb83d82696f3'/>
<id>urn:sha1:0393a5eaa1fc9ef33cbfd847c924cb83d82696f3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>dwc2: address Copilot review (comment grammar/typo, tinyusb.json f407 dedup)</title>
<updated>2026-06-03T16:41:19Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-03T16:41:19Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=1f6236ae0788e37bb833e4b018faf10fb691bbdd'/>
<id>urn:sha1:1f6236ae0788e37bb833e4b018faf10fb691bbdd</id>
<content type='text'>
Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>dwc2: remove investigation debug logging</title>
<updated>2026-06-03T16:18:28Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-03T16:18:28Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=6b89aea9de07f537611ddffca1183a3a958a7ee4'/>
<id>urn:sha1:6b89aea9de07f537611ddffca1183a3a958a7ee4</id>
<content type='text'>
Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>dwc2: submit setup packet on SETUP_DONE and drop spurious EP0 RX_COMPLETE on core v3.10a (STM32L476)</title>
<updated>2026-06-03T14:44:19Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-03T14:44:19Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=73af6494cd5defc296b91da80e2f59b8af4efa70'/>
<id>urn:sha1:73af6494cd5defc296b91da80e2f59b8af4efa70</id>
<content type='text'>
  DWC2 core rev 3.10a pushes an extra EP0 RX_COMPLETE (RXFLVL PKTSTS 0x3)
  that is not a real OUT data completion, in two cases flagged on DOEPINT:
    - STPKTRX  (Setup Packet Received): between SETUP_RX and SETUP_DONE
    - STSPHSRX (Status Phase Received, control write): after the OUT data
      stage when the host starts the IN status phase
</content>
</entry>
<entry>
<title>dcd/dwc2: fix back-to-back SETUP reception in DMA mode</title>
<updated>2026-06-02T20:59:45Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-06-02T20:38:57Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=cc979da5163d0d407e27d90411a6d4b1a0092779'/>
<id>urn:sha1:cc979da5163d0d407e27d90411a6d4b1a0092779</id>
<content type='text'>
Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>dwc2: process IN EP before OUT</title>
<updated>2026-05-29T09:42:47Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-05-29T09:42:47Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=b4e7c25c1b57a69e4c04e41d0f2203abf0d8d358'/>
<id>urn:sha1:b4e7c25c1b57a69e4c04e41d0f2203abf0d8d358</id>
<content type='text'>
To avoid STATUS IN completion of previous control transfer treated as next DATA IN  when IRQ latency is high.

Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>dwc2: move OUT transfer management into RXFLVL IRQ</title>
<updated>2026-05-28T22:05:44Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-05-28T22:05:44Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=dafdc5c54f34f88c963f7efc0062d0e992074b8f'/>
<id>urn:sha1:dafdc5c54f34f88c963f7efc0062d0e992074b8f</id>
<content type='text'>
- GRXSTSP register has internal FIFO, receiving events won't mix up (STATUS OUT &amp; next SETUP)
- Improve efficiency, remove 2nd IRQ overhead

Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
</feed>
