summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-06-29Fix merged example Sonar warningsmerge_osZixun LI
2026-06-29Consolidate FreeRTOS host examplesZixun LI
Merge paired host FreeRTOS/no-OS examples into their base directories.
2026-06-29Consolidate FreeRTOS device examplesZixun LI
Merge paired FreeRTOS/no-OS device examples into their base directories.
2026-06-29Improve Espressif example build selectionZixun LI
Default Espressif builds to FreeRTOS, discover ESP-IDF examples from component metadata, and make skip filtering RTOS-aware.
2026-06-29Merge pull request #3743 from hathach/claude/build-doc-skillHa Thach
docs: add build-doc tooling and a README for every example
2026-06-29docs: address Copilot review on the example READMEshathach
- Order CFG_TUH_DEVICE_MAX before CFG_TUH_HID in the host config snippets (cdc_msc_hid, hid_controller) so the documented snippet has no forward macro reference when copied into tusb_config.h. - Fix stale `examples.rst` references: the generator now writes per-group `docs/examples/<group>/index.rst` pages, so update the conf.py comment and the build-doc SKILL.md accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-29docs: add build-doc tooling and a README for every examplehathach
Documentation tooling: - Add the `build-doc` skill and `tools/build_doc.py` wrapper for local Sphinx builds (clean / -W / open). - Enable Markdown (MyST) in conf.py and auto-collect examples/{device,host,dual}/*/README.md into a 3-level Examples nav (Examples > Device/Host/Dual > example), noting each page's source location and normalizing headings to a single H1. - Remove the stale `.claude/commands/build-doc.md`; point the AGENTS.md Documentation section at the skill. Example docs: - Add a README.md for every device/host/dual example: what it does, USB interface table, notable tusb_config.h settings, generic CMake + Make build steps, and how to try it. - Fold each *_freertos variant into its base README, noting the FreeRTOS source path and any RTOS-specific behavior. Generated docs/examples/ output is git-ignored. Builds clean with `sphinx-build -W`. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-29Merge pull request #3735 from hathach/claude/hil-ch32v103r-throughputHa Thach
test/hil: enable cdc_msc_throughput on ch32v103r_r1_1v0
2026-06-27Merge pull request #3731 from zjzhang-cn/fix/dwc2-hcd-ls-hfirZixun LI
fix(dwc2_hcd): correct HFIR for Low-Speed devices via internal FS PHY
2026-06-27Merge pull request #3737 from grunzasr/Add_NUCLEO_H533REZixun LI
Add ST board NUCLEO_H533RE
2026-06-27bsp/stm32h5: fix linkerHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-06-27bsp/stm32h5: fix uart definitionHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-06-27refresh presetsHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-06-26Added NUCLEO_H533RE so this board can be used out-of-the-boxgrunzasr
2026-06-26Added files by copying and modifying files from stm32h503nucleo direcotry to ↵Steven Grunza
stm32h533nucleo
2026-06-26test/hil: enable cdc_msc_throughput on ch32v103r_r1_1v0hathach
The board was added to the CI HIL pool with device/cdc_msc_throughput skipped, so the test had never run on it. Remove the skip to include it in the device test set. Verified passing on the ci rig (USBFS, full-speed): CDC read 639 / write 544 kBps, MSC read 845 / write 575 kBps. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-26Merge branch 'hathach:master' into fix/dwc2-hcd-ls-hfir代码人生
2026-06-25hcd/dwc2: update wording on hfirHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-06-25Merge pull request #3616 from michaelajax/fix-stm32-usbcZixun LI
typec/stm32: fix UCPD sink bugs affecting compatibility with newer PD sources
2026-06-25Merge pull request #3730 from dxbjavid/msc-scsi-cb-bufsize-capZixun LI
cap tud_msc_scsi_cb bufsize to endpoint buffer size
2026-06-25fix(dwc2_hcd): correct HFIR for Low-Speed devices via internal FS PHYZhang, Zhenjiang
When a Low-Speed device is connected through the internal FS PHY, the effective PHY clock is 6MHz (HCFG_FSLS_PHYCLK_SEL_6MHZ), but phy_clock was incorrectly left at 48. This caused HFIR to be calculated as 47999 (~8ms SOF interval) instead of the correct 5999 (1ms SOF interval), breaking periodic endpoint scheduling. Fixes: LS mouse only receiving first HID report on OTG_HS + FS PHY
2026-06-24skip cable-plug trafficHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-06-24skip pdo request if no suitable voltageHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-06-24apply review suggestionsHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-06-24fix ciHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-06-24typec: add tuc_connect/tuc_disconnect apiHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-06-24typec: add stm32u5 supportHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-06-24cap tud_msc_scsi_cb bufsize to endpoint buffer sizedxbjavid
2026-06-24Merge pull request #3729 from hathach/claude/usbmon-skill-and-hil-fail-countHa Thach
Add usbmon skill and show pass/fail/skip counts in HIL report
2026-06-24test/hil: show pass/fail/skip counts above the HIL report tablehathach
Prefix each rig's hil_report.md matrix with a one-line tally (passed / failed / skipped) so the number of failed tests is visible at a glance in the PR comment without scanning the table. A metric-string cell (e.g. throughput) counts as a pass; blank/not-run cells are excluded. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-24docs: add usbmon skill for capturing/debugging USB bus traffichathach
Adds a Claude Code skill that wraps usbmon + tshark to capture host-side URBs into a Wireshark pcapng and decode them, for debugging TinyUSB device enumeration/transfer issues on real Linux hardware. Includes a usbcap.sh capture helper (bus / VID:PID / auto) plus filter, errno, and symptom->check reference tables. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-24Merge pull request #3648 from hathach/ch32_fsdevHa Thach
dcd/stm32_fsdev: workaround CH32 EP0 premature OUT ACK
2026-06-23Merge remote-tracking branch 'tinyusb/master' into fix-stm32-usbcHiFiPhile
2026-06-23Merge pull request #3698 from dxbjavid/hid-report-desc-boundsZixun LI
bound item size to remaining length in hid report descriptor parser
2026-06-22Merge pull request #3721 from renjieah/pr-osal-spin-deinitZixun LI
fix: release hardware spinlock in tud_deinit/tuh_deinit
2026-06-22address reviewHiFiPhile
2026-06-22Merge remote-tracking branch 'tinyusb/master' into pr-osal-spin-deinitHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-06-22usbd: add osal_spin_deinit() to tud_deinit()HiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-06-22usbh: remove Pico specific commentHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-06-22osal: add missing osal_spin_deinit()HiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-06-22Merge pull request #3515 from alt-0191/ch58xHa Thach
Add support for WCH ch582/583 series
2026-06-22Merge remote-tracking branch 'origin/master' into add-ch58x-usbfshathach
2026-06-22ci: post HIL report comment from workflow_run so it works on forked PRs (#3723)Ha Thach
* ci: post HIL report comment from workflow_run so it works on forked PRs
2026-06-22tusb_option: dedupe OPT_MCU_CH583 / make OPT_MCU_CH582 a token aliashathach
The CH58x->CH583 rename left OPT_MCU_CH583 defined twice at 2240 plus a second literal 2240 for OPT_MCU_CH582 -- a duplicate public MCU option macro (redefinition). Collapse to a single canonical OPT_MCU_CH583 and define OPT_MCU_CH582 as a token alias of it (matching the OPT_MCU_SAML21/MIMXRT10XX alias style), so there is one value and CH582 still selects the CH583 code path. Found by Codex review. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-22docs: add WCH CH32V103 and CH583/CH582 to the supported MCU tablehathach
Both run on the shared ch32_usbfs device driver (full-speed). CH32V103 is the older combined-control USBFS IP; CH583/CH582 (ch583 family) is device-only in this port. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-22hw/bsp+wch: rename the CH58x family to ch583 and OPT_MCU_CH58X to OPT_MCU_CH583hathach
The BSP family and MCU option were named "ch58x"/"CH58X", but the supported part is the CH583/CH582 (and the SDK repo is openwch/ch583); CH585 is a separate MCU family, so the CH58x umbrella was misleading. Rename to the specific family: - hw/bsp/ch58x -> hw/bsp/ch583 (dir), and the BSP-local files ch58x_it.* -> ch583_it.*, system_ch58x.* -> system_ch583.* (include guards/refs updated). The vendor SDK files (CH58x_common.h, CH58x_*.c in hw/mcu/wch/ch583) keep their names. - OPT_MCU_CH58X -> OPT_MCU_CH583 in tusb_option.h, tusb_mcu.h, and the shared WCH USBFS driver (ch32_usbfs_reg.h, dcd_ch32_usbfs.c). OPT_MCU_CH582 is kept as an alias (same value), so either name selects the same code. - FAMILY_MCUS CH58X -> CH583, CFG_TUSB_MCU=OPT_MCU_CH583, mcu:CH58X -> mcu:CH583 in the example skip lists, the CI build matrix (ci_set_matrix.py), the get_deps family tag, and docs/reference/boards.rst. Board names (ch582m_evt, yd-ch582m) are unchanged. Verified: make + cmake build for ch582m_evt, and ci.lan HIL (all device examples pass). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-21Merge pull request #3712 from hathach/claude/ch32-fsdev-review-fixesZixun LI
dcd/stm32_fsdev: review fixes for the CH32 EP0 OUT workaround
2026-06-21fix(host): release spinlock in tuh_deinit to fix multi-rebuild panicrenjie
tuh_rhport_init() calls osal_spin_init(&_usbh_spin), which under OPT_OS_PICO claims a hardware spinlock via critical_section_init(). There was no osal_spin_deinit(), so tuh_deinit() never released it: every host init/deinit cycle leaked one spinlock. RP2350 has a small spinlock pool, so a few usb_host rebuilds exhaust it and hw_claim_unused_from_range() panics (the long-standing "crashes on the 4th rebuild" bug). Add osal_spin_deinit() to all OSAL backends (critical_section_deinit for pico; no-op for none/freertos) and call it in tuh_deinit(). Verified 20/20 deinit+rebuild cycles on RP2350-Zero and Waveshare RP2350-USB-A (previously panicked on the 4th). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-20examples: skip isochronous audio/UAC examples on CH58Xhathach
CH58x has no isochronous support (dcd_edpt_iso_alloc() returns false), but the audio class ignores that result and the endpoints fall back to capped 64-byte non-iso transfers, producing non-functional audio firmware. video_capture and the FreeRTOS audio examples already carry mcu:CH58X; add it to the remaining iso examples (audio_test, audio_4_channel_mic, audio_test_multi_rate, cdc_uac2, uac2_headset, uac2_speaker_fb) so they are not built for CH58x. Found by Codex review. Verified via build_utils.skip_example() that all six now skip on ch582m_evt while control examples (e.g. cdc_msc) still build. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-20hw/bsp/ch58x: address review feedback and read the real chip unique idhathach
Fold in the CH58x BSP review fixes: - family.mk: drop stray trailing backslashes on the last LDFLAGS/SRC_C entries (harmless -- GNU Make ends the list at the blank line -- but misleading). - debug_uart.c: uart_write() spun on a full ring buffer with nothing to drain it (only uart_sync() advances tx_consume), so a burst larger than the buffer deadlocked. Drain the FIFO while waiting, like uart_sync() does. - wch-riscv.cfg: move the OpenOCD work area from 0x80000000 (unmapped) to the 0x20000000 SRAM, sized to 32 KB, matching ch32v20x/wch-riscv.cfg. - family.c: implement board_get_unique_id() from the factory MAC. CH58x is a BLE part, so a unique 6-byte MAC lives in FlashROM at ROM_CFG_MAC_ADDR; GetMACAddress() reads it via FLASH_EEPROM_CMD (in libISP583.a), so no extra source file is needed. The read buffer is TU_ATTR_ALIGNED(4) and 8 bytes, per the SDK's documented 4-byte-aligned, word-granular buffer contract (CH58x_flash.c). - test/hil/tinyusb.json: key ch582m_evt off this board's actual MAC (D443627B5450) instead of the fixed placeholder, like every other board. Verified on ci.lan HIL: ch582m_evt enumerates with serial D443627B5450 and all device examples pass. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>