7
31
Fork
You've already forked blackmagic
23

Feature: nRF53 series support #2277

Open
micl wants to merge 1 commit from micl/blackmagic:micl/nrf53 into main
pull from: micl/blackmagic:micl/nrf53
merge into: blackmagic-debug:main
blackmagic-debug:main
blackmagic-debug:feature/bmda-remote-comms
blackmagic-debug:ALTracer/feature/aarch64-ident
blackmagic-debug:feature/better-meson-optimisation-handling
blackmagic-debug:feature/am335x-support
blackmagic-debug:feature/esp32-c3-support
blackmagic-debug:feature/cortex-ar-software-breakpoints
blackmagic-debug:feature/unit-testing
blackmagic-debug:feature/windows-usb-serial-interface-naming
blackmagic-debug:fix/bmp-external-spi
blackmagic-debug:ALTracer/feature/bluepillplus-platform
blackmagic-debug:ALTracer/feature/at32f43x-unrdp
blackmagic-debug:feature/const-correctness
blackmagic-debug:ALTracer/feature/fault_handlers
blackmagic-debug:ALTracer/feature/hazard3-ice40-support
blackmagic-debug:fix/ci-cleanup
blackmagic-debug:ALTracer/fix/gdb-10-12-thread
blackmagic-debug:ALTracer/feature/blackpill-f4-adc
blackmagic-debug:ALTracer/fix/cortex-desc-allocfail-report
blackmagic-debug:ALTracer/feature/spi-perf
blackmagic-debug:ALTracer/feature/calibrate_swd
blackmagic-debug:ALTracer/feature/blank-check
blackmagic-debug:feature/avr
blackmagic-debug:v2.0
blackmagic-debug:v1.9
blackmagic-debug:v1.10
blackmagic-debug:v1.8
First-time contributor
Copy link

Detailed description

This PR adds support for the Nordic nRF53 series (currently just the nRF5340) microcontrollers, which is a dual core SoC with one application and one network Cortex-M33.

It implements the nrf53 target driver plus the standard probe iwring, following the conventions of the existing nrf51, nrf54l and nrf91 drivers.

For each core it provides

  • The memory map (flash, UICR, RAM) and NVMC flash + uirc programming, so gdb load works on both cores.
  • A per core mass erase via the NVMC ERASEALL register, so monitor erase_mass on an attached core erases that core (and only that core)

Since the nRF5340 uses hardened APPROTECT, a protected core's AHB-AP does not enumerate, such a core is surfaced as a fake AP target (following the nRF52/nRF54L drivers) whose monitor erase_mass runs the CTRL_AP ERASEALL plus APPROTECT-disable sequence to recover it. A rescan then brings the core up as flashable.

Some further nRF5340 behaviours are handled in the driver:

  • The network core is held in RESET.NETWORK.FORCEOFF until the application core powers it. A DP prepare hook releases FORCEOFF through the application AHB-AP before the AP scan so that the network core enumerates in the same scan.
  • The nRF5340 returns outdated/stale data on the first AP read after a SELECT/bank change, so the driver installs a double reading dp -> ap_read for the nRF53 DPs

It also adds a monitor read command exposing the FICR device information (which may be useful) since the nrf51 has a similar command.

Tested on an nRF5340 module (Panasonic PAN1783) over a Black Magic Probe v2.3c.

Your checklist for this pull request

Closing issues

Implements feature requested in issue #1779.

