<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git, branch docs/stm32f7-usb-host-limitation</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/?h=docs%2Fstm32f7-usb-host-limitation</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/?h=docs%2Fstm32f7-usb-host-limitation'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-09-04T05:15:56Z</updated>
<entry>
<title>docs: link STM32F7 hub limitation from README</title>
<updated>2026-09-04T05:15:56Z</updated>
<author>
<name>HiFiPHile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-09-04T05:15:56Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=32bef2eedab3fade68144992fbb8f627491ee147'/>
<id>urn:sha1:32bef2eedab3fade68144992fbb8f627491ee147</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: document STM32F7 low-speed hub limitation</title>
<updated>2026-09-04T05:13:27Z</updated>
<author>
<name>HiFiPHile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-09-04T05:13:27Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=64d7bbd8955e708b525c866f54ac1051d69d6e3c'/>
<id>urn:sha1:64d7bbd8955e708b525c866f54ac1051d69d6e3c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge pull request #3815 from HiFiPhile/agent/fix-dwc2-host-fifo-allocation</title>
<updated>2026-09-03T10:11:04Z</updated>
<author>
<name>Zixun LI</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-09-03T10:11:04Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=5f486caf2c52bee3729631b12eaa867c14e24263'/>
<id>urn:sha1:5f486caf2c52bee3729631b12eaa867c14e24263</id>
<content type='text'>
hcd/dwc2: fix FIFO allocation and periodic transfer</content>
</entry>
<entry>
<title>Merge pull request #3877 from kilograham/rp2040-pio-usb-fix</title>
<updated>2026-09-03T02:55:54Z</updated>
<author>
<name>Zixun LI</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-09-03T02:55:54Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=fe3074ede45c53acd66356b4568115410a0bfc0b'/>
<id>urn:sha1:fe3074ede45c53acd66356b4568115410a0bfc0b</id>
<content type='text'>
rp2040: do not require PICO_DEFAULT_PIO_USB_DP_PIN to be set for pio_usb</content>
</entry>
<entry>
<title>rp2040: do not require PICO_DEFAULT_PIO_USB_DP_PIN to be set for pio_usb</title>
<updated>2026-09-02T18:35:51Z</updated>
<author>
<name>graham sanderson</name>
<email>graham.sanderson@raspberrypi.com</email>
</author>
<published>2026-09-02T18:35:51Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=5d71979f4ee629f5d811bd2e3f4d975f2a87f61a'/>
<id>urn:sha1:5d71979f4ee629f5d811bd2e3f4d975f2a87f61a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(dwc2): bound periodic intervals to HFNUM range</title>
<updated>2026-09-02T14:18:44Z</updated>
<author>
<name>HiFiPHile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-09-02T14:18:44Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=e461c6f9c139a0012ef01d53db1aab1c68789b56'/>
<id>urn:sha1:e461c6f9c139a0012ef01d53db1aab1c68789b56</id>
<content type='text'>
HFNUM retains only 16384 host-frame positions, while valid periodic endpoint intervals can be longer. Resubmission after the counter wraps can therefore alias the elapsed time and skip the next established service phase.

Cap the host-selected interval to one HFNUM cycle using the root-port frame unit. USB permits a shorter host-provided period, and the bounded interval keeps phase calculation unambiguous for native and split endpoints.
</content>
</entry>
<entry>
<title>fix(dwc2): defer periodic DMA abort cleanup until halt</title>
<updated>2026-09-02T14:14:26Z</updated>
<author>
<name>HiFiPHile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-09-02T01:54:17Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=14060950b487f931d959699c42b0875c96ca6a01'/>
<id>urn:sha1:14060950b487f931d959699c42b0875c96ca6a01</id>
<content type='text'>
Periodic DMA channels use their natural service-boundary halt instead of a software CHDIS request. Keep the endpoint busy after an abort so a replacement transfer cannot reuse its state or buffer while the channel remains active.

When HCINT.HALTED arrives, release the channel without reporting completion for the aborted transfer. If endpoint closure is also pending, release the endpoint from the same halt path.
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/master' into agent/fix-dwc2-host-fifo-allocation</title>
<updated>2026-09-02T13:21:41Z</updated>
<author>
<name>HiFiPHile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-09-01T15:44:58Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=51761d2dfdf2036395b0b6ada6fdde213f97416f'/>
<id>urn:sha1:51761d2dfdf2036395b0b6ada6fdde213f97416f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>USBH: fail enumeration cleanly after disconnect</title>
<updated>2026-09-02T13:21:41Z</updated>
<author>
<name>HiFiPHile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-09-01T15:24:13Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=a52b5a0c25d2cfea286d67eb3d9d8891a9b69e8f'/>
<id>urn:sha1:a52b5a0c25d2cfea286d67eb3d9d8891a9b69e8f</id>
<content type='text'>
A disconnect can close endpoint zero after an enumeration control stage completes but before USBH submits the next stage or request. HCD submission then legitimately returns false; treating that result as an invariant violation asserts during rapid replug and can leave enumeration unfinished.

Complete an in-progress control request as failed when its DATA or status stage cannot be submitted. Propagate submission failures from every asynchronous enumeration continuation and finish enumeration through the normal failure cleanup path. This keeps controller teardown races out of assertions without fabricating a successful transfer.

Validated by interrupting enumeration during rapid STM32U5A5 replug tests with DWC2 DMA and slave modes.
</content>
</entry>
<entry>
<title>DWC2 host: clean up channels on disconnect</title>
<updated>2026-09-02T13:21:41Z</updated>
<author>
<name>HiFiPHile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-09-01T05:06:47Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=3a1dc0dc1f57d45ed75aa9e176425901270e982e'/>
<id>urn:sha1:3a1dc0dc1f57d45ed75aa9e176425901270e982e</id>
<content type='text'>
A root-port disconnect invalidates every active transfer. Retire channel and FIFO interrupt sources plus host-channel state in the disconnect ISR using the Linux DWC2 cleanup model instead of reinitializing the core and PHY, which can sleep on STM32 HS PHYs.

Flush posted slave requests, request halts for enabled channels, clear channel interrupt and software ownership, and keep endpoint records closing until USBH processes the remove event. Reject transfer submissions to closing endpoints, preserve fast-replug notification, and re-enable the global host-channel interrupt when a new channel is initialized.
</content>
</entry>
</feed>
