| Age | Commit message (Collapse) | Author |
|
Final integration for the CH32H417 port.
- .github/workflows/ci_set_matrix.py: add ch32h417 (riscv-gcc) so CI builds it.
- examples/device/net_lwip_webserver: enable LWIP_HIGH_THROUGHPUT for the H417
(SuperSpeed iperf).
- docs/reference/{boards,dependencies}.rst + hw/bsp/BoardPresets.json: regenerated
for the new board and dependency.
usbtest quirks intentionally left at 0 for the H417: its endpoint engine fixes the
two CH569 5 Gbps silicon limitations (RB_EP_TX/RX_HALT gives a repeatable STALL for
case 13; the reworked EP0/chain path is expected free of the wLength%4==1 ctrl_out
drop), so the H417 targets a full 30/30 at SuperSpeed rather than 27/27.
The HIL entry (test/hil/tinyusb.json) is deliberately deferred: it needs the chip's
ESIG unique id read from the board on first flash, which is pending hardware access.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01QWhrtHjbSVMKcY68vxBwBm
|
|
Replace the hydrausb3/wch-ch56x-bsp dependency with WCH's official EVT
(openwch/ch569 @0424d2968); rename the family hw/bsp/ch56x -> hw/bsp/ch569
to match. Adaptations for the EVT layout and API:
- family.cmake/mk: EVT/EXAM/SRC paths (Peripheral/src|inc, RVMSIS, Startup)
- CH56xSFR.H case-wrapper (EVT includes the uppercase name, which breaks
case-sensitive filesystems)
- debug_uart: official UART1_BaudRateCfg + explicit TXD1/RXD1 pin setup
(the EVT has no pin-configuring UART init)
- family.c: .dmadata (RAMX) zeroing moved into board_init (EVT startup
only clears .bss) and a self-contained SPI-ROM reader for the factory
unique ID (the EVT flash API is a binary blob, not linked)
- dcd_ch56x_usbhs.c: plain volatile casts instead of hydrausb3-only
pointer typedefs
- -Wno-comment for the EVT's nested header comments
Validated: full 19-example CMake sweep + Make build green, 65/65 unit
tests, pre-commit clean; on HydraUSB3 hardware cdc_msc_throughput
enumerates at SuperSpeed 5000M with MSC 124/110 MB/s read/write
(direct-IO dd).
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_019MRGjBT2NBkCoWwyDT4LaE
|
|
- CFG_TUD_WCH_USB30_FALLBACK (on by default for SPEED=super): the USB3
dcd owns both controllers on rhport 0. TMR0 times out SuperSpeed link
training (2x 0.5 s: shut USB3 down, then bring USB2 up); an LTSSM
disabled event (SS rejected by the port) switches immediately. The
active controller is dispatched at each dcd entry point; IRQ pendings
are cleared on switch and dcd_int_enable is mode-aware (a stale LINK
pending otherwise refires on every usbd queue unlock)
- Bounded link busy-waits (LINK_STATUS busy can stick once the link is
torn down)
- board_get_unique_id from the factory ID in read-only info flash
(0x77FE4), so the USB serial identifies the chip (HIL requirement)
- HIL: replace ch582m_evt (probe moved) with hydrausb3_v1
- Regenerate boards.rst, dependencies.rst, BoardPresets.json
Verified on HydraUSB3 v1 (ci rig): SuperSpeed still trains at 5000M
with fallback armed (3x replug); with SS terminations disabled the
device falls back and enumerates fully at 480M. Full HIL run passes
10/10 device tests including cdc_msc at SuperSpeed and
cdc_msc_throughput (MSC 22.1/14.1 MBps read/write at NUMP=1);
non-SuperSpeed-aware examples recover onto USB2 via the fallback.
Co-Authored-By: Claude Fable 5 <[email protected]>
|
|
Release:
- Bump version to 0.21.0 and regenerate tusb_option.h, library.json,
repository.yml, sonar-project.properties, boards.rst, dependencies.rst
- Add 0.21.0 release notes and split the changelog into per-release files
under docs/info/changelog/ (date out of title, driver/class groups as
sub-headings, DCD & HCD section after Device/Host stacks)
Contributors:
- Credit each release's PR authors in a Contributors section
- Drop the curated contributors page; add MAINTAINERS.rst
Docs:
- Update Code of Conduct to Contributor Covenant 3.0 (keep it in the repo,
remove it from the built docs)
- Sidebar: add a home entry, rename the group to "Documentation", move
Changelog into it, add a GitHub Sponsor button, merge external links,
rename FAQ; hide the inline toctree on the landing page
- Add the make-release skill and update the AGENTS.md release process
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
|
Signed-off-by: HiFiPhile <[email protected]>
|
|
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]>
|
|
|
|
# Conflicts:
# README.rst
|
|
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 <[email protected]>
|
|
- 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 <[email protected]>
|
|
Signed-off-by: HiFiPhile <[email protected]>
|
|
Signed-off-by: HiFiPhile <[email protected]>
|
|
Signed-off-by: HiFiPhile <[email protected]>
|
|
packet api
Signed-off-by: HiFiPhile <[email protected]>
|
|
Host driver (midi2_host.c):
- midih2_open() now returns actual parsed length instead of max_len,
preventing composite device interface conflicts
- Parsers (alt0/alt1) refactored to return const uint8_t* end pointer
following midi_host.c switch/case pattern
- Alt 1 CS Endpoint now parses MIDI 2.0 layout (bNumGrpTrmBlk at
offset 3 with MIDI_CS_ENDPOINT_GENERAL_2_0 subtype check) instead
of reusing MIDI 1.0 struct (bNumEmbMIDIJack)
- midih2_set_config() now issues SET_INTERFACE control request via
tuh_interface_set() before completing configuration. Falls back to
alt 0 if SET_INTERFACE fails
- Extracted midih2_set_config_complete() and midih2_set_interface_cb()
for async SET_INTERFACE handling
Device driver (midi2_device.c):
- midi2d_open() skip loop now checks bInterfaceNumber, stopping at
interfaces that belong to other functions in composite devices
- SET_INTERFACE handler now rejects alt > 1 (returns false/stall)
- Named constants for GTB descriptor types and MIDI protocol values
Descriptor macros (usbd.h):
- TUD_MIDI2_DESC_ALT1_HEAD: iInterface set to 0 (consistent with
Alt 0), wTotalLength now uses TUD_MIDI2_DESC_ALT1_CS_LEN to cover
all Alt 1 class-specific descriptors
- TUD_MIDI2_DESC_ALT1_EP: now accepts GTB ID list via variadic args,
emitting complete CS endpoint descriptor
Host example:
- CMakeLists.txt restricted to rp2040 family (display.c requires
Pico SDK headers)
- display.c: null terminator after strncpy in log scroll
Documentation:
- class_drivers.rst updated to reflect SET_INTERFACE behavior and
auto-select with fallback
Addresses: Codex P1 (#1, #2, #3), Copilot (#4-#9)
|
|
Add unit tests for MIDI 2.0 drivers:
- Device: UMP word count (all 16 message types), descriptor macro
validation (length, byte layout, alt settings, endpoints),
CS endpoint subtypes, traversal integrity
- Host: UMP word count, callback struct validation, CS endpoint
subtypes
Also add Sphinx documentation for MIDI 2.0 class drivers (Device
and Host API reference, lifecycle, configuration, examples).
Tests: 60/60 PASS (FIFO 26/26, USBD 5/5, MIDI2 Device 18/18,
MIDI2 Host 6/6, USBD internal 5/5)
|
|
Signed-off-by: HiFiPHile <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
interrupt definitions
|
|
|
|
|
|
|
|
Signed-off-by: HiFiPhile <[email protected]>
Signed-off-by: Zixun LI <[email protected]>
|
|
Signed-off-by: HiFiPhile <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Initial nrf54h20 support
|
|
|
|
Co-authored-by: hathach <[email protected]>
|
|
|
|
|
|
Signed-off-by: Mengsk <[email protected]>
|
|
|
|
use local linker to fix READONLY keyword with clang
add wba to ci build
|
|
Clean up includes definitions
Remove wait that is not required
Remove redundant settings
Clean up clock configuration to look like other modules
Remove MSP_Init that is not required
Clean up driver code
dhcp: Fix DHCP_OFFER/DHCP_ACK destinaton.
In RFC 2131, the destination of DHCP OFFER/ACK is defined in Section 4.1.
Fix the destination error by following the rule of RFC 2131.
TODO: We implement all rule but the last one. ARP table is required to associate client's macaddr.
Currently, fallback to broadcast.
Signed-off-by: Elwin Huang <[email protected]>
Fix compile error.
Fix goto indentation
Co-authored-by: Copilot <[email protected]>
Fix osal_spin_unlock for mynewt
Mynewt version for osal_spin_unlock() called
OS_ENTER_CRITICAL instead of OS_EXIT_CRITICAL.
Signed-off-by: Jerzy Kasenberg <[email protected]>
Add ESP32-C5 and ESP32-C61 definitions
fix(dcd/dwc2): Fix reset procedure for versions >=4.20a
Fix STM32L4 GPIOD clock enable for variants without GPIOD
Add weact blackpill support
Add to boards.rst file
Fix file
Small cleanups.
Insert small delay for LowSpeed device
Improve retry operation at NAK response.
Remove dynamic memory allocation
use tusb_time_millis_api() instead of board_millis()
make loopdelay() always inline
update at32f405 dwc2 info and phy width selection
add at32f415 dwc2 info
add some consumer page configs
remove duplicated enum
Initial plan
Fix obsolete cnt assignment in _tu_fifo_peek() overflow check
Co-authored-by: hathach <[email protected]>
Initial plan
Update STM32 CMSIS dependencies to fix HSITRIM register bug
Co-authored-by: hathach <[email protected]>
Remove accidentally committed dependency directories
Co-authored-by: hathach <[email protected]>
Update all STM32 HAL driver dependencies to latest versions
Co-authored-by: hathach <[email protected]>
fix linker h745 issue with clang
fix linker h745 issue with clang
Update all STM32 CMSIS device dependencies to latest versions
Co-authored-by: hathach <[email protected]>
update pio-usb
Create comprehensive GitHub Copilot instructions and fix pre-commit configuration for TinyUSB (#3234)
* Initial plan
* Create comprehensive GitHub Copilot instructions for TinyUSB
Co-authored-by: hathach <[email protected]>
* Remove accidentally committed dependencies, use tools/get_deps.py instead
Co-authored-by: hathach <[email protected]>
* Fix .gitignore: ignore vendor/ directory not ceedling script
Co-authored-by: hathach <[email protected]>
* Revert .gitignore changes and add README_processed.rst
Co-authored-by: hathach <[email protected]>
* Remove README_processed.rst and revert ceedling file permissions
Co-authored-by: hathach <[email protected]>
* Changes before error encountered
Co-authored-by: hathach <[email protected]>
* Remove redundant manual validation step, keep only pre-commit and build validation
Co-authored-by: hathach <[email protected]>
* fix pre-commit
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: hathach <[email protected]>
modified the bsp files of at32 to make them work better
the family name error of at32 has been corrected
fix pre-commit
STM32N6570-DK board is added. Build with DEBUG=1 (make BOARD=stm32n6570dk DEBUG=1 all), otherwise it does not work for now. Tested with examples/device/cdc_dual_ports
|
|
STM32N6570-DK support is added
|
|
|
|
|
|
|
|
|