summaryrefslogtreecommitdiff
path: root/hw/bsp/rp2040
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-07-24address #3787 Codex round 2: board-gate PHY resets, session robustnesshathach
The board-specific PHY-reset nets move behind a board.h opt-in (TRACE_ETM_QUIET_ENET_PHY on same70_xplained and mimxrt1170_evkb) so other boards of those families cannot inherit a foreign GPIO write; the chip-level trace pin muxes stay family-wide by design (same pattern as stm32h7). same70 reference: width 1 is the validated default until the J403.16 rework, and the hooks now wait (bounded) for PCKRDY3 before Ozone arms trace. ra8m1 reference caches the boot ROM in AfterTargetConnect so --attach sessions decode ROM execution too. etm_capture rejects an unexpanded CMake JLINK_DEVICE with a clear error; PIO-USB + TRACE_ETM on RP2350 is now a compile error (48 MHz trace clock is too slow for PIO-USB and a runtime switch would desync the stream); etm_profile keeps same-named statics from different modules as distinct rows. Build-verified: same70_xplained, mimxrt1170_evkb, raspberry_pi_pico2.
2026-07-24rp2040: RP2350/pico2 ETM trace over fly-wired MIPI-20hathach
J-Link's built-in RP2350 script owns the whole chip-side path (component map is not ROM-table-discoverable; a custom JLinkScript replaces the built-in one and kills pin trace), re-arming at every resume - firmware does no trace setup. TRACE_ETM builds pin clk_sys to 48 MHz from crt0 (fly-wire seating-proof; the port is DDR at clk_sys/2 and the J-Trace PRO V2 cliff sits just above 40 MHz TRACECLK - SEGGER requires V3.0+ for this chip), clear TIMER0/1 DBGPAUSE (default freezes the us-timer while any core is debug-halted and sleep_ms spins forever), and run the UART console TX-only (GPIO1 = default UART0 RX = TRACECLK).
2026-07-24fix(rp2040): make stdio_rtt_init statichathach
LOGGER=rtt builds of any rp2040 example fail with -Werror=missing-prototypes (stdio_rtt_init has no prototype and is only called from family.c). Found by building cdc_msc -DLOG=2 -DLOGGER=rtt for raspberry_pi_pico.
2026-05-12refactor: replace midi2_host (Waveshare) with midi2_host_featherSaulo Veríssimo
Remove the Waveshare RP2350-USB-A host example and board definition. The Feather RP2040 USB Host is the TinyUSB reference board for PIO-USB host and does not require the CFG_TUSB_DEBUG workaround needed by the Waveshare (R13 pull-up issue). One host example is sufficient for the PR. The Feather variant has an improved display with splash, spinner, and 6-line live view.
2026-05-12example: add MIDI 2.0 Host example with display (midi2_host)Saulo Veríssimo
Add Host example that receives UMP from a MIDI 2.0 Device via PIO-USB and displays received messages on a SSD1306 OLED (I2C, 128x64). Features: - Boot checklist on display (PWR, TinyUSB, USB bus, Device, Descriptor, Alt Setting UMP, Mount, Receiving) - Decode and display all MIDI 2.0 Channel Voice messages - PIO-USB Host on rhport 1 (GP12/GP13 for Waveshare RP2350-USB-A) - SSD1306 display via I2C0 (GP4=SDA, GP5=SCL) Also add board definition for Waveshare RP2350-USB-A. Tested: Waveshare RP2350-USB-A (Host) receiving UMP from Raspberry Pi Pico (Device) via USB cable, notes displayed on SSD1306 OLED
2026-05-12feat: add MIDI 2.0 Device class driver (USB-MIDI 2.0)Saulo Veríssimo
Add native USB-MIDI 2.0 Device class driver to TinyUSB. Implements the USB-MIDI 2.0 specification with both Alt Setting 0 (MIDI 1.0 fallback) and Alt Setting 1 (UMP native) descriptor support. Driver features: - UMP (Universal MIDI Packet) read/write with atomic message framing - Protocol negotiation: Endpoint Discovery, Config Request/Notify, Function Block Discovery (embedded in driver) - Group Terminal Block descriptor via GET_DESCRIPTOR - Alt Setting switch handler with endpoint re-arm - Static allocation, no dynamic memory, ISR-safe Build system: - Register midi2d_* in usbd.c driver table - Add TUD_MIDI2_DESCRIPTOR macros to usbd.h - Add config defaults (CFG_TUD_MIDI2_*) to tusb_option.h - Add midi2_ump_word_count() to midi.h (shared by Device and Host) - Add midi2_device.c/h to family.cmake and CMakeLists.txt - Add midi2_device.h include to tusb.h All changes guarded by #if CFG_TUD_MIDI2 (default 0). Zero impact on existing drivers and examples. Tested: Raspberry Pi Pico (RP2040), Linux ALSA, Windows MIDI Services
2026-05-04Merge branch 'master' into merge-usbd-controlhathach
2026-04-29ensure board_uart_write return -1 on defaultHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-04-29deprecated `usbd_control.c` and merge its functionality into `usbd.c`hathach
2026-04-14remove -Werror from example sources to prevent build exampleshathach
2026-04-14refactor rp2040 family.cmake to use family_configure_example() and apply ↵hathach
WARN_FLAGS to tinyusb sources and examples sources only (skip 3rd party library and mcu vendor)
2026-04-14get freertos working with rp2040hathach
2026-04-03fix rp2040 uart read/write non-blockinghathach
2026-04-03fix hil host cdc echo test with imxrt and other fast mcuhathach
2026-03-25update hcd to handle interrupt per bufhathach
2026-03-17add hil test for host msc and cdchathach
2026-03-06Merge branch 'refs/heads/master' into fork/remiberthoz/device-class-printerhathach
2026-03-05Merge pull request #3521 from RobertDaleSmith/fix/max3421-spi-xfer-apiZixun LI
fix(bsp/rp2040): use MAX3421_SPI in spi_write_read_blocking
2026-03-05improve threadx support, add multi ROTS support for board_test and msc_dual_lunhathach
2026-03-03fix(bsp/rp2040): use MAX3421_SPI in spi_write_read_blockingRobert Dale Smith
The write+read path in tuh_max3421_spi_xfer_api() hardcodes spi0 instead of using the MAX3421_SPI define. This causes a hang on boards wired to spi1 (e.g. Feather RP2040 USB Host + MAX3421E FeatherWing) since spi_write_read_blocking() blocks forever on an uninitialized SPI peripheral. The read-only and write-only paths already use MAX3421_SPI correctly.
2026-03-02fix board test without tusb_time_millis_api()hathach
2026-02-10add membrowse target to family support for enhanced memory analysishathach
2026-01-14Merge 'upstream/master' into device-class-printerRémi Berthoz
2026-01-10remove transfer_type from hw_endpointhathach
2026-01-09clean uphathach
2026-01-09only apply errata E5 and E15 for rp2040. rp2350 already fixes thesehathach
2026-01-07Adjust printer device class to 0.20.0 and fix compilation warningsRémi Berthoz
2025-12-19clean up cmake, remove family_get_project_name()hathach
2025-12-05Run CI build with fixed set of boards (#3389)Ha Thach
* run cmake ci build on github with a fixed set of board to keep the size stable * Size Difference Report contain major >1% and minor <1& table
2025-12-01run linkermap as post build for size analyzehathach
2025-11-07fix more alerts found by pvs-studiohathach
2025-10-27improve warnings with rp2040 familyhathach
2025-09-29Merge branch 'master' into fork/ennebi/mtphathach
2025-09-18Fix RPI buildHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2025-09-17Fix board_init_after_tusbHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2025-09-15Merge branch 'master' into fork/ennebi/mtphathach
2025-08-06Add MTP class deviceMaurizio Pesce
2025-07-02remove make wrapper for rp2040/espressifhathach
2025-07-02update examplehathach
2025-07-02remove legacy DEPS_SUBMODULES in makehathach
2025-04-17- run arm-iar using github actionhathach
- add skip_ci.txt to family folder to skip boards in ci run
2025-04-17ci add pico_w for native host testhathach
2025-03-05Merge branch 'master' into fork/atoktoto/midihosthathach
# Conflicts: # src/host/usbh.c
2025-03-04add adafruit metro rp2350hathach
2025-02-28add missing board.h for BOARD=pico_sdkhathach
2025-02-21Merge branch 'master' into fork/atoktoto/midihosthathach
# Conflicts: # src/host/usbh.c
2025-02-20pio-usb now only need sysclk to be multiple of 12Mhzhathach
2025-02-20change pio-usb to wip fork for testinghathach
2025-02-20add fruitjam bsphathach