Files
tinyusb/tools
hathach 242377411a Add WCH CH32H417 family + nanoCH32H417 board (BSP + USB2 HS dcd)
First stage of the CH32H417/CH32H416 SuperSpeed port (the second WCH SuperSpeed
device family after CH569). This lands the family scaffolding and the USB2.0
high-speed device driver; the USB3 dcd is a stub for now (SPEED=super does not
link yet).

- tools/get_deps.py, src/tusb_option.h (OPT_MCU_CH32H417 2260 + CH32H416 alias):
  openwch/ch32h417 SDK dependency.
- src/common/tusb_mcu.h: OPT_MCU_CH32H417 block with distinct USB IP tokens
  (TUP_USBIP_WCH_USB30_H417 / _USBHS_H417) so neither the CH569 nor the CH32V307
  drivers match; SPEED=super|high selectors mirror the CH569 port; EP0 = 512 on SS.
- hw/bsp/ch32h417: family runs entirely on the V3F core (core 0, boot core), single
  image in the 512 KB shared SRAM (the only SRAM on the bus matrix, USB-DMA
  reachable). family.c aliases USBSS/USBSS_LINK/USBHS(/TIM12) to one forwarder
  (the CH569 LTO identical-code-folding hazard applies), SysTick0 tick, USART1
  PA9 debug, ESIG unique id. Linker derived from the EVT V3F script. Board
  nanoCH32H417 (MuseLab): green LED PC2 active-low, WCH-LinkE VCP on USART1.
- src/portable/wch/dcd_ch32h417_usbhs.c (+ ch32h417_usbhs_reg.h, dcd_ch32h417.h):
  USB2.0 HS dcd for the H417 USBHS IP (per-EP INT_ST EP_DIR+EP_ID, SETUP_IS flag,
  DONE flags, split UEP_TX/RX_EN, NAK/STALL/ACK encoding, manual toggle). Core
  exposed as ch32h417_usb2_* internals for the upcoming USB3 runtime fallback;
  no RAMX bounce (all shared SRAM is DMA-capable, unlike CH56x).

Build-verified: board_test and cdc_msc SPEED=high link cleanly under the full
-Werror set (riscv-none-elf-gcc 13.2). Hardware bring-up pending (see next).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QWhrtHjbSVMKcY68vxBwBm
2026-07-12 04:50:23 +07:00
..
2025-10-03 11:26:14 +07:00
2025-11-11 10:53:39 +07:00