## Detailed description This PR adds support for the Nordic nRF53 series (currently just the nRF5340) microcontrollers, which is a dual core SoC with one application and one network Cortex-M33. It implements the nrf53 target driver plus the standard probe iwring, following the conventions of the existing nrf51, nrf54l and nrf91 drivers. For each core it provides * The memory map (flash, UICR, RAM) and NVMC flash + uirc programming, so gdb load works on both cores. * A per core mass erase via the NVMC ERASEALL register, so `monitor erase_mass` on an attached core erases that core (and only that core) Since the nRF5340 uses hardened APPROTECT, a protected core's AHB-AP does not enumerate, such a core is surfaced as a fake AP target (following the nRF52/nRF54L drivers) whose monitor erase_mass runs the CTRL_AP ERASEALL plus APPROTECT-disable sequence to recover it. A rescan then brings the core up as flashable. Some further nRF5340 behaviours are handled in the driver: * The network core is held in RESET.NETWORK.FORCEOFF until the application core powers it. A DP prepare hook releases FORCEOFF through the application AHB-AP before the AP scan so that the network core enumerates in the same scan. * The nRF5340 returns outdated/stale data on the first AP read after a SELECT/bank change, so the driver installs a double reading dp -> ap_read for the nRF53 DPs It also adds a monitor read command exposing the FICR device information (which may be useful) since the nrf51 has a similar command. Tested on an nRF5340 module (Panasonic PAN1783) over a Black Magic Probe v2.3c. ## Your checklist for this pull request * [x] I've read the [Code of Conduct](https://codeberg.org/blackmagic-debug/blackmagic/src/CODE_OF_CONDUCT.md) * [x] I've read the [guidelines for contributing](https://codeberg.org/blackmagic-debug/blackmagic/src/CONTRIBUTING.md) to this repository * [x] It builds for hardware native (see [Building the firmware](https://codeberg.org/blackmagic-debug/blackmagic?tab=readme-ov-file#building-the-firmware)) * [x] It builds as BMDA (see [Building the BMDA](https://codeberg.org/blackmagic-debug/blackmagic?tab=readme-ov-file#building-black-magic-debug-app)) * [x] I've tested it to the best of my ability * [x] My commit messages provide a useful short description of what the commits do ## Closing issues Implements feature requested in issue [#1779](https://codeberg.org/blackmagic-debug/blackmagic/issues/1779).
nrf53: Initial support
Some checks are pending
ci/woodpecker/pr/build-firmware/1 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/2 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/3 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/4 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/5 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/6 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/7 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/8 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/9 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/10 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/11 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/12 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/13 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/14 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/15 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/16 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/17 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/18 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/19 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/20 Pipeline is pending approval
ci/woodpecker/pr/build-linux/1 Pipeline is pending approval
ci/woodpecker/pr/build-linux/2 Pipeline is pending approval
ci/woodpecker/pr/build-windows Pipeline is pending approval
ci/woodpecker/pr/lint Pipeline is pending approval
660f6226b0
micl changed title from (削除) nrf53: Initial support (削除ここまで) to Feature: nRF53 series support 2026年06月25日 15:52:05 +02:00
micl force-pushed micl/nrf53 from 660f6226b0
Some checks are pending
ci/woodpecker/pr/build-firmware/1 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/2 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/3 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/4 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/5 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/6 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/7 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/8 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/9 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/10 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/11 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/12 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/13 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/14 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/15 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/16 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/17 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/18 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/19 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/20 Pipeline is pending approval
ci/woodpecker/pr/build-linux/1 Pipeline is pending approval
ci/woodpecker/pr/build-linux/2 Pipeline is pending approval
ci/woodpecker/pr/build-windows Pipeline is pending approval
ci/woodpecker/pr/lint Pipeline is pending approval
to dbdca3114f
Some checks failed
ci/woodpecker/pr/build-firmware/3 Pipeline was successful
ci/woodpecker/pr/build-firmware/2 Pipeline was successful
ci/woodpecker/pr/build-firmware/1 Pipeline was successful
ci/woodpecker/pr/build-firmware/4 Pipeline was successful
ci/woodpecker/pr/build-firmware/5 Pipeline failed
ci/woodpecker/pr/build-firmware/8 Pipeline failed
ci/woodpecker/pr/build-firmware/6 Pipeline was successful
ci/woodpecker/pr/build-firmware/9 Pipeline was successful
ci/woodpecker/pr/build-firmware/7 Pipeline was successful
ci/woodpecker/pr/build-firmware/10 Pipeline was successful
ci/woodpecker/pr/build-firmware/13 Pipeline failed
ci/woodpecker/pr/build-firmware/12 Pipeline was successful
ci/woodpecker/pr/build-firmware/14 Pipeline was successful
ci/woodpecker/pr/build-firmware/11 Pipeline was successful
ci/woodpecker/pr/build-firmware/15 Pipeline was successful
ci/woodpecker/pr/build-firmware/17 Pipeline was successful
ci/woodpecker/pr/build-firmware/18 Pipeline failed
ci/woodpecker/pr/build-firmware/16 Pipeline was successful
ci/woodpecker/pr/build-firmware/19 Pipeline was successful
ci/woodpecker/pr/build-firmware/20 Pipeline failed
ci/woodpecker/pr/build-linux/1 Pipeline was successful
ci/woodpecker/pr/build-linux/2 Pipeline was successful
ci/woodpecker/pr/build-windows Pipeline was successful
ci/woodpecker/pr/lint Pipeline failed
2026年07月02日 11:07:20 +02:00
Compare
micl force-pushed micl/nrf53 from dbdca3114f
Some checks failed
ci/woodpecker/pr/build-firmware/3 Pipeline was successful
ci/woodpecker/pr/build-firmware/2 Pipeline was successful
ci/woodpecker/pr/build-firmware/1 Pipeline was successful
ci/woodpecker/pr/build-firmware/4 Pipeline was successful
ci/woodpecker/pr/build-firmware/5 Pipeline failed
ci/woodpecker/pr/build-firmware/8 Pipeline failed
ci/woodpecker/pr/build-firmware/6 Pipeline was successful
ci/woodpecker/pr/build-firmware/9 Pipeline was successful
ci/woodpecker/pr/build-firmware/7 Pipeline was successful
ci/woodpecker/pr/build-firmware/10 Pipeline was successful
ci/woodpecker/pr/build-firmware/13 Pipeline failed
ci/woodpecker/pr/build-firmware/12 Pipeline was successful
ci/woodpecker/pr/build-firmware/14 Pipeline was successful
ci/woodpecker/pr/build-firmware/11 Pipeline was successful
ci/woodpecker/pr/build-firmware/15 Pipeline was successful
ci/woodpecker/pr/build-firmware/17 Pipeline was successful
ci/woodpecker/pr/build-firmware/18 Pipeline failed
ci/woodpecker/pr/build-firmware/16 Pipeline was successful
ci/woodpecker/pr/build-firmware/19 Pipeline was successful
ci/woodpecker/pr/build-firmware/20 Pipeline failed
ci/woodpecker/pr/build-linux/1 Pipeline was successful
ci/woodpecker/pr/build-linux/2 Pipeline was successful
ci/woodpecker/pr/build-windows Pipeline was successful
ci/woodpecker/pr/lint Pipeline failed
to a4b5b13505
Some checks are pending
ci/woodpecker/pr/build-firmware/1 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/2 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/3 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/4 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/5 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/6 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/7 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/8 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/9 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/10 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/11 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/12 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/13 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/14 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/15 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/16 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/17 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/18 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/19 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/20 Pipeline is pending approval
ci/woodpecker/pr/build-linux/1 Pipeline is pending approval
ci/woodpecker/pr/build-linux/2 Pipeline is pending approval
ci/woodpecker/pr/build-windows Pipeline is pending approval
ci/woodpecker/pr/lint Pipeline is pending approval
2026年07月09日 05:37:16 +02:00
Compare
Some checks are pending
ci/woodpecker/pr/build-firmware/1 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/2 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/3 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/4 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/5 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/6 Pipeline is pending approval
Required
Details
ci/woodpecker/pr/build-firmware/7 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/8 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/9 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/10 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/11 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/12 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/13 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/14 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/15 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/16 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/17 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/18 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/19 Pipeline is pending approval
ci/woodpecker/pr/build-firmware/20 Pipeline is pending approval
ci/woodpecker/pr/build-linux/1 Pipeline is pending approval
Required
Details
ci/woodpecker/pr/build-linux/2 Pipeline is pending approval
ci/woodpecker/pr/build-windows Pipeline is pending approval
Required
Details
ci/woodpecker/pr/lint Pipeline is pending approval
Required
Details
This pull request doesn't have enough approvals yet. 0 of 1 approvals granted.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u micl/nrf53:micl-micl/nrf53
git switch micl-micl/nrf53
Sign in to join this conversation.
No reviewers
Labels
Clear labels
BMD App
Black Magic Debug App (aka. PC hosted) (not firmware)
BMP Firmware
Black Magic Probe Firmware (not PC hosted software)
Bug
Confirmed bug
Build system
Build system
Can't reproduce
Maintainers can't reproduce this problem
CI
Continuous Integration System
Contribution wanted
User contributions welcome
Documentation
Project documentation
Draft
Work in progress draft
Duplicate
This issue or pull request already exists
Enhancement
General project improvement
Feedback wanted
Requires additional submitter feedback
Foreign Host Board
Non Native hardware to runing Black Magic firmware on
GDB
Issue/PR related to GDB
Good first issue
Good for newcommers
HwIssue Mitigation
Solving or mitigating a Hardware issue in Software
Information Needed
Maintainers need more information
NativeHardware
Official Black Magic Debug Hardware
New Host Board
New hardware to run Black Magic firmware on
New Target
New debug target
Off Topic
Something that does not involve the project in any way
Potential Bug
A potential, unconfirmed or very special circumstance bug
Regression
Bug caused by a regression
User Interest Needed
More user interest required before consideration
User Testing Needed
Looking for user testing reports
Won't fix
Outside of the project scope or works as intended
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
blackmagic-debug/blackmagic!2277
Reference in a new issue
blackmagic-debug/blackmagic
No description provided.
Delete branch "micl/blackmagic:micl/nrf53"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?