Skip to content
This repository was archived by the owner on Mar 7, 2026. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
338 commits
Select commit Hold shift + click to select a range
65ef172
hosted/remote/protocol_v2: Avoid issuing `Jc` to the probe if there's…
dragonmux Mar 16, 2026
7fc79bf
common/jtagtap: Avoid running any cycles if we're asked to do nothing…
dragonmux Mar 16, 2026
dd49a6c
codeberg: Implemented steps for building the firmware for all the dif…
dragonmux Mar 17, 2026
3699698
codeberg: Implemented steps for building BMDA on Linux with both Clan…
dragonmux Mar 17, 2026
a267510
codeberg: Install the pre-requisites for BMDA in the firmware flow so…
dragonmux Mar 17, 2026
b712c7a
codeberg: Remove `-Werror` from the BMDA flow on Linux for now till o…
dragonmux Mar 17, 2026
1725e19
codeberg: Enabled LTO for the Linux BMDA builds
dragonmux Mar 18, 2026
29436d8
codeberg: Added a cross-file describing how to build BMDA for Windows…
dragonmux Mar 18, 2026
b1c1679
codeberg: Implemented steps for building BMDA for Windows from Linux
dragonmux Mar 18, 2026
c4ea63b
meson: Allow BMDA to be cross-compiled when not building the firmware…
dragonmux Mar 18, 2026
50a001a
mspm0: Flash target using on-device core loop stub
hardesk Feb 8, 2026
db181ee
mspm0: Expand the id list of supported mspm0 targets
hardesk Feb 8, 2026
9007cab
mspm0: Remove the FACTORY/NONMAIN register inspection
hardesk Feb 8, 2026
7d51c11
mspm0: Fix condition check whether flash erase command has finished
hardesk Feb 8, 2026
ab56f9f
ctxlink/WiFi_Server: Cleaned up in the GDB send interface code
dragonmux Dec 15, 2024
003f96b
gdb_packet: Converted consume_remote_packet() to using the new GDB pa…
dragonmux Dec 15, 2024
ed378c8
remote: Begun to switch the remote protocol to be expressed in terms …
dragonmux Dec 15, 2024
b983da4
remote: Converted the SWD packet handler to be expressed in terms of …
dragonmux Dec 15, 2024
3da9427
remote: Converted the JTAG packet handler to be expressed in terms of…
dragonmux Dec 15, 2024
b72e43e
remote: Converted the general packet handler to be expressed in terms…
dragonmux Dec 15, 2024
fe8791f
remote: Converted the high-level packet handler to be expressed in te…
dragonmux Dec 15, 2024
f111d72
remote: Converted the ADIv5 packet handler to be expressed in terms o…
dragonmux Dec 15, 2024
4d91de3
remote: Converted the ADIv6 packet handler to be expressed in terms o…
dragonmux Dec 15, 2024
f12ce00
remote: Converted the RISC-V packet handler to be expressed in terms …
dragonmux Dec 15, 2024
b7275e6
remote: Converted the SPI packet handler to be expressed in terms of …
dragonmux Dec 15, 2024
cd5f315
gdb_packet: Fixed a clang-tidy warning about type conversions in the …
dragonmux Dec 15, 2024
6f901ad
stm32f1: Hardcode GD32VW553 memory map
ALTracer Mar 5, 2026
6ee78d0
cortexm: wait for halt
mdrssv Mar 19, 2026
eed71d8
adiv5: keep trying to read TARGETID
mdrssv Mar 19, 2026
efecf9d
riscv_debug: Log tdata2 from discovered triggers during probe (to det…
ALTracer Feb 12, 2026
9b8f7ea
riscv_debug: Unconditionally disable triggers during attach
ALTracer Feb 12, 2026
2ff786f
riscv_debug: Unconditionally disable triggers during detach
ALTracer Feb 12, 2026
5cec517
riscv_debug: Reorder editing triggers *after* the halting
ALTracer Mar 25, 2026
12d7698
stm32g0: Enable non-halting SRAM access for RTT on G0/C0 series
ALTracer Oct 26, 2024
92bd1bd
stm32f1: Enable non-halting SRAM access for RTT on AT32F403A/F407
ALTracer Nov 16, 2024
6655d2b
stm32f1: Enable non-halting SRAM access for RTT on some GD32 series
ALTracer Nov 23, 2024
b1ffba4
stm32l4: Enable non-halting SRAM access for RTT on STM32G47x
ALTracer Jan 6, 2025
29ddd4a
stm32f1: Enable non-halting SRAM access for RTT on STM32F1/F3/F0 (bla…
ALTracer Jan 11, 2025
fab6200
stm32f4: Enable non-halting SRAM access for RTT on STM32F4 series
ALTracer Jan 19, 2025
1483f4b
nrf51: Enable non-halting SRAM access for RTT on nRF52 series
ALTracer Jan 19, 2025
c8cc2e4
nrf54l: Enable non-halting SRAM access for RTT on nRF54L series
ALTracer Dec 17, 2025
33df940
stm32f1: Enable non-halting SRAM access for RTT on AT32F425
ALTracer Dec 17, 2025
e0f72c1
at32f43x: Enable non-halting SRAM access for RTT on AT32F435/F437
ALTracer Dec 17, 2025
9dbdf3e
meson: Removed renesas support from the default set on BluePill, F073…
dragonmux Mar 29, 2026
6bb58d0
README: Update the CI badge to use the codeberg CI instead of GH.
esden Mar 29, 2026
df3d799
onboard_flash: Don't bail out on non-Winbond flash, detect Macronix
ALTracer Sep 17, 2025
34c5d91
riscv_debug: Detect Semihosting breakpoints and connect with common s…
ALTracer Apr 20, 2025
e03e77a
riscv_debug: Step over ebreak instructions
ALTracer Apr 26, 2025
ce9afca
riscv_debug: Give names to semihosting NOPs and GPR A1
ALTracer Mar 23, 2026
df3b165
riscv_debug: Prepare for 64-bit DPC and address space in semihosting
ALTracer Mar 23, 2026
1aa5e4a
semihosting: Bound-check the open_mode flag before indexing a small a…
ALTracer Mar 25, 2026
eea215d
riscv_debug: Bypass target_reg_read() indirection in semihosting, use…
ALTracer Mar 29, 2026
098bb4b
cortexar: Make attach/detach visible in headers
ALTracer Sep 29, 2024
d4a69bf
stm32mp15: Initial hooks to allow AXI-AP memory accesses
ALTracer Dec 23, 2023
7aadca5
stm32mp15: Register AP1 for APB-D accesses
ALTracer Jan 25, 2024
b921740
stm32mp15: Add a command to configure SWO parameters over AP1
ALTracer Jan 25, 2024
ddeff3e
common/swdptap: Ensure TDI is driven high, as spec allows it (as-if u…
ALTracer Mar 30, 2026
38bd364
riscv32: Map three more FPU CSR from 66-68 to 0x001-0x003
ALTracer Apr 4, 2026
8d54f20
riscv32: Guard against access to non-existent registers below RV_CSR_…
ALTracer Apr 4, 2026
e6bba26
stm32mp15: NULL out the target_storage to prevent a double-free
ALTracer Mar 30, 2026
f54cf44
stm32mp15: Postpone allocating AXI-AP to ca7_attach()
ALTracer Mar 30, 2026
57e856f
stm32mp15: Refactor usage of priv storage
ALTracer Mar 30, 2026
2e15300
cortexar: declare mem_read/write in headers
ALTracer Apr 5, 2026
af35374
stm32mp15: Restore CA7 memory access methods on detach
ALTracer Apr 4, 2026
24e36ec
stm32mp15: Always use AP1 for conf_swo
ALTracer Apr 4, 2026
8dfdd8f
stlink: document stlink v2-1 bootloader behavior
Apr 6, 2026
32c8fd6
adiv5_jtag: Restore lost JTAG-DP state across resets
ALTracer Feb 9, 2025
c10a4a4
adiv5_jtag: Make _ensure_idle method public
ALTracer Feb 9, 2025
4e925de
remote: Add JTAG ensure idle command (!JI#)
ALTracer Feb 9, 2025
9c93a5b
hosted/remote/protocol_v4: Add JTAG ensure idle command (!JI#)
ALTracer Feb 9, 2025
ac99484
stm32mp15: Read DBGMCU for CA7 via AP1
Apr 6, 2026
e6333cf
stm32mp15: Add DRAM (512 MiB) and Boot ROM to CA7 memory map
Dec 28, 2024
f7d50a4
riscv32: Prepare memory access via progbuf
ALTracer Jan 28, 2025
e44fbef
riscv32: Implement memory I/O via progbuf (4+1 slots, uncompressed)
ALTracer Jan 28, 2025
38b92b1
riscv32: Refactor progbuf-based memory I/O to fit into 1 slot and use…
ALTracer Feb 1, 2026
4399c0c
riscv32: Update riscv32_progbuf_mem_read to use both x10 & x11
ALTracer Feb 1, 2026
ab8ad90
riscv_debug: extract DM ProgBuf Base macro
Apr 12, 2026
e1d5f32
riscv_debug: Extract macros for A0/A1 core registers
Apr 12, 2026
8f580f2
riscv_debug: Extract EBREAK instruction to common header
Apr 12, 2026
a39d3c4
riscv32: Use newly added RV_GPR_A1
Apr 12, 2026
d46e000
riscv32: Delegate to riscv_csr_read/write in riscv32_progbuf_mem_read…
Apr 12, 2026
1ea36f8
riscv32: Restore saved GPR A0,A1 on progbuf_mem errors in the loop
Apr 13, 2026
a523f16
riscv32: Compose the progbuf read/write instructions via macros, drop…
Apr 12, 2026
d16b5e0
hosted/remote/protocol_v4_riscv: Adjust DMI idle cycles for remote "T…
Apr 14, 2026
a3f2ad1
riscv_debug: Preserve already set hart flags when enabling SysBus
Apr 14, 2026
742c62c
hosted/ftdi_bmp: Added the requisite board definition for the ECP5-5G…
dragonmux Apr 17, 2026
ee3e0b8
misc: Support for STM32401CD Blackpill as debug probe
lasutek Feb 9, 2026
cb7f8f4
common/stm32/timing_stm32: Removed the auto-tx-rx-switch logic for th…
dragonmux Apr 13, 2026
5b5a75b
platform_support: Renamed the functions the timing and serial logic u…
dragonmux Apr 13, 2026
5b38f1c
bmp-v3: Properly handle disabling either UART with the platform funct…
dragonmux Apr 13, 2026
2bc4dab
command: Moved the declaration of the platform command list into the …
dragonmux Apr 13, 2026
edfff63
command: Fixed some `clang-tidy` diagnostics in the command header
dragonmux Apr 13, 2026
566501c
bmp-v3: Implemented a command for setting the BMDU connector's UART p…
dragonmux Apr 13, 2026
5f2c9f7
common/aux_serial: Switched the UART enable scheme for the second bac…
dragonmux Apr 14, 2026
e276eb4
bmp-v3: Pruned the now unused functions for UART control and cleaned …
dragonmux Apr 14, 2026
f3f04ab
command: Fixed a `clang-tidy` lint and a capitalisation error in the …
dragonmux Apr 14, 2026
dce3141
common/aux_serial: Moved the UART state tracking into the main UART i…
dragonmux Apr 15, 2026
92f664e
common/aux_serial: Protect the state change logic from spurious chang…
dragonmux Apr 15, 2026
731f010
common/usb_serial: Documented how `debug_serial_debug_write()` works
dragonmux Apr 19, 2026
befe8e6
common/usb_serial: Documentation for parts of how the debug and aux s…
dragonmux Apr 19, 2026
0a52843
common/usb_serial: Fix the debug serial logic doing a bad by turning …
dragonmux Apr 19, 2026
b79287d
common/aux_serial: Fixed DMA going off the rails because the number-o…
dragonmux Apr 19, 2026
39cf143
buffer-utils: Added `read_le8`
lethalbit Feb 28, 2026
9cdd170
lattice_ecp5: Added target for the Lattice ECP5 FPGA
lethalbit Feb 28, 2026
95914f9
general: Added `__has_builtin` check for `__builtin_constant_p`
lethalbit Apr 20, 2026
7b6992b
lattice_ecp5: Put command and data buffers on heap
lethalbit Apr 20, 2026
bf03080
buffer: Added `reverse_bits` helpers for `8`/`16`/`24`/`32` bit widths
lethalbit Apr 20, 2026
fd035cd
lattice_ecp5: Use the new `reverse_bits8` helper
lethalbit Apr 20, 2026
aa776a4
lattice_ecp5: Mark things that were supposed to be static actually st…
lethalbit Apr 20, 2026
af280e5
lattice_ecp5: Add `ecp5_decode_registers` option
lethalbit Apr 24, 2026
762b270
meson: Add `lattice` target to the bmp-v3 cross file
lethalbit Apr 25, 2026
4d5027a
lattice_ecp5: Initial direct SRAM programming support
lethalbit Apr 24, 2026
d37de05
lattice_ecp5: Fixed up the order of flash operations to ensure SRAM p…
lethalbit Apr 26, 2026
6f4ecb7
buffer_utils: Fixed `rbit` guard against ARMv6-M
lethalbit Apr 26, 2026
fb9911f
lattice_ecp5: Fix identification of attached SPI flash
lethalbit Apr 26, 2026
fd7ee8d
lattice_ecp5: Codestyle cleanup
lethalbit Apr 26, 2026
5057f2f
lattice_ecp5: Prevent the ECP5 from becoming a zombie
lethalbit Apr 26, 2026
b150f5e
stm32h7rs: Adding zyp's old STM32H7R/S code. Updated for newer API. A…
emeb Dec 10, 2025
d91e0fb
stm32h7rs: Added code to clear FLASH_ISR bits during unlock. Helps.
emeb Dec 10, 2025
fe8fb8d
stm32h7rs: Bringing old code up to latest standards. Starting to work!
emeb Dec 11, 2025
fda61ff
stm32h7rs: Cleaned out dead code & comments
emeb Dec 11, 2025
bb93ef3
stm32h7rs: cleanup warnings
emeb Dec 12, 2025
cf64c71
stm32h7rs: align w/ latest H7 driver, clean out unused stuff.
emeb Dec 12, 2025
eb03226
stm32h7rs: DBGMCU stuff in attach/detach was causing problems. Disabled.
emeb Dec 12, 2025
68d9ab4
stm32h7rs: CRC works, tested breakpoints, erase_mass. Minor cleanups.
emeb Dec 12, 2025
2519110
stm32h7rs: fix formatting issues found by CI
emeb Dec 13, 2025
a896e6d
Added copyright and psize changes requested.
emeb Apr 26, 2026
3b32564
stm32c5: initial commit adding stm32c5 support to stm32h5 driver.
emeb Apr 28, 2026
88434c1
stm32c5: Fix bug in C5 revision reporting.
emeb Apr 28, 2026
d22b393
stm32c5: address issues raised in review
emeb Apr 28, 2026
dc3ee03
codeberg: Created a new CI flow for the `lint` step we did on GHA, al…
dragonmux May 1, 2026
09438ee
stm32h5: Fixed the formatting lints from `pre-commit`
dragonmux May 1, 2026
6f6019b
lattice_ecp5: Fixed the formatting lints from `pre-commit`
dragonmux May 1, 2026
df45ebd
lattice_common: Fixed the hex literal case lints from `pre-commit`
dragonmux May 1, 2026
e0d8ef9
stm32h7rs: Cleaned up and fixed formatting lints
dragonmux May 2, 2026
6bcc67d
stm32h5: Fixed hex literal case lints from `pre-commit`
dragonmux May 2, 2026
d8b83dc
lattice_ecp5: Fixed hex literal case lints from `pre-commit`
dragonmux May 2, 2026
0898e1d
adiv5: Fixed the formatting lint from `pre-commit`
dragonmux May 2, 2026
5a4e739
fix/stm32c5-macro-naming: fix flash bank size typos for STM32C59x
emeb May 3, 2026
6c73d2e
stm32u3: initial checkin of stm32u3 support - probes, attaches, debug…
emeb Apr 30, 2026
a38cc9c
stm32u3: Erase works - needed to set VOS1. Write / load hangs gdb
emeb May 2, 2026
cca7657
stm32u3: removed 0-length SRAM region - programming works
emeb May 2, 2026
ca5c3a7
stm32u3: fix sram2 region logic per ALTracer
emeb May 2, 2026
55549ec
stm32u3: correct copyright and formatting issues found during review
emeb May 3, 2026
85fcb0e
riscv_debug: Fix stack buffer overflow in 128-bit CSR access
zhangjiance Apr 26, 2026
de3341e
adiv5_jtag: Fixed adiv5_jtag_ensure_idle() so it doesn't mis-step the…
dragonmux May 3, 2026
7315987
bmp-v2: disambiguate `native` platform by renaming to `bmp-v2`
May 4, 2026
bd2969c
bmp-v1: add `bmp-v1` cross-files files referencing `bmp-v2` to make b…
May 7, 2026
19e3e69
cortexm, cortexar: Add a minimum reset pulse duration
May 10, 2026
c3fb02e
swlink: Do not wait for RST pin level to change in nrst_set_val()
May 12, 2026
64958ec
platforms: Delete the "for-volatile-counter" delay from nrst_set_val()
May 12, 2026
0fe4d81
lattice_ecp5: Fix 2 small typos
lethalbit Apr 26, 2026
26f187e
lattice_ecp5: Fixed IR value for JTAG devices
lethalbit May 13, 2026
8d13ae5
ftdi: Fixed a bug in the `ftdi_jtag_tdi_tdo_seq` that wasn't taking t…
lethalbit May 13, 2026
e6a5d8e
lattice_ecp5: Fix transparent SPI mode when there are multiple device…
lethalbit May 13, 2026
c49024f
lattice_ecp5: Don't try to scan for attached SPI flash if we're not t…
lethalbit May 13, 2026
0743eab
at32f43x: Expose UID command to every series, add dummy handler for o…
May 6, 2026
67d10cd
at32f43x: mark command lists as static to enforce TU-internal linkage…
May 15, 2026
52245fe
at32f43x: Add detection of AT32F455/456/457 and basic support (no USD)
May 6, 2026
6599f78
jtag: co-opt highest bit of the IR quirks `ir_length` as an `ir_value…
lethalbit May 18, 2026
7cf7021
jtag_devs: Add `BMD_QUIRK_IGNORE_IR_VALUE` helper macro
lethalbit May 18, 2026
edd05b8
command: Fixed `monitor rtt status` being able to get anywhere near a…
dragonmux May 18, 2026
69b3f6f
command: Fixed the `rtt` command outputting an inscruitable single wo…
dragonmux May 18, 2026
92e22ab
command: Split out the RTT status display logic into its own function
dragonmux May 18, 2026
ddc88b5
command: Reworked the RTT command handler so it's easier to follow an…
dragonmux May 19, 2026
482ded7
remote: Skip NULL ensure_idle when transport is not JTAG
May 21, 2026
4fc0ba1
misc: added missing tools to shell
mdrssv Apr 22, 2026
fea4655
command: added mon rtt detect
mdrssv May 20, 2026
6a59fb2
cortexm: Report the count of breakpoint, watchpoint slots on attach
Jul 14, 2024
d4f9256
jtag_devs: Added the definitions needed to find and work with ispCLOC…
dragonmux Apr 17, 2026
29f0abe
meson: Disabled building of support for TI parts by default for ST-Li…
dragonmux Apr 18, 2026
8f76f69
lattice_isp_clock: Created a stub handler for ispCLOCK devices
dragonmux Apr 18, 2026
d21ea11
lattice_isp_clock: Defined the "Flash" (E²CMOS NVM) for the ispCLOCK …
dragonmux Apr 18, 2026
8332cc1
lattice_isp_clock: Saved the JTAG device index for use in chain manip…
dragonmux Apr 18, 2026
81005e9
lattice_isp_clock: Implemented the logic for going into and exiting o…
dragonmux Apr 18, 2026
5f81508
lattice_isp_clock: Implemented Flash mass-erase for the ispCLOCK
dragonmux Apr 18, 2026
b05d266
lattice_isp_clock: Implemented logic for programming the Flash on the…
dragonmux Apr 18, 2026
b127c86
lattice_isp_clock: Ignore tell ir_quirks to ignore the IR value
lethalbit May 19, 2026
b66d480
lattice_isp_clock: Remove `isp_clock_mass_erase`
lethalbit May 19, 2026
17c4cc7
lattice_isp_clock: Replace removed `isp_clock_mass_erase` with `isp_c…
lethalbit May 19, 2026
5cc2cdc
lattice_isp_clock: Add normally undocumented `IR_ADDRESS_INIT` JTAG c…
lethalbit May 19, 2026
9c3a8e3
lattice_isp_clock: Rename `IR_VERIFY_INCR` to `IR_READ_INCR`
lethalbit May 19, 2026
cfaba40
lattice_isp_clock: Add `isp_clock_flash_prepare` and `isp_clock_flash…
lethalbit May 19, 2026
52a7a85
lattice_isp_clock: Fix `isp_clock_flash_write` to properly program th…
lethalbit May 19, 2026
4c54da9
lattice_isp_clock: Add `isp_clock_mem_read`
lethalbit May 19, 2026
bf757c8
cortexm: Catch the JTAG-DP exception from reset-by-AIRCR
May 21, 2026
e3e42dd
Add the Zig's NoAI policy to our Code of Conduct.
esden Jun 13, 2026
1109a7e
hosted/remote/protocol_v4_adiv5: Align max size by 4 for optimal tran…
May 23, 2026
81b2342
fix: stlink-v2-isol needs re-enumeration
HrMitrev May 27, 2026
2de0ceb
maintain: re-enumerate all stlink platforms
HrMitrev May 27, 2026
a4a249f
docs: Updated NO AI badge link and binary releases link in the README.
esden Jun 19, 2026
393531d
coc: Add abuse contact.
esden Jun 19, 2026
c62855d
target_internal: Compile-time check for struct breakwatch size being 40
May 23, 2026
c6f5b8b
meson: Promote pointer size macros from linker to compiler arguments
May 23, 2026
ae3e706
lattice_ecp5: Ignore IR value in quirks for ECP5 devices
lethalbit May 19, 2026
e42ddf2
lattice_ecp5: Documented the status register macros
lethalbit May 22, 2026
cebdc58
lattice_ecp5: Added configuration target value macros
lethalbit May 22, 2026
8950f11
lattice_ecp5: Added BSE error value defines
lethalbit May 22, 2026
7e864aa
lattice_ecp5: Documented control register 0 bits
lethalbit May 22, 2026
a71d66d
lattice_ecp5: Ensure we properly inhibit post-scan in SPI mode
lethalbit Jun 23, 2026
e0a8152
lattice_ecp5: Remove interim debug print
lethalbit Jun 23, 2026
15eb681
lattice_ecp5: Use clang-format 18 rather than 22
lethalbit Jun 23, 2026
bc864aa
adiv5: save up to 290 bytes from inactive code
HrMitrev Jun 19, 2026
6bfecfa
stm32f1: Detect locked AT32F403A/407 to allow unlocking
May 24, 2026
09003e4
bmp-v3: Fixed the platform mis-reporting when target power is applied…
dragonmux May 2, 2026
4ec2041
meson: Disabled building of support for TI parts by default for the F…
dragonmux Jun 28, 2026
2129a32
meson: Moved the building of support for TI parts by default from the…
dragonmux Jun 28, 2026
3920a4a
hosted/remote/protocol_v4: Fixed some small errors in the implementation
dragonmux Jun 29, 2026
3529348
hosted/remote/protocol_v2: Simplified down the way the get frequency …
dragonmux Jun 29, 2026
0c9e3ab
hosted/remote/protocol_v0: Fixed a documentation error in the protoco…
dragonmux Jun 29, 2026
5da779c
adiv5: Fixed a missing unsigned suffix in one of the constants in the…
dragonmux Jun 29, 2026
38f6b59
hosted/remote/protocol_v3_adiv5: Fixed an error in the block sizing c…
dragonmux Jun 29, 2026
b92e330
hosted/remote/protocol_v1_adiv5: Fixed an error in the block sizing c…
dragonmux Jun 29, 2026
1a7b04b
misc: Turn off `readability-inconsistent-ifelse-braces` lint as it wr…
dragonmux Jun 30, 2026
8db4d81
hosted/remote/protocol_v0_adiv5: Fixed an error in the block sizing c…
dragonmux Jun 30, 2026
4edae41
hosted/remote/protocol_v0_swd: Corrected some cycle count checks bein…
dragonmux Jul 1, 2026
7d9151b
hosted/remote/protocol_v0_jtag: Corrected a missing cycle count check…
dragonmux Jul 1, 2026
d6174ff
hosted/remote: Fixed the copyright years in several of the license he…
dragonmux Jul 1, 2026
55595e8
hosted/remote/protocol_v4_adiv5: Fixed the debug prints to properly h…
dragonmux Jul 1, 2026
32fbf67
hosted/remote/protocol_v4_riscv: Added a missing `static` to fix a li…
dragonmux Jul 2, 2026
be70c33
hosted/remote: Fixed an issue in the error dispatches in a bunch of t…
dragonmux Jul 2, 2026
65007de
usb: fix UB in global variable usb_config
HrMitrev Jul 5, 2026
7fee3fa
remote: Fixed a crash where if a user initialises JTAG comms and then…
dragonmux Jul 4, 2026
178120c
meson: Made sure to enable RISC-V protocol accelerations when the RIS…
dragonmux Jul 6, 2026
02bd728
samx5x: Fixed the `target` and `flash` nomenclature
dragonmux Jul 6, 2026
899bb64
samx5x: Removed the optional memory write commands as they're all ava…
dragonmux Jul 6, 2026
b40c1ab
samx5x: Fixed a parens placement to improve readability
dragonmux Jul 6, 2026
4048ccf
samx5x: Fixed a format string issue
dragonmux Jul 6, 2026
704a130
samx5x: Normalised the code organisation
dragonmux Jul 6, 2026
070301a
stm32h5: Fixed a missing `static` on the H5 command list
dragonmux Jul 6, 2026
31e0fde
timing: Fixed the `timeout` nomenclature
dragonmux Jul 6, 2026
976bc21
sam3x: Fixed a missing `static` on the command list
dragonmux Jul 6, 2026
ead40c2
renesas_ra: Fixed a couple nomenclature and `static` issues
dragonmux Jul 6, 2026
9afbbe3
kinetis: Fixed the missing `static`'s on the two command lists
dragonmux Jul 6, 2026
b624393
efm32: Fixed a missing `static` on the command list
dragonmux Jul 6, 2026
7fc83d2
ch32vx: Fixed a missing `static` on the command list
dragonmux Jul 6, 2026
631a5de
meson: Disabled building of support for TI parts by default for ST-Li…
esden Jul 9, 2026
79ad43c
misc: Bumped the meson out of Git version to v2.1.0-rc1
esden Jul 9, 2026
75d531d
meson: Recombined the v1 and v2 cross-files into a set designed to pr…
dragonmux Jul 12, 2026
849d908
scripts: Made sure to skip the arm-none-eabi.ini cross-file in the bu…
dragonmux Jul 12, 2026
0ce7c1e
meson: Fixed some documentation issues in the BMPv1/2 cross-files
dragonmux Jul 15, 2026
01582b0
meson: Provided mappings for the bmp-v1 and bmp-v1-v2 probe names to …
dragonmux Jul 15, 2026
a115c7c
codeberg: Updated CI to use the new name for the BMPv1/2 hardware pla…
dragonmux Jul 15, 2026
bb988c1
stm32l4: Fixed a past-the-end issue in the value storage array for th…
dragonmux Jul 16, 2026
1a86f69
meson: Fixed a small error in the cross files which had the CI build …
dragonmux Jul 16, 2026
a70eaba
crc32: DRY the macros
Jul 16, 2026
1c46256
crc32: Add STM32U5
Jul 15, 2026
d353470
hosted/ftdi_bmp: Register generic FT2232H on Icebreaker for JTAG on M…
ALTracer Apr 19, 2025
60a6287
jtag_devs: Register Hazard3/ice40 TAP as a RISC-V DTM
ALTracer Apr 19, 2025
770d13d
riscv32: Add very basic support for Hazard3 SoC on Icebreaker SPRAM
ALTracer Apr 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
Checks: 'bugprone-*,cert-*,clang-analyzer-*,misc-*,modernize-*,portability-*,performance-*,readability-*,-readability-magic-numbers,-readability-braces-around-statements,-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,-modernize-macro-to-enum,-bugprone-easily-swappable-parameters,-misc-include-cleaner,-misc-no-recursion,-misc-header-include-cycle'
Checks: 'bugprone-*,cert-*,clang-analyzer-*,misc-*,modernize-*,portability-*,performance-*,readability-*,-readability-magic-numbers,-readability-braces-around-statements,-readability-inconsistent-ifelse-braces,-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,-modernize-macro-to-enum,-bugprone-easily-swappable-parameters,-misc-include-cleaner,-misc-no-recursion,-misc-header-include-cycle,-clang-analyzer-core.FixedAddressDereference'
FormatStyle: 'none'
HeaderFilterRegex: '(src|upgrade)/.+'
#AnalyzeTemporaryDtors: false
Expand Down
55 changes: 55 additions & 0 deletions .codeberg/ci/build-firmware.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# SPDX-License-Identifier: MIT OR Apache-2.0
# SPDX-FileCopyrightText: 2026 1BitSquared <info@1bitsquared.com>
# SPDX-FileContributor: Written by Rachel Mant <git@dragonmux.network>

# Controls when the workflow will run
when:
# Triggers the workflow on pull request events
- event: pull_request
# Triggers the workflow on push events, but only for the main branch
- event: push
branch: main
# Allows us to trigger the workflow manually from in Woodpecker for any branch
- event: manual

matrix:
# Define a matrix of all the probe platforms to get full build coverage for all the firmware possibilities
BMD_PROBE:
- '96b_carbon'
- 'blackpill-f401cc'
- 'blackpill-f401ce'
- 'blackpill-f411ce'
- 'bluepill'
- 'bmp-v3'
- 'ctxlink'
- 'f072'
- 'f3'
- 'f4discovery'
- 'hydrabus'
- 'launchpad-icdi'
- 'bmp-v1-v2'
- 'bmp-v1-v2-uncommon'
- 'bmp-v1-v2-st-clones'
- 'bmp-v1-v2-riscv'
- 'bmp-v1-v2-remote'
- 'stlink'
- 'stlinkv3'
- 'swlink'

steps:
# Build the firmware for a given probe platform w/ `-Werror` so warnings are errors
- name: build
image: codeberg.org/blackmagic-debug/blackmagic-ci-images/blackmagic-c
pull: true
commands: |
export PATH="$$HOME/arm-gnu-toolchain-15.2.rel1-x86_64-arm-none-eabi/bin:$$PATH"
apt update
apt install -y libftdi1-dev libhidapi-dev libusb-1.0-0-dev

cc --version
arm-none-eabi-gcc --version
meson --version
ninja --version

meson setup build --cross-file cross-file/${BMD_PROBE}.ini --werror
meson compile -C build
34 changes: 34 additions & 0 deletions .codeberg/ci/build-linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# SPDX-License-Identifier: MIT OR Apache-2.0
# SPDX-FileCopyrightText: 2026 1BitSquared <info@1bitsquared.com>
# SPDX-FileContributor: Written by Rachel Mant <git@dragonmux.network>

# Controls when the workflow will run
when:
# Triggers the workflow on pull request events
- event: pull_request
# Triggers the workflow on push events, but only for the main branch
- event: push
branch: main
# Allows us to trigger the workflow manually from in Woodpecker for any branch
- event: manual

matrix:
# Define a matrix of compilers to build BMDA with
C_COMPILER:
- gcc
- clang

steps:
# Build BMDA with a given compiler from the matrix w/ `-Werror` so warnings are errors
- name: build
image: codeberg.org/blackmagic-debug/blackmagic-ci-images/blackmagic-c
pull: true
commands: |
export CC="${C_COMPILER}"

$$CC --version
meson --version
ninja --version

meson setup build -Db_lto=true
meson compile -C build
26 changes: 26 additions & 0 deletions .codeberg/ci/build-windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# SPDX-License-Identifier: MIT OR Apache-2.0
# SPDX-FileCopyrightText: 2026 1BitSquared <info@1bitsquared.com>
# SPDX-FileContributor: Written by Rachel Mant <git@dragonmux.network>

# Controls when the workflow will run
when:
# Triggers the workflow on pull request events
- event: pull_request
# Triggers the workflow on push events, but only for the main branch
- event: push
branch: main
# Allows us to trigger the workflow manually from in Woodpecker for any branch
- event: manual

steps:
# Build BMDA with a Meson config for Windows cross-builds w/ `-Werror` so warnings are errors
- name: build
image: codeberg.org/blackmagic-debug/blackmagic-ci-images/blackmagic-c
pull: true
commands: |
x86_64-w64-mingw32ucrt-gcc --version
meson --version
ninja --version

meson setup build --cross-file .codeberg/ci/x86_64-pc-windows-mingw-ucrt64.ini -Db_lto=true
meson compile -C build
25 changes: 25 additions & 0 deletions .codeberg/ci/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# SPDX-License-Identifier: MIT OR Apache-2.0
# SPDX-FileCopyrightText: 2026 1BitSquared <info@1bitsquared.com>
# SPDX-FileContributor: Written by Rachel Mant <git@dragonmux.network>

# Controls when the workflow will run
when:
# Triggers the workflow on pull request events
- event: pull_request
# Allows us to trigger the workflow manually from in Woodpecker for any branch
- event: manual

steps:
- name: lint
image: debian:trixie
pull: true
commands: |
# Get Python installed
apt update
apt install -y python3 python3-venv git
# Create a Python venv for pre-commit to be run from and activate it
python3 -m venv --upgrade-deps env
. env/bin/activate
# Now install pre-commit and run it for BMD
pip install pre-commit
pre-commit run --show-diff-on-failure --color=always --all-files
34 changes: 34 additions & 0 deletions .codeberg/ci/x86_64-pc-windows-mingw-ucrt64.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
[constants]
compileFlags = ['--sysroot', '/usr/x86_64-w64-mingw32ucrt']
linkFlags = ['--sysroot', '/usr/x86_64-w64-mingw32ucrt']

[binaries]
c = 'x86_64-w64-mingw32ucrt-gcc'
cpp = 'x86_64-w64-mingw32ucrt-g++'
# c_ld = 'x86_64-w64-mingw32ucrt-ld.bdf'
# cpp_ld = 'x86_64-w64-mingw32ucrt-ld.bdf'
ar = 'x86_64-w64-mingw32ucrt-ar'
as = 'x86_64-w64-mingw32ucrt-as'
rc = 'x86_64-w64-mingw32ucrt-rc'
windres = 'x86_64-w64-mingw32ucrt-windres'
strip = 'x86_64-w64-mingw32ucrt-strip'
objcopy = 'x86_64-w64-mingw32ucrt-objcopy'
objdump = 'x86_64-w64-mingw32ucrt-objdump'
size = 'x86_64-w64-mingw32ucrt-size'
cmake = 'false'
exe_wrapper = 'wine'

[properties]
needs_exe_wrapper = true

[built-in options]
c_args = compileFlags
cpp_args = compileFlags
c_link_args = linkFlags
cpp_link_args = linkFlags

[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'amd64'
endian = 'little'
8 changes: 4 additions & 4 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ Information embedded in the description part of the commits doesn't count.

## Your checklist for this pull request

* [ ] I've read the [Code of Conduct](https://github.com/blackmagic-debug/blackmagic/blob/main/CODE_OF_CONDUCT.md)
* [ ] I've read the [guidelines for contributing](https://github.com/blackmagic-debug/blackmagic/blob/main/CONTRIBUTING.md) to this repository
* [ ] It builds for hardware native (see [Building the firmware](https://github.com/blackmagic-debug/blackmagic?tab=readme-ov-file#building-black-magic-debug-firmware))
* [ ] It builds as BMDA (see [Building the BMDA](https://github.com/blackmagic-debug/blackmagic?tab=readme-ov-file#building-black-magic-debug-app))
* [ ] I've read the [Code of Conduct](https://codeberg.org/blackmagic-debug/blackmagic/src/CODE_OF_CONDUCT.md)
* [ ] I've read the [guidelines for contributing](https://codeberg.org/blackmagic-debug/blackmagic/src/CONTRIBUTING.md) to this repository
* [ ] It builds for hardware native (see [Building the firmware](https://codeberg.org/blackmagic-debug/blackmagic?tab=readme-ov-file#building-the-firmware))
* [ ] It builds as BMDA (see [Building the BMDA](https://codeberg.org/blackmagic-debug/blackmagic?tab=readme-ov-file#building-black-magic-debug-app))
* [ ] I've tested it to the best of my ability
* [ ] My commit messages provide a useful short description of what the commits do

Expand Down
52 changes: 27 additions & 25 deletions .github/workflows/build-and-upload.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,24 +32,25 @@ jobs:
os:
- {id: ubuntu-24.04, name: noble}
compiler:
- '14.3.Rel1'
- '15.2.Rel1'
probe:
- '96b_carbon'
- 'blackpill-f401cc'
- 'blackpill-f401ce'
- 'blackpill-f411ce'
- 'bluepill'
- 'bmp-v3'
- 'ctxlink'
- 'f072'
- 'f3'
- 'f4discovery'
- 'hydrabus'
- 'launchpad-icdi'
- 'native'
- 'native-uncommon'
- 'native-st-clones'
- 'native-riscv'
- 'native-remote'
- 'bmp-v2'
- 'bmp-v2-uncommon'
- 'bmp-v2-st-clones'
- 'bmp-v2-riscv'
- 'bmp-v2-remote'
- 'stlink'
- 'stlinkv3'
- 'swlink'
Expand Down Expand Up @@ -90,7 +91,7 @@ jobs:

# Checkout the repository and branch to build under the default location
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0
fetch-tags: true
Expand All @@ -103,7 +104,7 @@ jobs:
meson compile -C build
mkdir src/artefacts
case "${{ matrix.probe }}" in
native-*)
bmp-v2-*)
mv build/blackmagic_native_firmware.elf build/blackmagic_${{ matrix.probe }}_firmware.elf
mv build/blackmagic_native_firmware.bin build/blackmagic_${{ matrix.probe }}_firmware.bin
;;
Expand All @@ -112,7 +113,7 @@ jobs:

# Package up the artefacts and upload them
- name: Archive
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: blackmagic_firmware-${{ matrix.probe }}
path: src/artefacts/*
Expand All @@ -121,7 +122,7 @@ jobs:
# Package and upload logs if the build fails so we can dissect why
- name: Upload failure logs
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: logs-firmware-${{ matrix.probe }}
path: ${{ github.workspace }}/build/meson-logs/*
Expand All @@ -132,7 +133,7 @@ jobs:
needs: build-firmware
steps:
- name: Merge firmware artefacts
uses: actions/upload-artifact/merge@v4
uses: actions/upload-artifact/merge@v6
with:
name: blackmagic_firmware
pattern: blackmagic_firmware-*
Expand All @@ -150,9 +151,9 @@ jobs:
- {id: ubuntu-24.04, name: noble}
compiler:
- 'clang-17' # Native Clang compiler for the CI image
- 'clang-20' # Latest Clang compiler from the apt mirror
- 'clang-21' # Latest Clang compiler from the apt mirror
- 'gcc-12' # Native GCC compiler for the CI image
- 'gcc-13' # Latest GCC compiler from the toolchain PPA
- 'gcc-14' # Latest GCC compiler from the toolchain PPA
fail-fast: false

# Steps represent a sequence of tasks that will be executed as part of the job
Expand All @@ -172,7 +173,7 @@ jobs:
shell: bash
run: |
CXX=${CC/#gcc/g++}
sudo apt-add-repository ppa:ubuntu-toolchain-r/test
sudo apt-add-repository ppa:ubuntu-toolchain-r/ppa
sudo apt-get update
sudo apt-get install $CC $CXX
echo "CC=$CC" >> $GITHUB_ENV
Expand Down Expand Up @@ -219,7 +220,7 @@ jobs:

# Checkout the repository and branch to build under the default location
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0
fetch-tags: true
Expand All @@ -235,7 +236,7 @@ jobs:

# Package up the artefact and upload it
- name: Archive
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: blackmagic_linux-${{ matrix.os.id }}-${{ matrix.compiler }}
path: src/artefacts/*
Expand All @@ -244,7 +245,7 @@ jobs:
# Package and upload logs if the build fails so we can dissect why
- name: Upload failure logs
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: logs-linux-${{ matrix.os.id }}-${{ matrix.compiler }}
path: ${{ github.workspace }}/build/meson-logs/*
Expand All @@ -266,7 +267,7 @@ jobs:
strategy:
matrix:
os:
- windows-2022
- windows-2025
sys:
- {abi: ucrt64, env: ucrt-x86_64, compiler: gcc}
fail-fast: false
Expand Down Expand Up @@ -319,7 +320,7 @@ jobs:

# Checkout the repository and branch to build under the default location
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0
fetch-tags: true
Expand All @@ -336,7 +337,7 @@ jobs:

# Package up all the artefacts and upload them
- name: Archive firmware build artefacts as a zip
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: blackmagic_${{ matrix.os }}-${{ matrix.sys.abi }}-${{ matrix.sys.compiler }}
path: src/artefacts/*
Expand All @@ -345,7 +346,7 @@ jobs:
# Package and upload logs if the build fails so we can dissect why
- name: Upload failure logs
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: logs-${{ matrix.os }}-${{ matrix.sys.abi }}-${{ matrix.sys.compiler }}
path: ${{ github.workspace }}/build/meson-logs/*
Expand All @@ -368,8 +369,9 @@ jobs:
strategy:
matrix:
os:
- {id: macos-13, name: '13'}
- {id: macos-14, name: '14'}
- {id: macos-15, name: '15'}
- {id: macos-26, name: '26'}
fail-fast: false

# Steps represent a sequence of tasks that will be executed as part of the job
Expand Down Expand Up @@ -397,7 +399,7 @@ jobs:

# Checkout the repository and branch to build under the default location
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0
fetch-tags: true
Expand All @@ -413,7 +415,7 @@ jobs:

# Package up the artefact and upload it
- name: Archive
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: blackmagic_macos-${{ matrix.os.name }}
path: src/artefacts/*
Expand All @@ -422,7 +424,7 @@ jobs:
# Package and upload logs if the build fails so we can dissect why
- name: Upload failure logs
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: logs-macos-${{ matrix.os.name }}
path: ${{ github.workspace }}/build/meson-logs/*
Expand Down
Loading