Detailed description
Support support for WCH RISC-V family of MCUs
WCH uses a custom DTM (Debug Transport Module) for their RISC-V MCUs, RVSWD a 2 wire SWD "like" protocol (not SWD), and a SDI 1 wire protocol
RVSWD is currently not publlicly documented, part of this implementation is the reverse engineering of the protocol, resulting documentation will be hosted here
Sigrok protocol decoder for RVSWD here
SDI documentation has been recently published, but implementation of will probably come as a separate PR
The only SDI MCU at the moment is the CH32V003, all other WCH RISC-V MCUs use RVSWD
As part of the process support for the WCH-Link debug probe by WCH is also implemented, it's a naive implementation based on a rough reverse engineer of the protocol, which too is not publicly documented
This PR might be broken down in the future
As this PR is built on top of feature/esp32-c3-support it might be hard to read, try this diff (feature/esp32-c3-support <- feature/wch-support)
Discord thread
Your checklist for this pull request
Closing issues
This PR is targeted at v2.0 milestone
Depends on #292 and feature/esp32-c3-support
Closes #1576
<!-- Filling this template is mandatory -->
## Detailed description
Support support for WCH RISC-V family of MCUs
WCH uses a custom DTM (Debug Transport Module) for their RISC-V MCUs, RVSWD a 2 wire SWD "like" protocol (**not** SWD), and a SDI 1 wire protocol
RVSWD is currently not publlicly documented, part of this implementation is the reverse engineering of the protocol, resulting documentation will be hosted [here](https://perigoso.github.io/rins/)
Sigrok protocol decoder for RVSWD [here](https://github.com/perigoso/sigrok-rvswd)
SDI documentation has been recently published, but implementation of will probably come as a separate PR
The only SDI MCU at the moment is the CH32V003, all other WCH RISC-V MCUs use RVSWD
As part of the process support for the WCH-Link debug probe by WCH is also implemented, it's a naive implementation based on a rough reverse engineer of the protocol, which too is not publicly documented
This PR might be broken down in the future
As this PR is built on top of feature/esp32-c3-support it might be hard to read, try [this diff (feature/esp32-c3-support <- feature/wch-support)](https://github.com/blackmagic-debug/blackmagic/compare/feature/esp32-c3-support...perigoso:feature/wch-support)
[Discord thread](https://discord.com/channels/613131135903596547/1078343582689263646)
<!--
Explain the **details** for making this change.
* Is a new feature implemented?
* What existing problem(s) does the pull request solve?
* How does the pull request solve these problems?
Please provide enough information so that others can review your pull request.
Information embedded in the description part of the commits doesn't count.
-->
## 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 (`make PROBE_HOST=native`)
* [x] It builds as BMDA (`make PROBE_HOST=hosted`)
* [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
This PR is targeted at v2.0 milestone
Depends on #292 and [feature/esp32-c3-support](https://github.com/blackmagic-debug/blackmagic/compare/main...feature/esp32-c3-support)
<!-- put "fixes #XXXX" here to auto-close the issue(s) that your PR fixes (if any). -->
Closes #1576