Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
344 commits
Select commit Hold shift + click to select a range
465510a
Optimize ESP USB JTAG (#4198)
bugadani Jul 31, 2026
6c13163
FTDI driver optimisation (#4199)
bugadani Jul 31, 2026
9dfcedf
Use abstractauto for RISC-V program buffer writes (#4200)
bugadani Jul 31, 2026
9144af5
defmt_decoder parse error is now warning only (#4201)
robamu Jul 31, 2026
7d416d7
fix(debug): read enum values held in a register (#4082)
dsludwig Aug 1, 2026
ccc6b01
Replace the duplicate --reset flag with download --start (#4204)
bugadani Aug 1, 2026
844c28c
Move the probe-rs domain conversions out of the RPC wire modules (#4206)
bugadani Aug 3, 2026
44775e4
Move the CLI oriented wire types into the RPC module (#4207)
bugadani Aug 3, 2026
78b04a9
Remove the target registry from the RPC client (#4208)
bugadani Aug 3, 2026
93e905a
Return a typed error from the RPC client (#4209)
bugadani Aug 3, 2026
afbf14e
Add the probe-rs-rpc crate (#4210)
bugadani Aug 3, 2026
aeb39fe
Add the probe-rs-rpc-client crate and prepare both crates for publica…
bugadani Aug 3, 2026
4a2dbbc
Fix a DAP server CLI bug (#4215)
bugadani Aug 4, 2026
4f36ede
fix - rtt down channel silently discarding bytes (#4214)
cryptographix Aug 4, 2026
bdf1586
Add initial WCH CH570 and CH572 debugging support (#4217)
zhixuan2333 Aug 6, 2026
2a723d2
Queue attach requests (#4216)
bugadani Aug 6, 2026
bb2c7d5
Add CH570 and CH572 flashing support (#4219)
zhixuan2333 Aug 6, 2026
0a26405
Support remote via `ssh://` (#4218)
bugadani Aug 6, 2026
16140a3
Speed up CH570 and CH572 flashing (#4220)
zhixuan2333 Aug 6, 2026
36129fb
nRF53/nRF91: implement `debug_erase_sequence` via CTRL-AP ERASEALL so…
egnor Aug 7, 2026
89e4c32
RAM download progress (#4205)
robamu Aug 8, 2026
96f3217
Add `skip_reset_on_ram_boot` to the target YAMLs (#3778)
robamu Aug 8, 2026
758ec40
Rpc updates (#4229)
bugadani Aug 8, 2026
8d548ad
Rebuild gdb server and cargo-embed over RPC (#4230)
bugadani Aug 8, 2026
f605782
Fix cargo embed performance (#4231)
bugadani Aug 8, 2026
b169f8d
add ASR6601 Series MCU support (#4227)
Kezii Aug 8, 2026
141fa9c
ASR6601 keep jtag enabled in sleep / standby (#4232)
Kezii Aug 9, 2026
c1a6fd8
fix(nrf53): reset application core through CTRL-AP (#4168)
Vach23 Aug 9, 2026
31b37d7
fix(nrf53): restore network access across app resets (#4233)
Vach23 Aug 9, 2026
8c82e90
Update Rust crate object to 0.40 (#4236)
renovate[bot] Aug 10, 2026
754f68e
Remove embedded firmware project (#4237)
bugadani Aug 10, 2026
e3fb7d8
Update Non-breaking updates (#4235)
renovate[bot] Aug 10, 2026
1b0d097
Attach: Do not wait for persistent error to clear (#4238)
bugadani Aug 10, 2026
991ee8e
fix(blackmagic): return an error instead of panicking on unexpected p…
RawNuke Aug 10, 2026
52fc277
Update references to Flash Patch and Breakpoint Unit (#4243)
inferiorhumanorgans Aug 11, 2026
f696214
ATSAM3: Update RAM regions. (#4240)
inferiorhumanorgans Aug 11, 2026
0cb2e6c
Add generic IP components to the Coresight tree. (#4241)
inferiorhumanorgans Aug 11, 2026
01ec374
probe-rs info coresight component fix (#4246)
9names Aug 11, 2026
7900f63
DAP: Ensure an error response is sent, fix comparing paths (#4249)
bugadani Aug 11, 2026
27e2670
Revert "probe-rs info coresight component fix (#4246)" (#4250)
9names Aug 12, 2026
9e9c51d
ESP32-P4: keep UART0 enabled to avoid ROM failure (#4251)
playfulFence Aug 12, 2026
423c23f
Tweak ESP32 reset sequence, allow for longer reset timeouts (#4253)
bugadani Aug 12, 2026
f749eea
Remote DAP fixes (#4255)
bugadani Aug 12, 2026
b64a08d
(Re-)Enable DWT when scanning AHB APs. (#4252)
inferiorhumanorgans Aug 13, 2026
ff33cd7
Update ARM info output (#4256)
inferiorhumanorgans Aug 13, 2026
d9a92d3
Update ESP32-S3 flash loader (#4257)
bugadani Aug 13, 2026
780df71
Fix a few debugger/CLI argument issues (#4260)
bugadani Aug 15, 2026
abc1c17
Update Non-breaking updates (#4262)
renovate[bot] Aug 17, 2026
67993c4
Update actions/checkout action to v7 (#4263)
renovate[bot] Aug 17, 2026
042bb60
Update Rust crate syn to v3 (#4269)
renovate[bot] Aug 24, 2026
084e42f
Update Non-breaking updates (#4268)
renovate[bot] Aug 24, 2026
40388f2
Fix the list-rtt flag (#4270)
bugadani Aug 24, 2026
d4b5970
ASR: Don't fail `reset_system` when vector table is invalid (#4272)
Rimpampa Aug 25, 2026
b251a5c
Disable super watchdog on ESP chips (#4274)
bugadani Aug 26, 2026
099baba
Black Magic probe: add get_target_voltage() implementation (#4275)
JayVisschedijk Aug 26, 2026
cbb4922
adding EFM32GG12B targets (#4271)
lcp5y3 Aug 26, 2026
87ba985
RISC-V: add support for memory access via abstract commands (#4258)
XuanTongYao Aug 26, 2026
ff4fce6
Flash before DAP (#4276)
bugadani Aug 26, 2026
3a19f25
Ensure panics don't end up hanging the client (#4279)
bugadani Aug 27, 2026
1961dbd
Harden ESP32 reset recovery (#4280)
bugadani Aug 28, 2026
71b2191
Report the unhandled monitor halt as a structured halt reason (#4282)
bugadani Aug 28, 2026
07f6f11
Check if remote server is compatible with client (#4283)
bugadani Aug 28, 2026
ecfaa19
Enable remote by default, add missing feature (#4284)
bugadani Aug 28, 2026
93888ed
ASR6601: update flash algorithm to fix `Verify` return value (#4278)
Rimpampa Aug 28, 2026
00855ab
Fix a number of debugger issues/deficiencies (#4285)
bugadani Aug 28, 2026
2b4a2cd
Read composite values (#4286)
bugadani Aug 28, 2026
be2e867
Fix pointers (#4287)
bugadani Aug 28, 2026
7348a5b
Fix another bunch of debugger issues (#4288)
bugadani Aug 29, 2026
dc18ae8
More debugger tweaks and improvements (#4289)
bugadani Aug 29, 2026
a23267d
Update ResumeTy matching to new rustc (#4290)
bugadani Aug 29, 2026
68af3a8
Tweak type/function name display (#4291)
bugadani Aug 29, 2026
f2e6fb4
Debug: Fix RTT when not flashing (#4292)
bugadani Aug 29, 2026
1cbe2d4
fix(debug): allow breakpoints in C++ by extending the prologue heuris…
dsludwig Aug 29, 2026
ce005e1
Add host side flash loader support (#3950)
SeanLyonsTI Aug 29, 2026
b9053b1
fix(jlink): use legacy JTAG command for ARM Lite (#4066)
nextransit Aug 30, 2026
59b7013
Change initial flush to not rely on USB timeout (#3181)
bugadani Aug 30, 2026
d21209f
Detect majority of Espressif chips without memory access (#4293)
bugadani Aug 30, 2026
2255eba
Various debugger tweaks (#4295)
bugadani Aug 30, 2026
5fce9e0
Add support for XVC (Xilinx Virtual Cable) JTAG over TCP (#4068)
pftbest Aug 30, 2026
67856fa
Fix info command not working correctly in XVC (#4296)
pftbest Aug 30, 2026
4d74c3f
Iterative variable resolution, better type simplification (#4297)
bugadani Aug 30, 2026
cabdc33
Update Non-breaking updates (#4298)
renovate[bot] Aug 31, 2026
3ba64bd
Fix schema compatibility check on bursty connections (#4299)
bugadani Aug 31, 2026
0b5b002
Poll all cores in the run loop (#4303)
bugadani Sep 2, 2026
7bbab4b
RPC: Ensure UL tag is only closed if opened. (#4304)
inferiorhumanorgans Sep 3, 2026
089449f
HC32F460 support (#4305)
rhgndf Sep 4, 2026
60d8537
Apply more ANSI styling to REPL (#4306)
bugadani Sep 4, 2026
77de8c0
Xtensa: fix issues, add FPU register support (#4307)
bugadani Sep 5, 2026
add5d0d
More `debug` tweaks (#4308)
bugadani Sep 5, 2026
f8990a7
Misc RISC-V fixes and tweaks (#4309)
bugadani Sep 5, 2026
8ff9972
Allow injecting cache maintenance functions (#4310)
bugadani Sep 5, 2026
be471a2
Always wait for program buffer, remove most region overrides (#4311)
bugadani Sep 5, 2026
615bf5e
Fix the semihosting file open modes for update and append (#4312)
MaxFreedomPollard Sep 6, 2026
cc64679
breakpoint/status/step improvements (#4313)
bugadani Sep 6, 2026
c7903cb
Update Non-breaking updates (#4330)
renovate[bot] Sep 7, 2026
dc80e81
Replace u64 SWJ sequences with a bit sequence type (#4314)
bugadani Sep 9, 2026
24f1669
Make the JTAG command queue a generic batch type (#4315)
bugadani Sep 9, 2026
3e3013d
Add the JTAG operation set and the JtagProbe trait (#4316)
bugadani Sep 9, 2026
41d983c
Lower a JTAG batch to bit-banging in one place (#4317)
bugadani Sep 9, 2026
c0b4836
Move the scan chain and the TAP paths into JtagChain (#4318)
bugadani Sep 9, 2026
de11896
Replace the idle cycle state with a ClockTck operation (#4319)
bugadani Sep 9, 2026
009760d
Run a JTAG batch natively on FTDI, Black Magic, and CMSIS-DAP (#4320)
bugadani Sep 9, 2026
f5a6ef4
Remove RawJtagIo and the driver TAP state (#4321)
bugadani Sep 9, 2026
bb9909e
Serve the RISC-V debug module directly on WCH-Link (#4322)
bugadani Sep 9, 2026
09811fb
Rest of the SWD/JTAG PRs (#4334)
bugadani Sep 9, 2026
661d075
Pass SWJ pin requests on to an SWD probe (#4335)
korken89 Sep 10, 2026
f5c6d06
Fix the OL23D0 with probes that do not do internal retries (#4336)
korken89 Sep 10, 2026
55566e7
Correct the EXTRA register comment for ARMv6-M (#4339)
CordlessCoder Sep 10, 2026
a7d8e74
CMSIS-DAP: keep several block requests in flight (#4331)
CordlessCoder Sep 10, 2026
6bd0ca3
fix: xvc parsing (#4340)
localcc Sep 10, 2026
3bacb7c
CMSIS-DAP: split a batch longer than the transfer count field (#4341)
CordlessCoder Sep 10, 2026
cba6fbe
fix: OTP region erase skipping (#4342)
localcc Sep 10, 2026
d88114f
Add esp32h4 support, bump MSRV to 1.95 (#4264)
playfulFence Sep 11, 2026
e5552cf
CMSIS-DAP: Resynchronise the probe whenever a command fails, handle s…
CordlessCoder Sep 11, 2026
4ad237c
Cherry-picked bugfixes (#4346)
bugadani Sep 11, 2026
58525cc
Fix SWD regressions (#4348)
bugadani Sep 12, 2026
5dc8f06
fix(chip erase): running once per flash algorithm instead of once per…
Liraelle Sep 12, 2026
5b15a27
rpc_client::connect: Use path concatenation (#4350)
inferiorhumanorgans Sep 13, 2026
fa62776
Update Non-breaking updates (#4351)
renovate[bot] Sep 14, 2026
86acc1b
ch347: Add SWD support and support for GPIOs (activity LED + RST supp…
korken89 Sep 15, 2026
2de389a
riscv: make sure hartsel sticks before trusting it (#4358)
xobs Sep 16, 2026
f0e400f
Fix tms570 and cc26xx (#4360)
xobs Sep 16, 2026
48b57c9
Add MIK32 Support (#4362)
Newlifer Sep 16, 2026
b74ac61
cmsisdap: flush the JTAG buffer while a sequence still fits (#4363)
xobs Sep 17, 2026
30e9b3e
Add Windows ARM64 binaries to CI release workflow (#4366)
9names Sep 19, 2026
07e777d
fix: crate-ci/typos renamed branch master->main (#4367)
9names Sep 19, 2026
5c22980
Read Xtensa core properties from the target description (#4371)
bugadani Sep 20, 2026
b14a991
run: only show the RTT prompt when there is a terminal (#4373)
beriberikix Sep 20, 2026
0fff179
Fix turbofish in name compaction (#4374)
bugadani Sep 20, 2026
dca8288
Unwinding improvements (#4372)
bugadani Sep 20, 2026
40b4366
Update Non-breaking updates (#4376)
renovate[bot] Sep 21, 2026
3275b11
Add stm32c5 targets (#4015)
usbalbin Sep 21, 2026
72d6eb1
RPC: Add debug impls (#4378)
inferiorhumanorgans Sep 23, 2026
50e7507
fix(infineon): erase both flash banks on dual-bank PSOC C3 devices (#…
Liraelle Sep 24, 2026
d2215c3
Allow unacknowledged AIRCR write in CC23xx/CC27xx reset (#4385)
SeanLyonsTI Sep 29, 2026
a2aed22
ch347: JTAG engine support instead of bit-banging (#4380)
korken89 Sep 30, 2026
0b62f86
Add Infineon XMC1000 (XMC1100/1200/1300/1400) target support (#4382)
J0hannes101 Sep 30, 2026
4898e5e
Make probe-rs verify fail when the contents do not match (#4392)
latesr Oct 1, 2026
2f60c95
Remove smoke-tester hosted by tiwalun (#4393)
Tiwalun Oct 1, 2026
e994cfb
Update Non-breaking updates (#4384)
renovate[bot] Oct 1, 2026
b966cf1
rtt: decode Zephyr dictionary-based logs (#4375)
beriberikix Oct 1, 2026
91755a3
ARM: batch memory operations (#4345)
CordlessCoder Oct 1, 2026
2941544
Fix ESP32H4 cores, clean up changelog entries (#4396)
bugadani Oct 1, 2026
2717acc
Fix ARM SWJ (#4397)
bugadani Oct 1, 2026
444e2ad
Fix a number of regressions (#4404)
bugadani Oct 2, 2026
8dff015
Wait for debug access after MCX debug mailbox session start (#4401)
felipebalbi Oct 2, 2026
d5283e9
Three ADIv5 compliance fixes (#4406)
felipebalbi Oct 2, 2026
42bd557
Fix more JTAG/SWJ issues (#4405)
bugadani Oct 2, 2026
1f6489e
Faster flashing, and J-Link in CMSIS-DAP mode (#4407)
felipebalbi Oct 2, 2026
695e90a
run: exit with the exit status of the firmware (#4410)
beriberikix Oct 3, 2026
db961f0
Send the CSW write in the same batch as the memory access (#4408)
bugadani Oct 3, 2026
9cf97a7
Cherry-pick fixes (#4411)
bugadani Oct 3, 2026
e19b6a5
Added the atmosic atm3430e (#4412)
David-OConnor Oct 3, 2026
939f82d
Update Non-breaking updates (#4414)
renovate[bot] Oct 5, 2026
cf01a42
MCXA577: correct the memory map (#4416)
felipebalbi Oct 5, 2026
a58886b
cmsisdap: handle stringless interface on VID/PID (#4415)
felipebalbi Oct 6, 2026
c68c43f
blackmagic: don't byte-swap the value in raw AP register writes (#4419)
xobs Oct 6, 2026
8483cbe
Target-gen fixes for missing RTT output (#4013)
hydra Oct 6, 2026
7852ed7
ftdi: add the Flyswatter2 pin layout (#4421)
felipebalbi Oct 6, 2026
68c0f8d
Add support for NXP Kinetis MKL82Z7 family (#4423)
sindrehan Oct 7, 2026
2790252
Tweak firmware crash output (#4424)
bugadani Oct 7, 2026
04f7ef1
ICDI probe PR (#746) rebase (#4368)
9names Oct 8, 2026
b94a85c
Print info about the entire JTAG chain (#4425)
bugadani Oct 8, 2026
81855b4
gd32h7: add GD32H737VG support (#4364)
NineDayCC Oct 8, 2026
ceec5ad
Make it possible to turn off cmsisdap_v1 in the binary (#4420)
bugadani Oct 8, 2026
32204de
Cortex-M: fix two DHCSR defects and share the duplicated code (#4417)
felipebalbi Oct 8, 2026
7185538
flashing: add an opt-in interface for verifying by signature (#4409)
felipebalbi Oct 8, 2026
bd0a0e0
stlink: recover a stuck probe on Windows by draining stale replies (#…
xobs Oct 9, 2026
d62a3a4
add nxp mimxrt798s support (#4426)
Hoohaha Oct 9, 2026
c5052d8
rtt: warn when no control block is found after 5 seconds (#4427)
deadcaf3 Oct 9, 2026
224d4e4
gdb: report an invalid connection string instead of panicking (#4433)
deadcaf3 Oct 9, 2026
2360851
benchmark: report a failed test instead of panicking when no iteratio…
deadcaf3 Oct 9, 2026
e0eb2b2
info: report a Memory AP without a debug entry plainly (#4432)
deadcaf3 Oct 9, 2026
a34f2f7
rpc: publish queued events before a blocking task's reply (#4431)
deadcaf3 Oct 9, 2026
e7a4801
jtag: check the CTRL/STAT value for sticky errors (#4434)
korken89 Oct 9, 2026
7e81b23
Update target-gen to use the flash-algo API to read the flash. (#4014)
hydra Oct 10, 2026
803f5d9
fix(cmsisdap): the 512-byte EDBG report override no longer matches nE…
klhjensen Oct 10, 2026
b948f7a
cli: handle Ctrl+Break on Windows (#4437)
bugadani Oct 10, 2026
6ed2120
Add LLM-targeted recommendations to the contribution guide (#4429)
bugadani Oct 10, 2026
7836d84
STM32H7Rx/7Sx: describe ITCM and DTCM at their factory size (#4394)
latesr Oct 10, 2026
e58eea5
s32k1: add S32K118 support (#4439)
pauliuszaleckas Oct 10, 2026
5214b96
arm: enable halting debug in the Cortex-M reset catch (#4441)
pauliuszaleckas Oct 11, 2026
87008a5
chore(deps): update non-breaking updates (#4445)
renovate[bot] Oct 12, 2026
bfc6acc
fix nxp imxrt798s cm33_core1 cannot debug issue (#4436)
Hoohaha Oct 12, 2026
89186be
jtag: switch a debug port out of SWD mode before the first scan (#4444)
pauliuszaleckas Oct 12, 2026
0096188
session: refuse JTAG when the described scan chain reaches no core (#…
pauliuszaleckas Oct 12, 2026
b1ab7af
reliability fix for VA416XX reset (#4448)
robamu Oct 12, 2026
6db9db9
arm: only step over a real BKPT after a breakpoint halt (#4447)
AlbionFerati Oct 12, 2026
842af5e
T32CZ20: start the flash region at 0x10000000 (#4450)
Salmony Oct 12, 2026
4f33921
flashing: enhanced vector table discovery for ELF (RAM boot) (#4451)
Hoohaha Oct 13, 2026
aa8eb12
Added HC32L021 series target support. (#4453)
WaitFme Oct 13, 2026
eecc9da
Replace figment with figment2, fix merge order (#4454)
bugadani Oct 13, 2026
1bfa0ba
cargo-embed: do not treat args after `--` as the config profile (#4456)
r3wretrhy Oct 14, 2026
42d631c
Move the RTT decoder to a stream_decoder module (#4459)
bugadani Oct 14, 2026
6fbe789
fix(deps): update rust crate zip to v9 (#4446)
renovate[bot] Oct 14, 2026
68f5dde
Share USB serial port lookup between Blackmagic and SiFli (#4460)
bugadani Oct 14, 2026
a937609
Skip smoke tests on draft PRs (#4470)
bugadani Oct 14, 2026
1aca463
Update rustls (#4471)
bugadani Oct 14, 2026
e7dc318
ch347: fetch a posted SWD read before an AP write (#4438)
pauliuszaleckas Oct 14, 2026
a815217
Remove the --dry-run CLI option (#4472)
bugadani Oct 14, 2026
26cbcac
Detect the format of RTT channels without a name hint (#4462)
bugadani Oct 14, 2026
279557f
perform sysrst when resetting mspm0 (#4381)
vincent-bartolo-gt Oct 14, 2026
02149e1
smoke-tester: power cycle the probe before each test (#4475)
bugadani Oct 15, 2026
1d9ab87
ci: do not cancel running smoke test hardware jobs (#4477)
bugadani Oct 15, 2026
099f9b4
rp2040: recover from a latched rescue DP power-up request (#4476)
bugadani Oct 15, 2026
2cc8580
Add a per-probe settings table to the configuration file (#4469)
bugadani Oct 15, 2026
0bf747b
Keep the ST-Link speed when the protocol changes (#4479)
bugadani Oct 15, 2026
548817b
smoke-tester: skip the reset after a skipped core test (#4480)
bugadani Oct 15, 2026
4fbc668
Add remaining MCXA2/MCXA5 targets (#4482)
felipebalbi Oct 16, 2026
161c11e
swd: let an AP write finish before the next read (#4483)
deadcaf3 Oct 16, 2026
92c7238
Add support for memory access ports (#3804)
robamu Oct 18, 2026
7777a22
armv7-r: honor disabled hardfault catch (#4493)
korken89 Oct 18, 2026
9e1ee84
AM261: add the system bus MEM-AP (#4491)
korken89 Oct 18, 2026
859b562
rtt: use the target's memory port (#4488)
korken89 Oct 18, 2026
c9637f1
arm: reuse memory AP state across memory interfaces (#4489)
korken89 Oct 18, 2026
21ffa9d
arm: forget memory AP state on batched AP writes (#4495)
korken89 Oct 18, 2026
0631b4f
rtt: keep using the memory port after a corrupted control block (#4494)
korken89 Oct 18, 2026
45d609f
Update Non-breaking updates (#4497)
renovate[bot] Oct 19, 2026
57f59e7
cmsis-dap: add a TCP transport (#4499)
Jiu-xiao Oct 19, 2026
c4bfd31
rpc-client: select the rustls crypto provider explicitly (#4485)
bugadani Oct 19, 2026
081ea4b
cmsisdap: read interface string from the device when enumeration omit…
enkiller Oct 19, 2026
a9cd2c4
Fix missing scfg on cc27xx device (#4502)
SeanLyonsTI Oct 20, 2026
cd181be
Update Rust crate bitfield to v0.20.0 (#4498)
renovate[bot] Oct 20, 2026
f309e15
Fix reset cc23xx cc27xx part 2 (#4508)
SeanLyonsTI Oct 20, 2026
2dbf41b
Update rustls-webpki and webpki roots (#4509)
bugadani Oct 20, 2026
fcef251
riscv: use 2nd EBREAK as return address for flash algo (#4510)
9names Oct 21, 2026
d6aa661
Only look for a RAM vector table on ARM targets (#4511)
bugadani Oct 21, 2026
c1d3a22
Add driver settings and reset_line_connected to the probe table (#4478)
bugadani Oct 21, 2026
41b5605
AM261: initialize TCM ECC before loading (#4492)
korken89 Oct 21, 2026
0ad7110
Use the WCH-Link RST pin if reset_line_connected is true (#4512)
bugadani Oct 21, 2026
1d5f5f2
Make probe drivers block reset asserts if the reset line is not conne…
bugadani Oct 21, 2026
29e7577
Add NSING N32H7xx series support (cleaned up) (#4514)
bugadani Oct 21, 2026
58f47b1
Fixed probe-rs debug -c <command> hang bug (#4457)
Hoohaha Oct 21, 2026
d88fb03
Set usb_location for ST-Link probes (#4516)
KritR Oct 22, 2026
95e6b43
Run CMSIS-DAP ARM register accesses in the probe firmware (#4505)
bugadani Oct 22, 2026
f4d1902
Use the shared selector matching in ST-Link and FTDI (#4517)
KritR Oct 22, 2026
caabe21
Add initial WCH CH585/CH584 debugging support
andelf Oct 22, 2026
0f4643d
Expand WCH CH585 support to CH57x, CH58x, and CH59x series
andelf Oct 23, 2026
5c7a44d
Rename CH57X/CH59X target files to CH571_CH573_Series.yaml and CH591_…
andelf Oct 23, 2026
3626acd
Rename CH58X_Series.yaml to CH581_CH582_CH583_CH584_CH585_Series.yaml
andelf Oct 23, 2026
ca6080a
Rename CH581_CH582_CH583_CH584_CH585_Series.yaml back to CH58X_Series…
andelf Oct 23, 2026
88d9c4f
Deduplicate ch5xx-code-flash algorithm across CH571/573, CH58X, and C…
andelf Oct 23, 2026
123864a
Unify CH570/CH572 with the CH57x/CH58x/CH59x target file
andelf Oct 24, 2026
ca48181
Keep the CH570/CH572 flash algorithm and drop CH585 auto-detection
andelf Oct 24, 2026
f05c58d
Add CH565/CH569 support
andelf Oct 25, 2026
9ee691a
Address CH5xx review feedback
andelf Oct 25, 2026
c525aeb
Update the CH5xx flash algorithm for 64 KiB erase
andelf Oct 25, 2026
a0e90c0
Detect RISC-V autoexec from the data registers
andelf Oct 25, 2026
bddece6
Add CH32V407/CH32V467 target support via WCH-Link
andelf Oct 31, 2026
54ed25f
Fix WCH-Link attach timeout for CH32V4x7
andelf Oct 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[alias]
xtask = "run --package xtask --"
probe-rs = "run --package probe-rs-tools --bin probe-rs --features remote --"
probe-rs = "run --package probe-rs-tools --bin probe-rs --"
smoke-tester = "test --package smoke_tester --"
target-gen = "run --package target-gen --release --"
2 changes: 1 addition & 1 deletion .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:

steps:
- name: Checkout sources
uses: actions/checkout@v6
uses: actions/checkout@v7

- uses: swatinem/rust-cache@v2
with:
Expand Down
39 changes: 27 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@ jobs:

steps:
- name: Checkout sources
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Cache Dependencies
uses: Swatinem/rust-cache@v2.9.1
uses: Swatinem/rust-cache@v2.9.2

- name: cargo check for probe-rs, --no-default-features
run: cargo check -p probe-rs --no-default-features --locked
Expand Down Expand Up @@ -71,13 +71,13 @@ jobs:

steps:
- name: Checkout sources
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: "Install thumbv7m-none-eabi target for tests"
run: rustup target add thumbv7m-none-eabi

- name: Cache Dependencies
uses: Swatinem/rust-cache@v2.9.1
uses: Swatinem/rust-cache@v2.9.2

- uses: taiki-e/install-action@nextest

Expand All @@ -89,7 +89,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Run cargo fmt
run: cargo fmt --all -- --check
Expand All @@ -99,29 +99,44 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Cache Dependencies
uses: Swatinem/rust-cache@v2.9.1
uses: Swatinem/rust-cache@v2.9.2

- name: Run cargo clippy
run: cargo clippy --all-features --all-targets --locked -- -D warnings

cargo-deny:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: EmbarkStudios/cargo-deny-action@v2

typos:
name: Typos
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: crate-ci/typos@main

machete:
name: Unused dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: taiki-e/install-action@cargo-machete
- run: cargo machete

doc:
name: Check docs
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Cache Dependencies
uses: Swatinem/rust-cache@v2.9.1
uses: Swatinem/rust-cache@v2.9.2

- name: Run cargo doc
run: cargo doc -p probe-rs --no-deps --all-features --locked
Expand All @@ -133,10 +148,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Cache Dependencies
uses: Swatinem/rust-cache@v2.9.1
uses: Swatinem/rust-cache@v2.9.2

- uses: taiki-e/install-action@cargo-hack

Expand Down
22 changes: 0 additions & 22 deletions .github/workflows/dispatch_webpage_update.yml

This file was deleted.

11 changes: 10 additions & 1 deletion .github/workflows/release_crates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:

steps:
- name: Checkout sources
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0 # This is a workaround for cargo-release, see https://github.com/crate-ci/cargo-release/issues/625
# We need to manually set a token here to ensure that we can trigger the `cargo dist` workflow.
Expand Down Expand Up @@ -94,3 +94,12 @@ jobs:
echo "::endgroup::"
env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock

# dist releases run on workflow_dispatch (dispatch-releases), so kick off
# the build for the tag we just pushed.
- name: Trigger the release build
run: gh workflow run v-release.yml --ref "$RELEASE_BRANCH" -f tag="v$VERSION"
env:
GH_TOKEN: ${{ secrets.GH_PAT }}
RELEASE_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.ref || github.ref_name }}
VERSION: ${{ steps.crate_version.outputs.version }}
75 changes: 75 additions & 0 deletions .github/workflows/release_dry_run.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Dry-runs a release on PRs labelled 'release': a crates.io publish dry-run, plus
# the full dist build (dispatched as a dry-run of the release workflow). Catches
# publish/build/runner problems on the release PR instead of when we cut the
# release. Nothing is published, tagged or pushed.

on:
pull_request:
branches: [master, release/**]
types: [opened, reopened, synchronize, labeled]
workflow_dispatch:

name: Release dry-run

jobs:
publish:
name: Dry-run publish
runs-on: ubuntu-latest
if: github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'release')
steps:
- uses: actions/checkout@v7
- uses: taiki-e/install-action@cargo-release
# Use cargo-release (not `cargo publish --dry-run`) so the dry-run runs the
# exact checks the real release does: metadata validation (missing
# description etc.) plus the verification build. --allow-branch lets it run
# on the release PR branch; leaving off --execute keeps it a dry-run.
- run: cargo release publish --no-confirm --allow-branch '*'

# Run the real dist build (all targets) as a dry-run without copying dist's
# workflow: dispatch it against this PR's branch and watch it, so this job's
# pass/fail mirrors the build and shows up as a check on the PR.
build:
name: Dry-run build
runs-on: ubuntu-latest
if: github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'release')
steps:
- name: Dispatch and watch the dist dry-run build
run: |
before=$(gh run list --repo "$GITHUB_REPOSITORY" --workflow=v-release.yml --branch "$HEAD" --limit 1 --json databaseId --jq '.[0].databaseId // 0')
gh workflow run v-release.yml --repo "$GITHUB_REPOSITORY" --ref "$HEAD" -f tag=dry-run

# Wait for the new run to appear.
run_id=0
for _ in $(seq 1 30); do
run_id=$(gh run list --repo "$GITHUB_REPOSITORY" --workflow=v-release.yml --branch "$HEAD" --limit 1 --json databaseId --jq '.[0].databaseId // 0')
[ "$run_id" != "$before" ] && break
sleep 5
done
echo "Watching run $run_id"

# Poll until the run finishes. The build jobs sit "queued" while `plan`
# runs (they need it), so only start the runner clock once plan is done:
# a healthy runner attaches within a minute, so if a build job is still
# queued 1 min after that, no runner is coming -> abort.
# Judging by the final conclusion means an API hiccup can't fail a green build.
plan_done=0
while :; do
info=$(gh run view "$run_id" --repo "$GITHUB_REPOSITORY" --json status,jobs)
if [ "$(jq -r .status <<<"$info")" = "completed" ]; then break; fi
plan_status=$(jq -r '.jobs[] | select(.name == "plan") | .status' <<<"$info")
if [ "$plan_status" = "completed" ] && [ "$plan_done" = 0 ]; then plan_done=$(date +%s); fi
stuck=$(jq '[.jobs[] | select(.name != "plan" and .status == "queued")] | length' <<<"$info")
if [ "$plan_done" != 0 ] && [ "$stuck" -gt 0 ] && [ "$(( $(date +%s) - plan_done ))" -gt 60 ]; then
echo "::error::a dist build job got no runner within 1 min of plan completing:"
jq -r '.jobs[] | select(.name != "plan" and .status == "queued") | " - " + .name' <<<"$info"
gh run cancel "$run_id" --repo "$GITHUB_REPOSITORY" || true
exit 1
fi
sleep 20
done
result=$(gh run view "$run_id" --repo "$GITHUB_REPOSITORY" --json conclusion --jq .conclusion)
echo "dist dry-run build: $result"
[ "$result" = "success" ]
env:
GH_TOKEN: ${{ secrets.GH_PAT }}
HEAD: ${{ github.head_ref }}
46 changes: 30 additions & 16 deletions .github/workflows/smoketest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ on:
push:
branches: [master, staging, trying]
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
merge_group:
workflow_dispatch:

Expand All @@ -10,29 +11,27 @@ name: Run smoke test
env:
CARGO_INCREMENTAL: 0

# Cancel any currently running workflows from the same PR, branch, or
# tag when a new workflow is triggered.
#
# https://stackoverflow.com/a/66336834
concurrency:
cancel-in-progress: true
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}

jobs:
build-smoke-tester:
# Skip the slow hardware tests on draft PRs.
if: ${{ !github.event.pull_request.draft }}
runs-on: ubuntu-24.04-arm
# A new run of the same PR, branch, or tag cancels this job.
concurrency:
cancel-in-progress: true
group: ${{ github.workflow }}-build-smoke-tester-${{ github.event.pull_request.number || github.ref }}

steps:
- name: Checkout sources
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Install target for cross-compilation
run: rustup target add aarch64-unknown-linux-musl

- uses: taiki-e/install-action@nextest

- name: Cache Dependencies
uses: Swatinem/rust-cache@v2.9.1
uses: Swatinem/rust-cache@v2.9.2

- name: Show rust info
run: rustup show
Expand All @@ -46,25 +45,30 @@ jobs:
path: smoke_tester.tar.zst

build-probe-rs:
if: ${{ !github.event.pull_request.draft }}
runs-on: ubuntu-latest
# A new run of the same PR, branch, or tag cancels this job.
concurrency:
cancel-in-progress: true
group: ${{ github.workflow }}-build-probe-rs-${{ github.event.pull_request.number || github.ref }}

steps:
- name: Checkout sources
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Install target for cross-compilation
run: rustup target add aarch64-unknown-linux-gnu

- name: Install cross
uses: taiki-e/install-action@v2.79.0
uses: taiki-e/install-action@v2.87.29
with:
tool: cross

- name: Cache Dependencies
uses: Swatinem/rust-cache@v2.9.1
uses: Swatinem/rust-cache@v2.9.2

- name: Build probe-rs
run: cross build --release --target aarch64-unknown-linux-gnu -p probe-rs-tools --features remote
run: cross build --release --target aarch64-unknown-linux-gnu -p probe-rs-tools

- uses: actions/upload-artifact@v7
with:
Expand All @@ -73,10 +77,15 @@ jobs:

test:
runs-on: ["self-hosted", "linux", "ARM64", "${{ matrix.runner }}"]
# Do not cancel a running hardware job: that can leave the boards in a bad state.
# A new run of the same PR, branch, or tag waits for it.
concurrency:
cancel-in-progress: false
group: ${{ github.workflow }}-test-${{ matrix.runner }}-${{ github.event.pull_request.number || github.ref }}
strategy:
fail-fast: false
matrix:
runner: ["smoke-test", "smoke-tester-2", "probe-rs-tester-0"]
runner: ["smoke-tester-2", "probe-rs-tester-0"]

needs: build-smoke-tester

Expand All @@ -85,7 +94,7 @@ jobs:

steps:
- name: Checkout sources
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
# There is a conflict between the probe-rs/ subfolder and the probe-rs binary artifact, if the
# checkout is done into the workspace root.
Expand All @@ -103,6 +112,11 @@ jobs:

embedded-test:
runs-on: ["self-hosted", "linux", "ARM64", "${{ matrix.runner }}"]
# Do not cancel a running hardware job: that can leave the boards in a bad state.
# A new run of the same PR, branch, or tag waits for it.
concurrency:
cancel-in-progress: false
group: ${{ github.workflow }}-embedded-test-${{ matrix.runner }}-${{ github.event.pull_request.number || github.ref }}
strategy:
matrix:
runner: ["smoke-tester-2"]
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/start-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
env:
BRANCH_NAME: create-release/${{ inputs.version }}
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
with:
# The custom token is needed so that this workflow can trigger
# another workflow. By default, pushing tags from inside a workflow
Expand Down Expand Up @@ -61,7 +61,8 @@ jobs:

- name: Bump versions
run: |
cargo release version ${{ inputs.version }} --exclude probe-rs-mi --execute --verbose --no-confirm --allow-branch ${BRANCH_NAME}
# mi and rpc follow a separate versioning scheme
cargo release version ${{ inputs.version }} --exclude probe-rs-mi --exclude probe-rs-rpc --exclude probe-rs-rpc-client --execute --verbose --no-confirm --allow-branch ${BRANCH_NAME}
cargo release replace --execute --verbose --no-confirm
cargo release hook --execute --verbose --no-confirm
cargo release commit --execute --verbose --no-confirm --sign-commit
Expand Down Expand Up @@ -98,6 +99,8 @@ jobs:
- target-gen
- probe-rs-tools
- probe-rs-mi
- probe-rs-rpc
- probe-rs-rpc-client
- probe-rs-debug"
env:
GH_TOKEN: ${{ secrets.GH_PAT }}
Loading
Loading