add device specific issues#3653
Conversation
According to WCH FAE transfer complete interrupt is not queued, later completed EP will overwrite INT_ST and RX_LEN. Which means to guarantee data integrity when multiples EPs are enabled: - USB IRQ must have highest priority - IRQ processing time must be less than ZLP duration (~600ns), which is absurd for a 144MHz CPU (85 cycles) Signed-off-by: Zixun LI <admin@hifiphile.com>
There was a problem hiding this comment.
Pull request overview
Updates the TinyUSB “Supported CPUs” matrix to warn that CH32 USBFS/USBHS device-controller drivers may experience data loss due to hardware interrupt behavior, aligning the documentation with the reported WCH FAE guidance.
Changes:
- Mark WCH CH32F20x, CH32V20x, and CH32V305/CH32V307 device support as partial (⚠).
- Add a “Data loss possible” note for the affected CH32 entries in the support table.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Does this also affect CH32H417? I am working on a port for it #3642 and possibly a superspeed one. |
|
@rhgndf I didn't ask for H417. For FS I think it's the same, for HS I hope it's not jugging from the new register layout where each EP has own status and length fields. |
|
@rhgndf After more testing the situation is not that bad, data loss will only occurs on ISO transfers. For other transfer types with In this capture:
I will add more detail to the doc and add the issue of LPC54600. |
Signed-off-by: HiFiPhile <admin@hifiphile.com>
|
|
thank @HiFiPhile I think you forgot to add the actual errata doc |
I should rename it to device specific issues instead of errata. |
yeah, I think it is a better name, may be device/cpu known issues. We may make an mistake especially when there is no offical errata doc. |
Signed-off-by: HiFiPhile <admin@hifiphile.com>
Signed-off-by: HiFiPhile <admin@hifiphile.com>
18acb0d to
08fd880
Compare
Signed-off-by: HiFiPhile <admin@hifiphile.com>
|
I forgot the document itself... |
|
@claude review |
|
Claude finished @hathach's task in 2m 31s —— View job Code Review
SummaryGood addition of device-specific issue documentation. The intent is clear and the information is useful. A few issues need attention before merge. Issues1. Duplicate toctree entry (
|
|
@claude fix your own above review |
|
Claude finished @hathach's task in 2m 39s —— View job Fixed Review Issues
|
- Remove duplicate toctree entry for reference/device_issues from docs/index.rst (already included via docs/reference/index.rst) - Fix WCH section title: CH32V10X/CH32V20X/CH32V30X → CH32F20x/CH32V20x/CH32V30x to match the three actual README table entries (CH32F20x, CH32V20x, CH32V305/307) - Update README anchor links to match the renamed section - Qualify USBFS non-ISO transfer safety claim: USBHS is protected by USBHS_INT_BUSY_EN but USBFS behavior is not yet confirmed - Fix LPC54600 note: "read errata" → "see device issues" - Remove "totally" from LPC54600 description Co-authored-by: Ha Thach <hathach@users.noreply.github.com>
|
@HiFiPhile sorry, trying to test claude to make changes, it is a bit aggressive toward origin fork since it think this may be a local branch. Could tell it to make pr to pr instead. |
|
@claude fix claude code review ci workflow failed |
This comment was marked as outdated.
This comment was marked as outdated.
|
@claude Revert Fix "Qualify USBFS non-ISO transfer claim — replaced blanket "Other types of transfers are not affected" with: USBHS devices are protected by USBHS_INT_BUSY_EN; USBFS behavior is not yet confirmed" |
|
Claude finished @HiFiPhile's task in 37s —— View job Reverted USBFS qualification change
Restored
Removed the conditional text about |
Restore original "Other types of transfers are not affected" statement, removing the conditional USBHS_INT_BUSY_EN / USBFS-unconfirmed wording. Co-authored-by: Zixun LI <HiFiPhile@users.noreply.github.com>

With LPC54600 and WCH CH32X issues inplace and a link from supported device table.
@hathach due to numerous issues we had about Pi-PIO, maybe also note it's limitations ?