summaryrefslogtreecommitdiff
path: root/hw/bsp/ch32v10x
AgeCommit message (Collapse)Author
2026-07-28bsp, hil: flash WCH boards with the unified OpenOCD fork (#3791)Ha Thach
bsp, hil: flash with the unified OpenOCD fork https://github.com/hathach/openocd (branch tinyusb) is mainline plus every config these boards need: RPi RP2350, ADI max32/max78, the MounRiver WCH configs, and the wlinke adapter on mainline's riscv target. It is a superset of the vendor forks, so one 'openocd' covers all boards; -DOPENOCD=/OPENOCD= still select another, msdk's when MAXIM_PATH is set. Drops family_flash_openocd_wch and the OPENOCD_WCH pair, dedups family_flash_openocd_adi, aligns ch583's work area, and points hil at the flasher's own config instead of generating one per probe. Verified: HIL green on all four WCH boards and max32666fthr.
2026-06-18dcd/ch32_usbfs: support CH32V103 combined endpoint control registerhathach
CH32V103 uses the older USBFS IP: a single combined UEPn_CTRL register per endpoint (IN response in bits [1:0], OUT response in [3:2], shared auto-toggle, separate IN/OUT toggles) instead of the separate UEPn_TX_CTRL/UEPn_RX_CTRL bytes of the newer IP (CH32V20x/V307). The shared driver was written for the newer IP, so EP0 control transfers never worked on V103: the OUT response was written to a reserved byte and the IN write clobbered the OUT bits. - ch32_usbfs_reg.h: annotate the V103 register struct with byte offsets and add a union exposing the combined UEPn_CTRL at the UEPn_TX_CTRL offset; define CH32_USBFS_EP_CTRL_COMBINED and the combined-register bit positions. - dcd_ch32_usbfs.c: abstract EP control access behind ep_tx/rx_ctrl_set() (full write) and ep_tx/rx_set_response() (response-only RMW). The newer-IP path is unchanged; the combined path read-modify-writes the single register and arms the post-SETUP data stage at DATA1. - bsp/ch32v10x: implement board_get_unique_id() (real chip UID) and drop the CSR 0x800 writes that corrupted the QingKe V3 interrupt config and left all interrupts disabled (the USB ISR never ran). Verified on ch32v103r_r1_1v0: enumerates and passes HIL for cdc_msc, hid, msc, midi, mtp, dfu, etc. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30Merge pull request #3620 from UMRnInside/fix-ch32v103-hardfaultZixun LI
Fix ch32v103 hardfault & Add CH32V103C8T6 Bluepill board
2026-05-26Enable GPIOC for CH32V103 bluepill boardsUMRnInside
2026-05-24Fix missing prototype in ch32v10x bspUMRnInside
2026-05-24use vendor-specific CSR 0x800 to toggle IRQUMRnInside
2026-05-24Fix typo found by CopilotUMRnInside
chinese -> Chinese manufactors -> manufacturers Co-authored-by: Copilot Autofix powered by AI <[email protected]>
2026-05-22bsp/ch32: fix linker report 100% RAM usageHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-04-26Add ch32v103c_bluepill boardUMRnInside
2026-04-26Fix CH32V103 hardfault on startupUMRnInside
2026-04-06remove IAR toolchain support from make build systemhathach
IAR is only supported with CMake. Remove all IAR-specific references from the Make build system including toolchain files, SRC_S_IAR, LD_FILE_IAR variables, and IAR toolchain detection. Also fix GET_SECTOR_COUNT truncation in msc_file_explorer and broken formatting in stm32f7 board_uart_write. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-04-04implement board_uart_read()/write() as non-blocking for all familieshathach
2026-02-28replace board_millis() with tusb_time_millis_api()hathach
2025-10-28fix warning with strict prototypes warningshathach
2025-10-28disable warning for startup filehathach
2025-10-23force clang asm with -x assembler-with-cpphathach
2025-10-23refactor family.cmake: rename add_board_target() to family_add_board() and ↵hathach
move it to family_configure_common() also move startup and linker from board target to actual exe
2025-10-14fix lots of warnings for missing-prototypes for irqhandlerhathach
2025-01-25cmake remove EXAMPLE-tinyusb target as libraryhathach
2025-01-24add cmake RTOS=zephyr (default noos) for zephyr buildhathach
2025-01-22- change to use CMAKE_SYSTEM_CPU to prevent CMAKE_SYSTEM_PROCESSOR conflict ↵hathach
with zephyr - change tinyusb CMakeLists.txt to function tinyusb_target_add() instead of defining tinyusb lib target
2024-12-27embed metadata to family.c and board.h to generate supported boards dochathach
2024-06-21add new ch32v203g6u board, sysfreq is defined in board.cmake/mkhathach
2024-06-14minor updatehathach
2024-06-14more updatehathach
2024-06-14add ch32v103 bsp support, compile but does not run, probably due to ↵hathach
compile/linker issue