In this PR we fully implement BMD remote protocol v4. This includes fixing the return types in the RISC-V related traits so the functions can properly report errors, and creating a RISC-V error type to report them with. The structure of the RISC-V Debug support types now matches up to the structure of the ADI ones.
This PR also includes some bugfixes for the older protocol versions to correct some mistakes that had been made sizing packets and such which could lead to some unintended consequences or panics. They are applied in this PR for consistency with the new support that already integrates matching changes. There will be a PR to BMD reflecting the findings here too.
The branch this is on has now concluded use as this is the fourth of a series of 4 PRs implementing full remote protocol support into bmputil, so should be deleted after merge.
With this PR merged, current remote protocol support will be fully available in bmputil, save for the ensure idle functionality that was recently added to BMD. That functionality will be implemented in a follow-up PR at a separate point in time. We are aware that unit testing for all this new functionality is a bit lacking and intend to correct that with a faux serial interface system that allows us to run remote protocol transactions in unit tests without needing hardware. That too will be an additional follow-up PR.
In this PR we fully implement BMD remote protocol v4. This includes fixing the return types in the RISC-V related traits so the functions can properly report errors, and creating a RISC-V error type to report them with. The structure of the RISC-V Debug support types now matches up to the structure of the ADI ones.
This PR also includes some bugfixes for the older protocol versions to correct some mistakes that had been made sizing packets and such which could lead to some unintended consequences or panics. They are applied in this PR for consistency with the new support that already integrates matching changes. There will be a PR to BMD reflecting the findings here too.
The branch this is on has now concluded use as this is the fourth of a series of 4 PRs implementing full remote protocol support into bmputil, so should be deleted after merge.
With this PR merged, current remote protocol support will be fully available in bmputil, save for the ensure idle functionality that was recently added to BMD. That functionality will be implemented in a follow-up PR at a separate point in time. We are aware that unit testing for all this new functionality is a bit lacking and intend to correct that with a faux serial interface system that allows us to run remote protocol transactions in unit tests without needing hardware. That too will be an additional follow-up PR.