Detailed description
In this PR we implement provisional support for the upcoming BMPv3 platform. There will need to be more refinement done, however this gets all the core stuff up and running - from the clocking system and bitbanging with the GPIO controller, and thus core debug, to the UARTs, ADCs, SPI controller, and other parts to make all major parts of the firmware work.
This includes support for both SWO modes, the target UART system including provisional support for switchable TX/RX and other hardware improvements found in the v3 platform, support for using the debug connector to access SPI Flash devices with bmpflash, and a heap of other goodie bits.
We know not all targets are yet working as there are some comms issues on the debug interface, however nothing completely show-stopping. DFU works well and has slightly more Flash reserved than the previous hardware platform, allowing more space for fixes and bootloader features in time. This platform however requires the absolute latest bmputil to program and work with because of some assumptions the older versions of the tool made get broken with this.
This PR must be sequenced after libopencm3/libopencm3#1625.
Your checklist for this pull request
Closing issues
<!-- Filling this template is mandatory -->
## Detailed description
In this PR we implement provisional support for the upcoming BMPv3 platform. There will need to be more refinement done, however this gets all the core stuff up and running - from the clocking system and bitbanging with the GPIO controller, and thus core debug, to the UARTs, ADCs, SPI controller, and other parts to make all major parts of the firmware work.
This includes support for both SWO modes, the target UART system including provisional support for switchable TX/RX and other hardware improvements found in the v3 platform, support for using the debug connector to access SPI Flash devices with `bmpflash`, and a heap of other goodie bits.
We know not all targets are yet working as there are some comms issues on the debug interface, however nothing completely show-stopping. DFU works well and has slightly more Flash reserved than the previous hardware platform, allowing more space for fixes and bootloader features in time. This platform however requires the absolute latest `bmputil` to program and work with because of some assumptions the older versions of the tool made get broken with this.
This PR must be sequenced after libopencm3/libopencm3#1625.
## Your checklist for this pull request
* [x] I've read the [Code of Conduct](https://github.com/blackmagic-debug/blackmagic/blob/main/CODE_OF_CONDUCT.md)
* [x] I've read the [guidelines for contributing](https://github.com/blackmagic-debug/blackmagic/blob/main/CONTRIBUTING.md) to this repository
* [x] It builds for hardware native (see [Building the firmware](https://github.com/blackmagic-debug/blackmagic?tab=readme-ov-file#building-black-magic-debug-firmware))
* [x] It builds as BMDA (see [Building the BMDA](https://github.com/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
<!-- put "fixes #XXXX" here to auto-close the issue(s) that your PR fixes (if any). -->