summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-07-12dcd(ch32_usbfs): reset stale transfer state in dcd_edpt_iso_activatehathach
The no-op activate left a transfer armed before SET_INTERFACE valid in data.xfer, letting the ISR complete it against the old buffer. Drop the descriptor and NAK the endpoint (mirrors the nrf5x fix). Verified: usbtest 30/30 on ch32v103r, nanoch32v203, ch582m_evt. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-12dcd(ip3511): clear Active directly on stall/iso-activate, keep EPSKIP for reopenhathach
EPSKIP raises a transfer completion, so using it on the stall path let the class re-arm the endpoint and Active+Stall never actually stalled (usbtest case 13); write bare Active=0 instead, and retire skipped transfers on endpoint reopen where the completion is wanted. Verified: usbtest 30/30 on lpcxpresso11u37. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-10Fix review findings and add static-analyzer agenthathach
Review-fix batch (owner-confirmed) on the multi-agent harness: - board_lock: detach holder stdio so a captured `hold` cannot hang on the daemon's inherited pipe; probe locks by holder-pid liveness instead of a momentary flock, which could spuriously fail a concurrent acquirer (storm-tested: 1 winner in 10, 0/15 acquire failures under probe storm) - hil_test: locked board renders a visible board-locked fail row so the report matches the exit code; stale marker cleared on a real re-run - pr-babysit: autoPush now opt-in (default dry run); resolve recipe paginates reviewThreads; post-push resolve gets issue-comment fallback - validate: size stage honors non-default base via --base-branch; pvs stage delegated to the new agent - new static-analyzer agent (sonnet): PVS-Studio SAST+MISRA for one board, structured findings gated on files changed vs base Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Rn1AN5DsTdFhRwhugfgKZi
2026-07-10Merge pull request #3768 from hathach/hil_stlinkHa Thach
hil: use stlink for stm32f746disco
2026-07-10Merge pull request #3766 from mikeysklar/fix-nrfx-v2.0.0-hfclkZixun LI
nrf5x: fix hfclk_running() for nrfx v2.0.0
2026-07-10nrf5x: fix hfclk_running() for nrfx v2.0.0Mikey Sklar
nrf_clock_is_running() was added in nrfx 2.1.0 (MDK 8.30.2), but the version autodetect puts 2.0.0 (MDK 8.29.0) in the v2 bucket, so hfclk_running() fails to compile on that nrfx. Route v2 through nrf_clock_hf_is_running(), which all of 2.x provides. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-10hil: use stlink for stm32f746discoHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-07-09skills: usbtest/usb-debug/usb-recover docs, hil runner noteshathach
Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09audio: drop stale EP-busy note in audiod_set_interfacehathach
Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09test/hil: usbtest.py runner + HIL integrationhathach
Binds the kernel usbtest driver (gadget-zero profile), runs the tier-based battery, auto-recovers kernel-side hangs, and skips cases the host controller cannot run (MosChip MCS9990 EHCI int-OUT). Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09example(usbtest): device-side peer for the Linux kernel usbtest batteryhathach
Gadget-Zero style source/sink on a vendor interface (alt0 empty, alt1 bulk+int+iso) plus EP0 ctrl_out; tier advertised in bcdDevice. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09bsp(ch32): naked fsdev ISRs so nested USBD IRQs return safelyhathach
The three USBD lines nest under QingKe HWSTK; gcc's interrupt prologue corrupts the return, so rely on the hardware stack and bare mret. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09dcd(ch32-usbfs): isochronous supporthathach
Double-buffered iso, EP3 1023-byte packets on V20x/V30x (10-bit R16_UEP3_T_LEN), CH583 and V103 enabled at 64 B. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09dcd(ch32-usbhs): re-queue the pending OUT read on clear-halthathach
Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09dcd(musb): flush TX FIFO on halt; don't load a disarmed pipehathach
Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09dcd(fsdev): don't disarm an armed endpoint on clear-halt toggle resethathach
Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09dcd(rp2040): re-issue in-flight transfer on clear-halt toggle resethathach
Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09dcd(nrf5x): errata 199 DMA workaround + iso alloc/activatehathach
USBD drops tasks during EasyDMA without the 0x40027C1C latch (anomaly 199); matches the nrfx reference driver. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09dcd(ip3511): iso alloc/activate; retire armed buffers via EPSKIPhathach
Clear Active before Stall so a queued endpoint actually halts (UM11126 41.8.1); use the sanctioned EPSKIP+wait sequence for stall/reopen/activate. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09dcd(rusb2): iso alloc/activate; bound the FIFO-ready waithathach
An unpolled full iso-IN pipe keeps FRDY low forever and froze the stack with IRQs masked; bound the spin and abort the FIFO access. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09dcd(samd): implement iso alloc/activatehathach
Reserve the bank SIZE bucket once, re-enable per altsetting, and scrub the bank-ready state so a stale armed bank cannot send before the class re-arms. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09dcd: route samd/rusb2/ip3511/nrf5x through iso alloc/activatehathach
Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09usbd: forward vendor EP0 requests; clear ep state on iso activatehathach
Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09class/vendor: add interrupt/iso endpoint pairs and alt-setting supporthathach
Non-buffered per-type source/sink endpoints (bulk/int/iso) with manual RX arming across altsettings. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09feat: Claude Code multi-agent dev/test harness for TinyUSBhathach
Add worker agents (builder, port-dev, driver-reviewer, hil-operator, pr-monitor), deterministic workflows (validate, fanout-dev, driver-review, hil-validate, full-check, pr-babysit) and a /pre-pr gate skill, so sessions can fan build/test/review/PR-triage work out to tiered subagents. pr-babysit drives a PR to green: triage CI + bot reviews, fix validated findings, verify, push, and reply-to + resolve each inline review thread (fixed or refuted). Replace the stop-the-runner HIL discipline with per-board flock locks: test/hil/board_lock.py plus a fail-open guard in hil_test.py let CI and dev sessions share the rig per board (locked boards fail fast and re-run; HIL_NO_BOARD_LOCK=1 is a user-authorized bypass). The actions-runner is never stopped. Design spec, implementation plan, and real-rig smoke evidence under docs/superpowers/. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Rn1AN5DsTdFhRwhugfgKZi
2026-07-07Merge pull request #3759 from hathach/claude/prefer-worktree-docsHa Thach
docs(AGENTS): prefer git worktrees for branch/multi-step work
2026-07-07docs(AGENTS): prefer git worktrees for branch/multi-step workhathach
Direct agents to work in a git worktree rather than switching the shared primary checkout's branch. Concurrent sessions share that checkout, so a mid-flight branch switch disrupts the other sessions and can silently point a review, build, or commit at the wrong diff. CLAUDE.md is a symlink to AGENTS.md, so both pick this up. Co-Authored-By: Claude Opus 4.8 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-07gate acm_open descriptor bounds behind CFG_TUH_VALIDATION_LEVELJavid Khan
add a three-level TUSB_VALIDATION_NONE/BASIC/STRICT knob and default CFG_TUH_VALIDATION_LEVEL to BASIC, then make acm_open the first user so the enumeration bounds checks compile out at NONE for trusted-device setups and stay on by default.
2026-07-06Set larger AT32 FSDEV PMA areaJie Feng
2026-07-05Merge pull request #3756 from dxbjavid/rndis-data-offset-overflowZixun LI
bound rndis data packet offset in handle_incoming_packet
2026-07-05bound rndis data packet offset in handle_incoming_packetJavid Khan
Signed-off-by: Javid Khan <[email protected]>
2026-07-05Merge pull request #3738 from sauloverissimo/fix/midi2-fb-directionZixun LI
feat(midi2): derive function blocks from the GTB descriptor
2026-07-05ensure gtb is validHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-07-05Merge pull request #3753 from Old-Ding/codex/usbd-driver-count-warningZixun LI
Fix usbd empty builtin driver warning
2026-07-05Fix usbh empty builtin driver warningHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-07-05Fix usbd empty builtin driver warning v2HiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-07-05Merge pull request #3754 from Old-Ding/codex/usbtmc-status-byte-bufferZixun LI
Fix USBTMC status byte interrupt buffer
2026-07-05Merge pull request #3741 from dxbjavid/ncm-ndp-length-boundZixun LI
bound ndp16 wLength against received ntb in recv_validate_datagram
2026-07-05Fix USBTMC status byte notification bufferaineoae86-sys
Queue the USB488 READ_STATUS_BYTE interrupt notification through tud_usbtmc_transmit_notification_data so it uses the class notification endpoint buffer for the asynchronous transfer. Fixes #2928 Generated-by: OpenAI Codex Signed-off-by: aineoae86-sys <[email protected]>
2026-07-05bound acm_open functional descriptor walk against desc_endJavid Khan
2026-07-05Merge pull request #3755 from Old-Ding/codex/usbtmc-notification-idle-xferZixun LI
Fix USBTMC notification endpoint claim
2026-07-05clamped copied length to nHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-07-05fix sizeof(nth16_t) typoHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-07-05fix ciHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-07-05Fix USBTMC notification endpoint claimaineoae86-sys
Use usbd_edpt_claim() before queuing USBTMC notification data so the interrupt endpoint is reserved through the normal endpoint ownership path. Release the claim if the notification payload cannot be copied before the transfer is queued. Fixes #2735 Generated-by: OpenAI Codex Signed-off-by: aineoae86-sys <[email protected]>
2026-07-05Fix usbd empty builtin driver warningaineoae86-sys
Generated-by: OpenAI Codex Signed-off-by: aineoae86-sys <[email protected]>
2026-07-04advance acm_open descriptor walk by fixed struct sizesJavid Khan
2026-07-03add ncm receive-path fuzz harness with out-of-bounds seedJavid Khan
folds the reproducer for the recv_validate_datagram bound into a small self-contained fuzz target. it feeds a raw ntb straight into the validator (the driver is pulled in so the static function is reachable) and ships the crafted 64-byte ntb as a seed. the seed trips an asan heap-buffer-overflow against the unpatched driver and is rejected cleanly with the wLength bound in place.
2026-07-03guard acm_open endpoint reads against short bLength descriptorsJavid Khan
2026-07-03Merge pull request #3748 from mikeysklar/fix-max3421-oscok-hangHa Thach
max3421: prevent USB host hang at startup