| Age | Commit message (Collapse) | Author |
|
|
|
|
|
core v3.10a (STM32L476)
DWC2 core rev 3.10a pushes an extra EP0 RX_COMPLETE (RXFLVL PKTSTS 0x3)
that is not a real OUT data completion, in two cases flagged on DOEPINT:
- STPKTRX (Setup Packet Received): between SETUP_RX and SETUP_DONE
- STSPHSRX (Status Phase Received, control write): after the OUT data
stage when the host starts the IN status phase
|
|
|
|
|
|
ci(claude): post sticky summary comment on code review
|
|
The review workflow posted nothing when a review found no issues:
with use_sticky_comment unset, the only output path was inline
comments, so a clean review surfaced no comment at all on the PR.
Enable use_sticky_comment so a single summary comment is posted/
updated every run, making "no issues found" results visible.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
|
|
|
ci: allow claude[bot] pushes in code review workflow
|
|
Add allowed_bots: 'claude' so that when claude[bot] pushes commits the
workflow skips gracefully instead of erroring.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
|
Signed-off-by: HiFiPhile <[email protected]>
|
|
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]>
|
|
docs: add Sponsors section with GitHub Sponsors tiers
|
|
|
|
ci(claude): enable @claude to fix bugs and commit from comments
|
|
Codex correctly noted that allowing python3/python (and really cmake/make
too) is arbitrary code + network execution: a command allowlist cannot
contain a prompt-injected or malicious fork PR when this job holds the
OAuth secret + write token, and the review workflow directs fork PRs to
@claude.
The Bash allowlist was beyond the original scope (auto-commit/PR) anyway.
Remove it: Claude edits files and the action commits/opens the PR, and the
resulting commit is verified by the existing CircleCI matrix. Keep
use_commit_signing and --max-turns 30.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
|
Codex flagged that @claude can be summoned on a fork PR (the review
workflow even directs fork PRs here), so the checked-out PR content is
potentially attacker-controlled. Unrestricted Bash in this write-token +
OAuth-secret job let prompt injection steer Claude into arbitrary
shell/network commands.
Scope Bash to the repo's actual verification commands (cmake, ninja,
make, ctest, python/python3, pre-commit, clang-format, codespell, git).
This blocks the injection-to-arbitrary-command path while still letting
Claude build/test before committing. Building fork code itself is already
done by the existing CircleCI, so that surface is unchanged.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
|
Configure the @claude summon workflow so it can actually produce a
verified fix when asked in an issue/PR comment:
- use_commit_signing: bot commits show as Verified
- --allowedTools Bash: lets Claude build/test to verify the fix before
committing (default allowlist blocks Bash). Safe because the job `if`
gate restricts this to OWNER/MEMBER/COLLABORATOR.
- --max-turns 30: enough turns to investigate -> fix -> verify
Auto-commit/PR is already built into claude-code-action and the
required write permissions were already present, so no permission
changes are needed.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
|
Update claude
|
|
Signed-off-by: HiFiPhile <[email protected]>
|
|
- claude.yml: drop the issues "assigned" trigger; its author_association
gate keys on the issue author, not the assigner, so a maintainer
assigning an outside contributor's issue would be wrongly skipped.
- claude-code-review.yml: issues: read -> write so use_sticky_comment can
create/update its PR comment via the issues API.
- hil SKILL.md: make local/remote command blocks copy-pasteable (drop
[-b BOARD_NAME] notation for concrete examples) and fix timeout
(600000 ms is 10 min; use 1200000 ms for the stated 20 min).
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
|
- claude.yml: gate @claude on author_association (OWNER/MEMBER/COLLABORATOR)
so the write-scoped token and OAuth secret are never issued for an
untrusted commenter on this public repo (defense-in-depth).
- claude-code-review.yml: skip fork PRs in the job condition
(head.repo.full_name == github.repository) since forks get no secrets
and would only fail noisily; fix the misleading token comment; pass
additional_permissions: actions: read so actions: read is effective.
- hil SKILL.md: reword hostname guidance, use full test/hil/* paths, and
show an explicit CONFIG= assignment so the local command is runnable.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
|
- claude-code-review.yml: re-enable (drop `if: false`); switch from
pull_request_target to pull_request so fork PRs never receive the
OAuth token (avoids prompt-injection token leak). Auto-review on
open/synchronize/reopen/ready_for_review, skip drafts, sticky comment.
- claude.yml: grant contents/pull-requests/issues write so @claude can
reply and push fixes; @claude is the on-demand path for fork PRs.
|
|
Update the hil skill so config selection is per-host: run `hostname`
first, then htpc uses local.json and ci uses tinyusb.json. ci can now
run HIL on its own large board pool locally instead of only via SSH
from htpc. Remote (SSH) mode is htpc-only since ci cannot reach htpc.
Also compact the skill for brevity.
|
|
Add control transfer fifo for host stack
|
|
|
|
- src/tusb.c: extend tu_str_xfer_result[] with "ABORTED" and "INVALID"
to match the new enum size. Not reachable today (no HCD posts those
values through hcd_event_xfer_complete), but keeps the enum/table
invariant intact so future HCDs that surface ABORTED don't index OOB.
- examples/dual/dynamic_switch/src/main.c: apply the same while(1)
hoist already done for cdc_task / print_devinfo_task to
led_blinking_task. On OS_NONE the loop returned mid-iteration, which
on first call could fire multiple back-to-back toggles while
start_ms (initially 0) caught up to uptime.
Co-Authored-By: Claude Opus 4.7 <[email protected]>
|
|
idx is used in the ENUM_SET_LINE_CONTROL path guarded by
CFG_TUH_CDC_LINE_CONTROL_ON_ENUM, but was declared only under
CFG_TUH_CDC_LINE_CODING_ON_ENUM. Defining LINE_CONTROL_ON_ENUM without
LINE_CODING_ON_ENUM therefore failed to compile with an undeclared
identifier. Guard the declaration under either macro.
Signed-off-by: Andrew Leech <[email protected]>
|
|
Fix ch32v103 hardfault & Add CH32V103C8T6 Bluepill board
|
|
Fix premature MTP phase change after short MTP OUT transfer
|
|
dwc2: preserve EP0 status completion before SETUP
|
|
Signed-off-by: HiFiPhile <[email protected]>
|
|
Sonar flagged the loop body as executing only once on OS_NONE because
the OS_NONE branch returns inside the first iteration (main() drives
the task again). Make the while(1) conditional on RTOS so the OS_NONE
build is a straight-line function with no misleading loop.
Co-Authored-By: Claude Opus 4.7 <[email protected]>
|
|
The variable is set in mount/umount callbacks but not read elsewhere
in the example (rx_cb already receives idx as a parameter). IAR
treats Pe550 as an error under --warnings_are_errors. Tag it
TU_ATTR_UNUSED so the example still shows the pattern of tracking
the device index without erroring on unused-set.
Co-Authored-By: Claude Opus 4.7 <[email protected]>
|
|
Same fix as midi2_device — IAR rejects the unreachable statement
after the while(1) superloop. Let int main fall off the end.
Co-Authored-By: Claude Opus 4.7 <[email protected]>
|
|
- examples/device/midi2_device/src/main.c: drop the unreachable
`return 0;` after the `while(1)` superloop. IAR with
--warnings_are_errors rejects Pe111 (statement is unreachable);
C99 lets `int main` fall off the end, matching midi_test.
- examples/host/msc_file_explorer_freertos/skip.txt: skip
stm32h7s3nucleo. The board has only 64 KB on-chip FLASH and the
FreeRTOS + FatFS host MSC explorer now overflows by ~248 bytes
after the async control queue refactor.
Co-Authored-By: Claude Opus 4.7 <[email protected]>
|
|
iccarm rejects -Wno-type-limits, breaking the hil-hfp-iar CI matrix
(stm32l412nucleo, stm32f746disco, lpcxpresso43s67). Apply the same
CMAKE_C_COMPILER_ID guard used in hw/bsp/family_support.cmake so IAR
builds skip the flag without losing the GCC warning suppression.
Co-Authored-By: Claude Opus 4.7 <[email protected]>
|
|
|
|
To avoid STATUS IN completion of previous control transfer treated as next DATA IN when IRQ latency is high.
Signed-off-by: HiFiPhile <[email protected]>
|
|
Handle OUT transfer differently from IN to not prematurely change MTP phase when host sends short packet that is not end of MTP data phase. Only reaching container length or ZLP should change phase.
|
|
- Added a pending FIFO queue for asynchronous control transfers when the active slot is busy.
- Introduced `control_xfer_dispatch_pending` to handle queued transfers on slot availability.
- Improved synchronization for blocking and non-blocking transfer modes, preventing deadlocks in RTOS.
- Refactored and renamed related functions for clarity and consistency.
- Enhanced error handling and callback invocation for failed or stale transfers.
|
|
Signed-off-by: HiFiPhile <[email protected]>
|
|
Signed-off-by: HiFiPhile <[email protected]>
|
|
|
|
- GRXSTSP register has internal FIFO, receiving events won't mix up (STATUS OUT & next SETUP)
- Improve efficiency, remove 2nd IRQ overhead
Signed-off-by: HiFiPhile <[email protected]>
|
|
checks
|